Sortie de Snek 1.6, un langage de programmation de type Python pour les systèmes embarqués

Keith Packard, développeur Debian actif, leader du projet X.Org et créateur de nombreuses extensions X dont XRender, XComposite et XRandR, a publié une nouvelle version du langage de programmation Snek 1.6, positionné comme une version simplifiée du langage Python, adapté pour une utilisation sur des systèmes embarqués qui ne disposent pas de suffisamment de ressources pour utiliser MicroPython et CircuitPython. Snek ne revendique pas une prise en charge complète du langage Python, mais peut être utilisé sur des puces avec aussi peu que 2 Ko de RAM, 32 Ko de mémoire Flash et 1 Ko d'EEPROM. Le code du projet est distribué sous licence GPLv3. Les versions sont préparées pour Linux, Windows et macOS.

Snek utilise la sémantique et la syntaxe de Python, mais ne prend en charge qu'un sous-ensemble limité de fonctionnalités. L'un des objectifs de conception est de maintenir la compatibilité ascendante : les programmes Snek peuvent être exécutés à l'aide d'implémentations complètes de Python 3. Snek a été porté sur une large gamme de périphériques embarqués, notamment Arduino, Feather/Metro M0 Express, Adafruit Crickit, Adafruit ItsyBitsy, Lego. EV3 et µduino, donnent accès au GPIO et à divers périphériques.

Parallèlement, le projet développe également son propre microcontrôleur ouvert Snekboard (ARM Cortex M0 avec 256 Ko de Flash et 32 ​​Ko de RAM), conçu pour être utilisé avec Snek ou CircuitPython, et destiné à enseigner et à créer des robots à l'aide de pièces LEGO. Les fonds pour la création de Snekboard ont été collectés grâce au financement participatif.

Pour développer des applications sur Snek, vous pouvez utiliser l'éditeur de code Mu (patchs de support) ou votre propre environnement de développement intégré à la console Snekde, qui est écrit à l'aide de la bibliothèque Curses et fournit une interface pour éditer le code et interagir avec l'appareil via un port USB. (vous pouvez immédiatement enregistrer des programmes dans l'appareil eeprom et télécharger le code depuis l'appareil).

Dans la nouvelle version :

  • Ajout de la prise en charge de la synchronisation explicite basée sur ENQ/ACK, permettant aux applications d'envoyer de grandes quantités de données sans avoir besoin de prendre en charge le contrôle de flux côté système d'exploitation, y compris lors de la connexion d'un grand nombre de périphériques au port USB ou série qui ne fournissent pas contrôle de flux.
  • Le port de la carte Lego EV3 a été considérablement amélioré, apportant la prise en charge au niveau des autres appareils.
  • Ajout d'un port pour la carte Narrow 1284 basée sur le SoC ATmega1284.
  • Ajout d'un port pour le kit débutant Seeed Grove basé sur ATmega328p.
  • Port ajouté pour la carte Seeeduino XIAO basée sur SAMD21 connectée via USB-C.
  • Port ajouté pour Arduino Nano Chaque carte basée sur ATmega4809, équipée de 6 Ko de RAM.

Ajouter un commentaire