Archives par mot-clé : MicroPython

Portage de MICROPYTHON sur TeXAS INSTRUMENTS LM4F120 (Stellaris LaunchPad)

J’ai un petit côté nostalgique en ce moment et j’avais envie de retrouver les plaisirs simples des micro-ordinateurs des années 80: un interpréteur simple (type BASIC) en ligne de commande. J’avais dans mes fonds de tiroir une carte Stellaris LaunchPad de Texas Instruments qui est construite autour d’un micro-contrôleur bien plus puissant que nos vénérables Amstrad CPC, Thomson MO5, Sinclair ZX ou Matra Alice 90 (dans mon cas). Il ne me restait plus qu’à trouver un projet autour de son CPU Cortex M4 32 bits avec 64Ko de RAM et 256Ko de mémoire flash.

MicroPython remplit parfaitement la mission: simple d’accès, tournant sur des micro-contrôleurs et aussi parfaitement évolutif. Python est aussi bien plus propre et puissant que le BASIC. Seul problème: les “versions” (portages) actuellement disponible ne tournaient pas sur la carte que j’avais à ma disposition. Comme l’architecture (ARM v8 32bits) était déjà supportée, en principe le travail ne serait que minime.

Capture écran MicroPython sur Stellaris LaunchPad
Capture ecran Micropython sur Stellaris LaunchPad

J’avais réussi mon premier objectif (ligne de commande) depuis quelques semaines mais je voulais aussi implémenter un minimum de fonctionnalité, et surtout le faire proprement. Le plus dur a été de comprendre la philosophie de MicroPython et comment faire un code qui soit utile pour tous. Ce soir, j’ai eu la grande satisfaction de publier sur GitHub mon premier “commit” avec un code relativement bien documenté et propre et qui utilise les fonctions de base de la carte (LED tricolore et boutons pression).

Tout est disponible publiquement ici: https://github.com/zl4yy/micropython

Maintenant je voudrais implémenter des fonctions plus évoluées comme les bus I2C et SPI, les ports USB, etc. Entre temps j’ai découvert un autre projet similaire mais sur une version plus vieille de MicroPython. J’ai l’intention de m’en inspirer et de réutiliser une partie du code (qui est open source) mais l’auteur a fait quelques choix différents qu’il me faudra contourner.