A presentation at Voxxed Days Luxembourg in June 2024 in Luxembourg by Thierry Chantier
TinyGo, Petit mais costaud đȘ đŒ Thierry Chantier - @TitiMoby
Thierry Chantier DevRel @OVHcloud TitiMoby@mamot.fr TitiMoby đ https://noti.st/titimoby
Celle sans qui ce talk nâaurait pas vu le jour
Aurélie Vache @aurelievache Les Productions de MOA
La petite histoire đŒ
La petite histoire đź - Wow!!! FOSDEM 2020
La petite histoire đź - sĂ©rie dâArticle sur Go
La petite histoire đź - ExpĂ©rimentations TinyGo @conejo
TinyGo Go compiler for âsmall placesâ: - Microcontrollers - Web Assembly https://tinygo.org/docs/reference/microcontrollers/
TinyGo 7/06/2018 : Le tout premier commit grĂące Ă Ayke, TinyGo est nĂ© ! đ
TinyGo 01/02/2019 : PremiĂšre release v0.1. 03/02/2019 : Au FOSDEM TinyGo est mis en avant & lâĂ©vangĂ©lisation est alors portĂ©e par Ron Evans (@deadprogram).
TinyGo 02/02/2020 : Toujours trĂšs visible au FOSDEM, TinyGo devient un projet sponsorisĂ© officiellement par Google. LâarrivĂ©e de WASM en cible de compilation confirme le succĂšs de TinyGo.
TinyGo Le projet sur GitHub a dĂ©passĂ© les 14K â
Go vs TinyGo vs
Go vs TinyGo go build -o hello-go main.go 1,9M hello-go | tinygo build -o hello-tinygo 33K hello-tinygo
TinyGo: les petits secrets
TinyGo CLI: comment lâinstaller ? https://tinygo.org/getting-started/install/
demos!
Microbit â â â CrĂ©ation en 2016 Ă lâinitiative du gouvernement UK Simple mais complĂšte Programmable par bloc, Python⊠https://microbit.org/
GopherBadge â â â â â â â â â CrĂ©ation en 2023 par Daniel â@conejoâ Esteban PensĂ© pour promouvoir TinyGo BasĂ© sur un Raspberry Pi RP2040 1 LED bleue 2 LEDs RGB Neopixel AccĂ©lĂ©romĂštre LIS3DHTR Ecran 320x240 IPS TFT 6 boutons buzzer https://gopherbadge.com/
Game Boy Advance
Game Boy Advance â â â â Ecran 240x160px 32 768 couleur (15-bit) Un pad multidirectionnel, boutons âAâ, âBâ, âLâ, âRâ, âSTARTâ & âSELECTâ Core ARM7TDMI 32 bits avec mĂ©moire intĂ©grĂ©e
Game Boy Advance > demo
Game Boy Advance > demo 2,7K 3 jan 18:42 06-Eyes/eyes.gba https://github.com/titimoby/tinygo-examples/tree/main/gba/06-Eyes
Game Boy Advance > demo 33K 4 jan 13:50 03-Gopher/gopher.gba https://github.com/titimoby/tinygo-examples/tree/main/gba/03-Gopher
Game Boy Advance > demo 14K 3 jan 20:55 08-LetsDraw/telecran.gba https://github.com/titimoby/tinygo-examples/tree/main/gba/08-LetsDraw
Game Boy Advance Commande : Emulateur : https://mgba.io/
Outils pratiques
TinyDraw Permet de dessiner des figures géométriques (basé sur la librairie Adafruit GFX). https://github.com/tinygo-org/tinydraw
TinyFont Permet dâafficher du texte/dâutiliser des âfontsâ (basĂ© sur la librairie Adafruit GFX). https://github.com/tinygo-org/tinyfont
TinyFont > 2ttf playground Permet de tester des fonts avant de les utiliser. http://2ttf.com/typetest.php?id=HCQ3PvcaQ4U
TinyGBA Librairie pour TinyGo permettant de développer pour la Game Boy Advance. < Without tinygba With tinygba > https://github.com/tinygo-org/tinygba
TinyGo playground https://play.tinygo.org/
VsCode extension
Ressources â https://github.com/titimoby/tinygo-examples/ â https://dev.to/aurelievache/learning-go-by-examples -part-5-create-a-game-boy-advance-gba-game-in-go-59 44 â https://tontoncodeur.fr/tinygo/ â https://k33g.hashnode.dev/wazero-cookbook-part-onewasm-function-host-application https://gophers.slack.com/messages/CDJD3SUP6/
Conclusion
TinyGo, un monde parfait ? DĂ©buter est un peu difficile : - Documentation en progrĂšs mais pas encore parfaite
TinyGo, un monde parfait ? Débuter est un peu difficile : - Documentation en progrÚs mais pas encore parfaite - Des exemples ⊠pas forcément mis à jour et clairs
TinyGo, un monde parfait ? DĂ©buter est un peu difficile : - Documentation en progrĂšs mais pas encore parfaite - Des exemples ⊠pas forcĂ©ment mis Ă jour et clairs - Mais, des progrĂšs ont Ă©tĂ© fait grĂące Ă Gopher Badge et @conejo đȘ https://github.com/conejoninja/gopherbadge/tree/main/tutorial/basics
TinyGo, un monde parfait ? DĂ©buter est un peu difficile : - Certains drivers sont encore en version âexpĂ©rimentalesâ donc soumis Ă changements (GBAâŠ)
TinyGo, un monde parfait ? DĂ©buter est un peu difficile : - Certains drivers sont encore en version âexpĂ©rimentalesâ donc soumis Ă changements (GBAâŠ) - Certaines fonctionnalitĂ©s sont commencĂ©es mais pas terminĂ©es
TinyGo, un monde parfait ? Pourquoi câest tellement cool de se lancer : - Apprendre un nouveau langage
đź TinyGo, un monde parfait ? Pourquoi câest tellement cool de se lancer : - Apprendre un nouveau langage - Bricoler et sâamuser avec de lâ Ă©lectronique
TinyGo, un monde parfait ? Pourquoi câest tellement cool de se lancer : - Apprendre un nouveau langage - Bricoler et sâamuser avec de lâ Ă©lectronique - ⊠Faire vivre sa GBA câest tellement cool !
TinyGo, un monde parfait ? A vous de jouer !