risorse | tiny basic su arduino
Al lavoro alcuni colleghi stanno effettuando il porting di MicroPython su un sistema proprietario; fantasticavo di installarlo sulla mia scheda Arduino UNO, ma la cosa non è fattibile a causa delle ridotte risorse disponibili (cfr. “Micropython on Any Arduino Board?” nel forum ufficiale).
Cercando in rete ispirazione per un linguaggio shell alternativo mi sono imbattuto in Tiny BASIC. Pensavo di implementare un piccolo interprete per questo linguaggio, ma qualcuno mi ha preceduto: TinyBasic Plus è una versione di Tiny BASIC adattabile a diverse piattaforme Arduino, UNO compreso.
Scaricato lo sketch dal sito ufficiale (qui una copia locale della versione 0.15) e caricato su Arduino, si accede all'interprete BASIC attraverso un terminale, per esempio screen:
$ screen /dev/ttyACM0 9600
Il messaggio di benvenuto di TinyBasic Plus
Oltre alle istruzioni BASIC del dialetto «Tiny», TinyBasic Plus ne implementa qualcuna in più:
TinyBasic Plus è in grado di eseguire comandi immediati – istruzioni prive di numero di linea. Per esempio, il comando DWRITE 13,HIGH accende il LED integrato sulla scheda:
Il comando per accendere il LED integrato sulla scheda
Il comando DWRITE 13,LOW lo spegne:
Il comando per spegnere il LED integrato sulla scheda
TinyBasic Plus consente anche l'esecuzione di programmi BASIC – sequenze di istruzioni corredate di numero di linea che vengono memorizzate per essere eseguite successivamente. Per esempio, il programma seguente fa lampeggiare il LED sulla scheda:
10 DELAY 500 20 DWRITE 13,HIGH 30 DELAY 500 40 DWRITE 13,LOW 50 GOTO 10
Il programma del lampeggio caricato nella memoria dell'interprete
Per eseguire il programma si usa il comando RUN:
Il programma del lampeggio in esecuzione
Il LED comincia a lampeggiare. Ctrl+C interrompe l'esecuzione del programma:
L'interprete segnala l'avvenuta interruzione del programma
TinyBasic Plus offre una forma di persistenza dei programmi: è infatti possibile salvare una copia del programma attualmente caricato in memoria in una zona dedicata dell'EEPROM di Arduino. Bisogna prima di tutto formattare l'area di salvataggio con il comando EFORMAT.
Dopo alcuni istanti l'interprete ripresenta il prompt:
La procedura di formattazione dell'area di salvataggio richiede alcuni secondi
Per salvare il programma si usa il comando ESAVE:
Il salvataggio del programma è pressoché istantaneo
Il programma può essere richiamato con il comando ELOAD, per esempio dopo un NEW:
Il comando NEW cancella il programma caricato nell'interprete
Il comando ELOAD ripristina il programma precedentemente salvato nella memoria EEPROM
In aggiunta, se l'interprete è stato compilato con il flag ENABLE_EAUTORUN, che è attivo di default, alla successiva accensione TinyBasic Plus recupera il programma salvato in EEPROM e lo esegue immediatamente. In questo caso, per interromperne l'escuzione, occorre ricollegarsi all'interprete con il terminale e inviare un Ctrl+C.
Pagina modificata il 15/10/2018