Llançament de Snek 1.6, un llenguatge de programació semblant a Python per a sistemes encastats

Keith Packard, un desenvolupador actiu de Debian, líder del projecte X.Org i creador de moltes extensions X, com ara XRender, XComposite i XRandR, ha publicat una nova versió del llenguatge de programació Snek 1.6, posicionat com una versió simplificada del llenguatge Python, adaptat per al seu ús en sistemes encastats, sistemes que no tenen prou recursos per utilitzar MicroPython i CircuitPython. Snek no reclama un suport total per al llenguatge Python, però es pot utilitzar en xips amb tan sols 2 KB de RAM, 32 KB de memòria Flash i 1 KB d'EEPROM. El codi del projecte es distribueix sota la llicència GPLv3. Les compilacions estan preparades per a Linux, Windows i macOS.

Snek utilitza la semàntica i la sintaxi de Python, però només admet un subconjunt limitat de funcions. Un dels objectius del disseny és mantenir la compatibilitat enrere: els programes Snek es poden executar mitjançant implementacions completes de Python 3. Snek s'ha portat a una àmplia gamma de dispositius incrustats, com Arduino, Feather/Metro M0 Express, Adafruit Crickit, Adafruit ItsyBitsy, Lego EV3 i µduino, proporciona accés a GPIO i diversos perifèrics.

Paral·lelament, el projecte també està desenvolupant el seu propi microcontrolador obert Snekboard (ARM Cortex M0 amb 256 KB Flash i 32 KB de RAM), dissenyat per utilitzar-lo amb Snek o CircuitPython, i destinat a ensenyar i crear robots amb peces LEGO. Els fons per a la creació de Snekboard es van recaptar mitjançant crowdfunding.

Per desenvolupar aplicacions a Snek, podeu utilitzar l'editor de codi Mu (pedaços de suport) o el vostre propi entorn de desenvolupament integrat de consola Snekde, que està escrit amb la biblioteca Curses i proporciona una interfície per editar codi i interactuar amb el dispositiu mitjançant un port USB. (podeu desar els programes immediatament al dispositiu eeprom i descarregar el codi del dispositiu).

A la nova versió:

  • S'ha afegit suport per a la sincronització explícita basada en ENQ/ACK, que permet que les aplicacions enviïn grans quantitats de dades sense la necessitat de suportar el control de flux des del sistema operatiu, inclòs quan es connecten un gran nombre de dispositius al port USB o sèrie que no proporcionen control de flux.
  • El port per a la placa Lego EV3 s'ha millorat significativament, donant suport al nivell d'altres dispositius.
  • Port afegit per a la placa Narrow 1284 basada en ATmega1284 SoC.
  • Port afegit per al kit per a principiants de Seeed Grove basat en ATmega328p.
  • Port afegit per a la placa Seeeduino XIAO basada en SAMD21 connectada mitjançant USB-C.
  • Port afegit per a Arduino Nano Cada placa basada en ATmega4809, equipada amb 6 KB de RAM.

Afegeix comentari