Explorer MicroLua : Programmation en Lua pour RP2040

Explorer MicroLua pour le RP2040 Image de titre

Avez-vous déjà voulu vous plonger dans le monde de la programmation Lua et explorer les capacités du microcontrôleur RP2040 ? Ne cherchez plus - MicroLua vous offre une opportunité passionnante de le faire !

Dans cet article, j'aimerais me pencher sur ce qui suit MicroLua comment il fonctionne et pourquoi je pense qu'il s'agit d'un outil très utile pour les développeurs.

Je tiens à adresser un grand coup de chapeau à Remy Blank pour avoir développé MicroLua et l'avoir partagé avec le monde entier. Remy l'a mis sous licence MIT (comme Lua lui-même), rendant MicroLua disponible pour tout le monde.

J'ai hâte de l'utiliser dans de futurs projets.

Qu'est-ce que MicroLua ? Qu'est-ce qu'un RP2040 ?

MicroLua utilise donc l'implémentation de Lua et l'emballe.

Lua est un langage à typage dynamique et à paradigmes multiples. Et c'est, bien sûr, l'un des langages de script les plus rapides qui soient. Il est également très petit (le code source et la documentation occupent ensemble 1,3 Mo !).

Il est donc rapide, petit et idéal lorsque vous souhaitez intégrer quelque chose dans des applications plus vastes.

Lua dispose également de 21 mots-clés mis en évidence et d'une syntaxe assez simple, de sorte qu'il est relativement facile à apprendre.

Mais, si vous n'êtes pas familier, la première chose dont tout le monde se plaint avec Lua, c'est que c'est un langage indexé à 1 base. Et honnêtement, c'est ce qui m'arrive à chaque fois.

Voici un exemple de Lua, pour que vous puissiez le voir :

Exemple Lua de Lua.org
Crédit : lua.org.

Rémy a conçu MicroLua pour programmer spécifiquement pour le microcontrôleur RP2040.

Le microcontrôleur RP2040 est une puce interne au Raspberry Pi qui pilote un Pico. Cependant, le Raspberry Pi se vend également la puce RP2040 séparément. Vous pouvez donc trouver le RP2040 dans d'autres cartes, telles qu'un Adafruit Feather.

MicroLua est donc un paquetage de Lua pour ces cartes. Dans ce contexte, MicroLua intègre le dernier interpréteur Lua (version 5.4) avec des interfaces pour le kit de développement logiciel Pico et comprend une bibliothèque de threads coopératifs.

En associant l'interpréteur Lua aux interfaces Pico, MicroLua vous permet d'accéder aux broches GPIO et aux timers. Et j'aime beaucoup le fait que Remy ait inclus une bibliothèque de threading coopératif. Ainsi, si vous avez une Pico, vous pouvez jouer avec les deux cœurs.

De plus, MicroLua supporte Fennel, donc si vous aimez Lisp (comme moi), vous pouvez toujours profiter de MicroLua. Vous voulez utiliser un langage de type Lisp avec votre Raspberry Pi Pico ? Remy vient de rendre cela ridiculement facile.

Débuter avec MicroLua

Pour mettre en place MicroLua, vous allez devoir cloner le dépôtinitialiser les sous-modules et suivre les instructions de construction fournies.

Le GitHub contient le code suivant qui permettra de mettre en place une suite de tests :

# Configure the location of the Pico SDK. Adjust for your setup.
$ export PICO_SDK_PATH="${HOME}/pico-sdk"

# Clone the repository and initialize submodules.
$ git clone https://github.com/MicroLua/MicroLua.git
$ cd MicroLua
$ git submodule update --init

# Connect a Picoprobe to the target, on the UART and optionally on the debug
# port. Then view the Picoprobe's UART connection in a separate terminal.
# The "term" script uses socat.
$ tools/term /dev/ttyACM0

# Build the unit tests.
$ cmake -s . -B build -DPICO_BOARD=pico
$ make -j9 -C build/lib

# Start the target in BOOTSEL mode and flash it with picotool.
$ picotool load -v -x build/lib/mlua_tests.elf

# Alternatively, start the target in BOOTSEL mode and copy to its boot drive.
$ cp build/lib/mlua_tests.uf2 /mnt/RPI-RP2/

Une fois que vous avez obtenu cela, vous êtes prêt à partir.

Je dois mentionner que Rémy a identifié quelques problèmes avec les performances de MicroLua. Tout d'abord, le fait que la latence d'envoi des événements est relativement lente et doit être améliorée.

En outre, si vous vous rendez sur le site la page GitHubRemy a inclus une feuille de route pour les choses à ajouter, comme plus de bindings pour le Pico SDK, un système de fichiers, et une communication multi-puces. Remy souhaite également améliorer les performances des threads, la communication entre les cœurs, et ajuster le ramasse-miettes.

Il s'agit donc d'un projet très vivant qui mérite d'être suivi de près.

J'ai écrit le petit programme de la vidéo en MicroPython - mais la prochaine fois, j'utiliserai Fennel et MicroLua !

Conclusion

Maintenant que vous l'avez en main, lancez-vous dans votre prochain projet Pico. Le monde est à vous !

La première chose à laquelle j'ai pensé lorsque j'ai vu ce projet a été RTOS Lua pour une ESP32. Donc, si vous cherchez des options pour Lua avec des microcontrôleurs plus généralement, assurez-vous de jeter un coup d'œil à ce projet.

Si vous avez besoin d'inspiration, vous pouvez consulter les projets Pico que nous avons présentés :

De plus, si vous avez un Pico W, n'oubliez pas de le connecter à PiCockpitDe cette manière, vous pouvez vous y connecter de n'importe où dans le monde via l'internet.

Quels projets allez-vous créer avec MicroLua ? J'ai vraiment hâte d'utiliser Fennel pour mon prochain projet Pico !

Laissez un commentaire