Visualizzazione post con etichetta s2aio. Mostra tutti i post
Visualizzazione post con etichetta s2aio. Mostra tutti i post

domenica 23 ottobre 2016

Modulo Matrice 64 Led con MAX7219 - Test iniziale

Nel mio posto precedente [Modulo Matrice 64 lLd con MAX7219 - Assemblaggio] ho fatto vedere come assemblare il modulo Matrice 8x8 Led.

In questo post vediamo come programmare tale modulo con Arduino e Scratch




Piedinatura Modulo Matrice 8x8 Led

Il modulo Matrice 8x8 Led con MAX7219 ha due connettori da 5 peidini disposte ai due lati del PCB.
Entrambi i connettori hanno la stessa funzionalita'.




I piedini partendo dall'alto verso il basso sono contrassegnati come:
  • VCC:  piedino di alimentazione +5V
  • GND:  piedino di massa
  • DIN:   Data Input Seriale. Serve per caricare la parola da 16 bit all'interno dello shift register del MAX7219
  • CS: Chipe Select. Serve per indicare al MAX7219 quando caricare un bit presente sul pin DIN nello shift register. Questo avviene quando CS e' basso (LOW)
  • CLK:Clock utilizzato per le operazioni di caricamento della parola da 16 bit. Quando il clock va alto (HIGH) i bit in ingresso sono trasferiti nello shift register interno

Connessione del modulo Matrice 8x8 Led con Arduino

Come si puo' vedere nelle due figure ho collegato il piedino VCC e GND del modulo rispettivamente ai piedini +5V e a GND di Arduino.
Il pin DIN del modulo l'ho collegato al GPIO 4 di Arduino
Il pin CS dell modulo l'ho collegato al GPIO 3 di Arduino
Il pin CLK del modulo l'ho collegato al GPIO 2 di Arduino



Test base del modulo

Ora che ho assemblato il modulo e l'ho collegato ad Arduino non mi resta che testarlo.

Inizio creando un primo programma Scratch che utilizzo per verificare se il modulo funziona correttamente.


Codice Scratch 


Il cuore del codice si trova in due blocchi utili per scrivere la parola di programmazione a 16 bit nel MAX7219

Scrivi Byte


Questo blocco viene chiamato passandogli un valore numerico tra 0 e 255 (byte)
Il blocco si occupa di scrivere questo byte, un bit alla volta, nel MAX7219. Come si puo' vedere prima di scrivere il bit sul piedino DIN (pinData) si imposta il CLK a 0 (LOW) e poi dopo la scrittura si impostal il CLK a 1 (HIGH).
In questo modo il bit sul piedino DIN vienetrasferito nello shift register del MAX7219

In particolare questo blocco puo' essere utile a chi inizia per capire come si fa uno shift a sinistra di un byte.
E' un implementazione rozza (Scrtach e' alquanto limitato) dell'operatore di shift << (bitwise left) del lingiuaggio C.

Scrivi Comando


Questo blocco riceve in ingresso un indirizzo ed un comando su 8 bit (byte).
Il blocco si occupa di scrivere il comando fornito (byte) all'indirizzo fornito (indirizzo)


Come detto prima si trasferiscono i 16 bit di parola (8 di indirizzo e 8 di comando) con il pin CS (pinCS) a o (LOW). Solo alla fine il CS va' portato alto (HIGH) effettivamente trasfererendo i 16 bit nello shift register del MAX7219.
Solo a questo punto il MAX7219 esegue il comando fornito


Altri Blocchi

Gli altri blocchi sono di supporto per avere un main piu' pulito.
In particolare i blocchi hanno questa funzionalita':
  • setupGPIO: imposta i GPIO di Arduino per poter comunicare con il modulo Led in modo corretto e secondo le connessioni elettriche
  • setDecodeMode: imposta la modalita' di decodifica del MAX7219
  • setLuminosita[valore]: imposta la luminosita' della matrice (0-15)
  • setScanLimit: imposta lo scanlimit del modulo
  • accendiMatrice[valore]: accende o spegne la matrice (0-1)
  • testMatrice[valore]: imposta la modalita' di test (0-1)

Blocco Main



Il blocco main e' piuttosto semplice in quanto e' una serie di chiamate aglia ltri blocchi definiti

Inizia impostando i GPIO in modo corretto, poi imposta i parametri principali per il modulo MAX7219, in particolare la luminosita'.

Dopo di cio' spegne la matrice ed esce dalla modalita' di test, per resettare ogni stato precedente.
Poi attende 2 secondi e poi infine imposta la modalita' di test ed accende la matrice.

Se tutto funziona correttamente dovreste vedere tutti i led della matrice accendersi insieme

