Snap4Arduino è un progetto laterale al linguaggio di programmazione visuale chiamato Snap! (leggi l’articolo) che come obbiettivo si prefigge strumento per l’insegnamento delle materie tecnologiche dalla scuola primaria in poi. Avviato nel 2013 dal gruppo di ricerca Edutec di Citilab (Cornellà, Barcellona) ha subito ricevuto una grande acclamazione tra gli utenti tanto che da allora viene utilizzato anche in contesti artistici ed universitari. Ha ricevuto contributi da progetti quali Phiro (india), First Makers (Chile), ROKIT Brick (South Korea) i quali hanno basato le loro soluzioni software modificando la versione originale di Snap4Arduino. Dal 2016 fino ad agosto 2017 è stato sostenuto e sviluppato presso Arduino.org ed oggi è in via di sviluppo in forma indipendente.

Snap4Arduino è completamente gratuito e disponibile al download dal sito http://snap4arduino.rocks/ e, una volta installato, l’ambiente di sviluppo è apparentemente simile a quello di Snap! tranne che per un nuovo menù di funzioni chiamato “Arduino”. Al suo interno troviamo le funzioni per la connessione e la disconnessione dalla scheda, le funzioni di comando sui pin digitali, analogici e servo ed infine, le funzioni di lettura dei valori sui pin digitali e analogici. Tali funzioni sono in grado di comandare e comunicare con la maggior parte delle schede Arduino.

Requisito essenziale per comunicare con la scheda, è di aver installato su di essa il programma StandardFirmata con il quale abilitiamo la scheda a comunicare direttamente con l’ambiente di sviluppo.

Passi da seguire per installare la StandardFirmata su di una scheda Arduino:

  1. Se non lo avete ancora fatto, scaricare ed installare l’ambiente di sviluppo seguendo le istruzioni nel sito  http://www.arduino.cc/en/Main/Software
  2. Aprire Arduino IDE e cliccare su “File → Examples → Firmata → StandardFirmata”  
  3. Connettere la scheda alla porta USB del computer
  4. Dal menù strumenti “Tools → Board:”, selezionare la versione della scheda posseduta e la porta alla quale è stata connessa.
  5. Per inviare il programma StardardFirmata alla scheda, accedere al menù “Sketch → Upload:”
  6. Ora Snap4Arduino può interagire direttamente con la scheda.

Cosa è e cosa fa Firmata:

Firmata è un protocollo di comunicazione basato su formato MIDI, che abilita la trasmissione e la ricezione di dati e comandi dal vostro computer ad un microcontrollore. Basicamente potrebbe fornire l’accesso a tutti i microcontrollori esistenti anche se, per ora, l’implementazione più completa è quella dedicata alle schede Arduino. Inoltre possiede una vastissima lista di librerie scritte nei più svariati linguaggi di programmazione come python, perl, php, java e molti altri.

Nel caso specifico di Snap4Arduino, una volta connesso in modo appropriato alla scheda, è possibile interagire con i componenti elettronici presenti sulla scheda direttamente dall’ambiente di sviluppo, senza dover effettuare l’upload del codice. Si ottiene quindi un accesso completo all’Hardware, che ci permette di testare dal vivo il codice a cui stiamo lavorando. Questo consente agli sviluppatore di risparmiare tempo per il debugging, in quanto non vi è una fase di compilazione esplicita ed ogni modifica del codice viene verificata in modo istantaneo sulla scheda. Inoltre questa caratteristica aiuta molto l’aspetto educativo in quanto, lo studente, acquista la percezione di totale controllo dell’hardware e quindi si può concentrare unicamente sullo studio del suo progetto.

L’unico problema fin’ora riscontrato durante l’utilizzo di Firmata è la sua bassa velocità di esecuzione del programma. Arduino è un sistema embedded che esegue il codice al suo interno al massimo della velocità consentita. Inviare dati e comandi dal nostro computer attraverso l’utilizzo del protocollo Firmata, significa che al tempo di esecuzione del programma, dobbiamo aggiungere tutto il carico dei programmi che sono in quel momento eseguiti dal Computer che si sta utilizzando.

Una volta che il nostro programma è stato testato ed è funzionante, per poter aumentare le sue prestazioni e per poter utilizzare la scheda Arduino come sistema embedded, e quindi isolato dal computer, dobbiamo fare l’upload del nostro codice all’interno della scheda.

Passaggi per esportare un progetto da Snap4Arduino dentro una scheda Arduino

  1. Se si ha in mente di creare un progetto che poi dovrà essere eseguito in solitaria sulla scheda, dovete cominciare obbligatoriamente tutto un nuovo progetto cliccando su “File → New Arduino translatable project”. Noterete subito che vi sarà una riduzione delle funzioni a cui potrete accedere, questo perchè molte delle funzioni che esistono in Snap! non possono essere tradotte nel linguaggio di programmazione che interagisce con la scheda, chiamato Processing
  2. È possibile connettersi ad una scheda Arduino e lavorare in modo dinamico. Ma per tradurre il codice in uno Sketch di Arduino, è necessario iniziare lo script con la bandiera verde. Così facendo otterrete un file con estensione .ino il quale, aprendolo con Arduino IDE, potrete caricare sulla scheda.

Orologio Binario a notazione binaria pura:

Anche se è solo un gadget che potremmo trovare in vendita su geek.wish.com, e che  ha uno scopo puramente estetico (perché incomprensibile per la maggior parte delle persone), ho sempre desiderato possedere un orologio con notazione binaria e, invece di comprarlo, ho deciso di costruirmelo da solo con una scheda Arduino UNO. Premetto che ciò che sto per mostrare è la prima parte di questo progetto, in quanto ho intenzioni di aggiungere un pulsante (che attualmente non ho) per poter modificare l’ora,  ed un Buzzer per generare dei suoni (tipo sveglia).

Schema elettrico:

Andando sul sito http://fritzing.org/home/, potrete scaricare il programma open source per la progettazione di sistemi elettronici EDA – Electronic Design Automation, che fornisce strumenti per progettare e produrre sistemi elettronici, dai circuiti stampati ai circuiti integrati, con il quale ho disegnato il circuito elettrico per il mio prototipo.

Lista componenti:

  1. Scheda Arduino UNO
  2. 6 LED rossi 2~2.5V (per i secondi)
  3. 6 LED gialli 2~2.5V (per i minuti)
  4. 5 LED blu 3.5~4V ( per le ore)
  5. 17 resistenze da 220Ω

Il codice per realizzare questo progetto, é stato scritto su Snap4Arduino 1.2.4

In questa versione, quando si lavora ad un progetto che poi dovrà essere esportato in formato Sketch, si possono usare solo variabili locali e si possiede un numero limitato di funzioni. Per questo motivo ho cercato di scrivere un codice il più semplice possibile utilizzando solo strutture if/else, operatori, porte logiche e variabili di tipo intero e booleano e, ovviamente, una struttura qui chiamata “forever” per far eseguire il programma all’infinito.

Ed ecco il risultato:

Ore Minuti Secondi
32 1 1
16  1 1 1
8  0 1 1
4  1 0 0
2  1 1 0
1  1 1 0
decimale: 23 : 59 : 56

Link:

Share This