Site icon Meccanismo Complesso

MicroPython – Python per programmare i microcontrollori

Introduzione

Grazie al successo e alla diffusione di Python come linguaggio di programmazione, oggi moltissimi sviluppatori hanno scelto questo linguaggio nei loro progetti e sono sempre di più le persone che hanno familiarità ed esperienza con questo linguaggio. Ma allora perchè i microcontrollori si programmano ancora in C?

Bene, le cose sembrano stiano prendendo un’altra direzione. E’ infatti uscito MicroPython, un software di sviluppo che permette la programmazione di microcontrollori utilizzando esclusivamente Python come linguaggio di programmazione. In questo articolo vedremo in dettaglio MicroPython. Inoltre parleremo anche di PyBoard, una scheda con microcontrollore progettata specificatamente per essere programmata in Python.

MicroPython

MicroPython è un’applicazione basata interamente su Python 3. Questa applicazione permette a tutti gli sviluppatori di programmare i microcontrollori utilizzando alcune librerie di Python che sono state ottimizzate per funzionare sui microprocessori montati normalmente sui microcontrollori.

Lo sviluppo su MicroPython è davvero semplice. Non richiede alcuna installazione, è sufficiente aprire la pagina web (vedi qui) corrispondente sul sito ufficiale micropython.org. Infatti MicroPython è un’applicazione che funziona online, e così invece di installare un’applicazione sul tuo computer potrai lavorare direttamente dal browser.

MicroPython

MicroPython è quindi stato progettato e studiato appositamente per la programmazione su MicroControllori riadattando le librerie standard di Python. Infatti una volta scritto un programma in Python, MicroPython compila il codice in modo abbastanza compatto da poter occupare uno spazio limite di 256kB ed essere eseguito su dispositivi con 16kB di RAM.

Inoltre MicroPython funziona con codice Python altamente standard, quindi tutto ciò che viene sviluppato su questo ambiente è funzionante anche in altri ambienti di sviluppo in Python, e viceversa.

Compilatore con moduli hardware-specifici

La potenza di MicroPython sta proprio nel compilatore. Infatti questo software ha al suo interno una serie di moduli hardware-specifici in modo da poter compilare il codice in Python adeguatamente a seconda del microcontrollore utilizzato.

Ma non si limita a questo. Gli altri linguaggi di programmazione, come il C per Arduino per esempio, vengono utilizzati generalmente per scrivere un programma nella sua interezza, ed una volta corretto, viene compilato ed inviato al microcontrollore per essere eseguito (generalmente in loop). Mentre chi programma in Python, sa benissimo che Python è un linguaggio che fa uso di un interprete. Quindi si può utilizzare per scrivere programmi oppure per lavorare in runtime, lanciando un comando alla volta. Bene, con MicroPython è possibile scrivere un comando alla volta da console, che viene compilato in tempo reale ed inviato al microcontrollore.

Infatti, MicroPython ha un prompt interattivo (REPL) per eseguire i comandi uno alla volta in modo interattivo, che vengono eseguiti immediatamente. Il REPL ha una history, la tab completion, l’auto-indent ed la funzionalità copy-cut-paste, il tutto per rendere lo sviluppo del codice facile e semplice.

Infine, MicroPython, oltre alla libreria standard ottimizzata, ha una serie di moduli (come per esempio machine) che permette l’accesso a basso livello dell’hardware.

MicroPython – Mandelbrodt example

Per chi fosse interessato ad approfondire l’argomento, potrete trovare tutta la documentazione su questo sito.

Altrimenti esiste attualmente gìa in vendita un libro ricco di esempi, che copre in maniera esaustiva tutto l’argomento.

Python for Microcontrollers: Getting Started with MicroPython

MicroPython: il Progetto

MicroPython, sviluppato nel linguaggio C99, è un progetto interamente opensource. Il codice è sotto licenza MIT license, ed è disponibile a tutti su GitHub. Chiunque è libero di scaricare il codice per studio, oppure contribuire al miglioramento e perfezionamento di questo progetto.

Abbiamo parlato in precedenza che gli aspetti più importanti di questa applicazione sono le tecniche di codifica avanzate che sono state utilizzate per mantenere le stesse funzionalità di Python pur ottenendo dei compilati di piccola dimensione, per potersi adattare alle scarse risorse dei microcontrollori.

Ecco alcune caratteristiche che sono state pubblicate sul sito ufficiale.

Pyboard

MicroPython comunque è stato sviluppato tenendo conto di una scheda di riferimento, anch’essa sviluppata principalmente per lavorare con Python. Il nome di questa scheda è PyBoard.

Questa scheda è un progetto completamente open hardware e quindi gli schemi elettronici sono accessibili a tutti. Quindi potete realizzarla e modificarla a vostro piacimento, se invece preferite acquistarla è disponibile online ad un prezzo davvero ragionevole.

MicroPython pyboard

Le caratteristiche tecniche di questa scheda si possono riassumere nella seguente lista:

La scheda è dotata di una porta USB micro per la connessione con il computer e allo stempo per l’alimentazione. Inoltre è presente uno slot per inserire una microSD come memoria. Inoltre ha al suo interno alcuni chip integrati molto interessanti come un accelerometro, alcuni convertitori analogico-digitali e 4 LED multicolori.

Come possiamo vedere dalle immagini della pyboard, si può notare immediatamente un esteso pinout. La figura seguente mostra in dettaglio la funzione di ciascun PIN presente.

Pinout del Pyboard

Conclusioni

In questo breve articolo abbiamo fatto una presentazione a MicroPython, un software che permette la programmazione di Python per microcontrollori. Abbiamo visto in dettaglio le caratteristiche di questo progetto totalmente opensource ed in particolare del compilatore che è in grado di produrre codice compilato hardware-specifico a seconda dei microcontrollori e di piccole dimensioni. Inoltre abbiamo dato un rapido sguardo alla scheda pyBoard, un microcontrollore sviluppato appositamente per essere programmato in Python. Nei prossimi articoli verranno proposti alcuni tutorial sulla programmazione in Python in questo ambiente di sviluppo.

Exit mobile version