Bene a questo punto siete sicuri che il vostro che avete assemblato e completamente funzionante.



sabato 17 settembre 2016

Scratch e Arduino con s2aio

In questo post faccio vedere come installare il software necessario per poter  programmare Arduino utilizzando l'ambiente di programmazione visuale Scratch e s2aio





Iniziamo con la lista di quello che ci serve:


  • Scheda Arduino con cavo USB






Io utilizzo una scheda Arduino UNO, ma qualsiasi altra scheda Arduino funziona in modo analogo.
In caso di utilizzo di schede Arduino cloni potrebbero essere necessari dei driver addizionali per Windows

  • Arduino Software e Ambiente di programmazione




Ambiente di sviluppo per Arduino (v 1.6.5) che si scarica gratuitamente qui. Non spaventatevi lo usiamo solo la prima volta, poi non lo useremo piu' per realizzare i nostri progetti con Arduino :)


  • Un Computer
Vi server un computer con Windows, Linux o MAC.

Oltretutto potete anche usare Linux o il MAC. In questo post tutte le istruzioni sono per WIndows siccome e' il piu' diffuso. Io uso Windows 7 ma versioni successive funzionano ugualmente. 

  • s2aio 
E' un estensione software disponibile qui,  che aggiunge il supporto per la programmazione di Arduino all'ambiente di programmazione Scratch2 off-line.


Adesso che abbiamo tutti i componenti necessari, iniziamo l'installazione. Nel resto del post spiego passo per passo cosa bisogna fare.

Passo #1: Installazione di Scratch




  • Segui le istruzioni a video per completare l'instllazione di Adobe Air


  • Segui le istruzioni a video per completare l'instllazione di Scratch
  • Verifica che Scratch sia instllato correttamente eseguendolo (cliccka sull'icona con il gattino Scratch)


  • Se tutto e' instllato correttamente devi vedere la finestra dell'ambiente Scratch a video


Passo #2: Installazione del Software Arduino


  • Unzip in una cartella: la versione di Arduino suggerita non richiede instllazione. Fai unzip del file in una cartella a tua scelta e poi esegui arduino direttamente da questa cartella.
E' possibile che in funzione del modello della tua scheda Arduino devi installare i driver.
Segui questa guida qui, ti spiega passo per passo come installare i driver

Se possiedi un Arduino clone puoi trovare i driver qui

  • Collega la scheda Arduino al PC tramite il cavo USB
La maggior parte delle schede Arduino viene alimentata direttamente dal PC tramite il cavo USB. In alcune schede devi appositamente selezionare un ponticello (Arduino Diecimila)


Passo #3: Verifica della porta COM in uso


Se tutto e' andato per il verso giusto una nuova porta COM e' stata aggiunta al tuo sistema.
Verifica in questo modo:


Start -> Control Panel



poi seleziona Hardware and Sound




poi seleziona Devices and Printers


Adesso al fondo della finestra dovresti vedere una nuova porta seriale COM chiamata Arduino




Nel mio caso la porta si chiama COM4. Nel tuo caso questo numero potrebbe cambiare.
Annotati questo nome siccome ci sara' utile dopo. 


Passo #4: Configurazione software Arduino

L'estensione s2aio di Scratch che utilizeremo per comunicare con Arduino usa un protocollo chiamato Firmata.
Dobbiamo installare il software Firmata sulla nostra scheda Arduino faceondo cosi':

  • Carica l'ambientre Arduino
Dal menu start di windows cercate il software Arduino appena installato e lanciatelo



Se tutto ha funzionato correttamente dovreste vedere una schermata simile a questa




  • Configurate il software
A questo punto bisogna configurare un paio di parametri nel software per far comunicare questo ambiente di programmazione con la scheda Arduino

Selziona il menu Tools -> Board

Vi compare una lunga lista di schede Arduino disponibili, voi selezionate esattamente quella che state utilizzando.
Nel mio caso ho selezionato Arduino Uno



Adesso non resta che completare la configurazione selezionando Tools -> Port
Da qui scegli la porta COM che ti eri annotato prima. Nel mio caso e' COM4






Passo #5: Installatiamo il software Firmata

Per installare il software di comunicazione Firmata sulla scheda Arduino basta fare cosi':

  • Carica il codice sorgente Firmata

Seleziona File -> Examples -> Firmata -> StandardFirmata



Adesso si apre una seconda finestra contenente il codice sorgente Firmata.
Puoi scorrere con mouse su' e giu' per vedere il codice sorgente, ma probabilmente ti risultera' incomprensibile. Niente paura non devi modificarlo.
In futuro quando acquisirai piu' esperienza sono sicuro che riuscirai a capire cosa fa' questo codice. :)


  • Upload del codice sulla scheda Arduino
Per compilare (il processo che trasforma il codice sorgente in codice macchina) e caricare il software su Arduino basta fare click sul pulsante Upload



Se tutto e' andato a buon fine dovresti vedere qualcosa di simile in basso nella finestra di Arduino




Come promesso all'inizio se hai raggiunto questo punto e' l'ultima volta che userai il software Arduino per programmare la tua scheda. Da ora in poi useremo Scratch. Pero' devi ancora completare l'installazione di un componente software. 
Guarda come si fa' come qui sotto.


Passo #6: Verifica della versione di Windows 

Prima di proseguire dobbiamo verificare la versione di Windows instllata (32 o 64 bit).




Seleziona Start -> Computer -> Taso destro del mouse -> Proprieta'

Dovresti vedere finestra simile a quella qui sotto






Nella riga dove c'e' scritto (Tipo di Sistema - System Type) vedi se il tuo windows e' a 32 o 64 bit.

Il mio e' a 64 bit. Annota questa informazione perche' e' utile nei passi successivi


Passo #7: Installazione di Python


E' necessario instllare la versione corretta (32 o 64 bit) di python in funzione della versione del tuo Windows.

  • Esegui il file .exe che hai scaricato per inizare l'installazione di python. Una finestra simile a questa qui sotto viene visualizzata

  • Scegli le opzioni come evidenziato nella figura sopra
  • Premi Install now. L'installazione comincia e vedi il progresso a video

  • Premi Close quando l'installazione e' al 100%

  • Ora verifica che python sia stato instllato correttamenteaprendo una finestra di terminale (Prompt o Finestra dei Comandi)


  • Ora scivi nel prompt dei comandi: python -V. Dovresti vedere un messaggio simile al mio

Ok se vedi visualizzata la versione di python significa che l'installazione e' andata a buon fine!

Passo #8: Installazione di s2aio

  • Installa s2aio tramite linea di comando (Prompt o Finestra dei Comandi)
  • Inserisci il seguente comando: pip install s2aio. 

  • Dovresti vedere una serie di messaggi simili ai miei

  • Al termine dell'installazione verifica che tutto sia andato a buon fine digitando il seguente comando nella finestra dei comandi: pip list
  • Dovresti vedere una serie di messaggi simili ai miei

  • Se nella lista di pacchetti installati leggi s2aio allora significa che l'estensione di scratch per arduino e' installata correttamente
  • Al termine dell'installazione verifica che tutto sia andato a buon fine digitando il seguente comando nella finestra dei comandi: pip list

Passo #9: Lanciamo l'ambiente Scratch

Per poter usare correttamente l'estensione s2aio in Scratch e' necessario lanciare l'editor di Scratch tramite linea di comando

  • Ora scivi nel prompt dei comandi: s2aio -l 9 -p COM4. Dovresti vedere un messaggio simile al mio

Nota  nel comando qui sopra ho specificato COM4 che e' il nome della porta seriale utilizzata per la comunicazione tra Scratch e Arduino. Se al passo 3 hai annotato un valore diverso allora usa il valore corretto nel comando appena inserito
  • In pochi istanti l'editor di Scrtach  deve partire a schermo

  • Ora vai nella tab/menu Altri Blocchi (in viola), dovresti vedere qualcosa di simile

Se la luce accanto a s2aio e' VERDE allora significa che tutto e' ok e che Scratch e' in grado di comuniocare con Arduino

Passo #10: Programma di Prova

  • Seleziona con il mouse lo sptrite di scratch ed inserisci il seguente script

  • Premi la bandierina verde per lanciare il programma su Arduino

  • A questo punto Scratch invia ad Arduino i comandi che hai programmato nello script
Questo script fa la seguente cosa:

Quando si preme la bandierina verde il programma inizia connettendo il led A al pin 13 di Arduino.
Dopo di cio' accende il led per 1 secondo, poi lo spegne per 1 secondo e poi ricomincia dall'inizio.
Quindi una volta che eseguiamo il programma (click su bandierina verde) il led sulla scheda arduino si accende e si spegne continuamente
  • Osserva la tua scheda Arduino e vedrai che il led con la L vicino si accende e spegne ogni secondo






Prova a cambiare il tempo di accensione e spegnimento e guarda che succede :) :)

Conclusioni

In conclusione abbiamo configurato tutto il necessario per poter eseguire i nostri programmi Scratch su Arduino. Tutta la programmazione avviene in ambrinte visuale Scratch e quindi non serve imparare nessun linguaggio specifico.

L'ambiente descritto in questo articolo si presta perfettamente all'utilizzo dei piu' piccoli permettendogli cosi' di imparare sia la programmazione visuale sia l'interazione con una scheda fantastica come quella di Arduino.