Blog Arduino

Display Flashmat multifunzionale

Il progetto permette di integrare un programma SW multifunzionale in un display Flashmat.
 

 

Il progetto che realizzeremo quest'oggi permette di creare una matrice di Flashmat, fino ad un massimo di 10 flahmat.
 
Materiale usato
- Flashmat
- Arduino Nano o uno
 
Se si usa un Arduno Nano è integrabile in una qualsiasi Flashmat della matrice, per poter integrare in modo corretto è neccessario saldare i PIN.
 
Collegamento elettrico
Nel nostro caso abbiamo usato un Arduino Uno, il SW realizzato usa i seguenti pin dell'Arduino:
- D2: input digitale
- D3: input digitale
- A2: input digitale
- A3: input analogico (default configurato 0-5VDC)
- SDA e SCL per bus I2C
 
Se si usa un Arduino Uno ricordarsi di collegare la massa della Flashmat con quella dell'arduino.
 
Alimentazione 5Vdc
 

Indirizzamento FlashMat:

L’indirizzamento delle FlashMat può esser fatto con un programma esterno (es.: FlashMat_master_example) o con la modalità numero “7” del programma  che andremo a caricare sull'Arduino Uno, il SW caricato sulle Flashmat verrà spiegato a breve.

Le FlashMat devono avere un indirizzo compreso fra 8 e 119, inoltre le FlashMat aventi indirizzo con la cifra delle decine uguale vengono considerate sulla stessa linea in ordine crescente. Le linee stesse sono ordinate in modo che le decine siano in ordine crescente partendo dall’alto. Si ricorda che ogni FlashMat deve avere un indirizzo univoco.

I seguenti esempi sono combinazioni valide: 

Selezione della modalità di uso
Il programma all’avvio legge lo stato di 3 pin (D2, D3, A2) dell’Arduino, in base alla configurazione il programma decide la modalità di funzionamento.  
Usando uin Arduino uno connesso ad una FlashMat per settare la funzione desiderata è necessario mettere a GND(0) i pin desiderati.
 (0 = GND | 1 = Contatto aperto)
 
PIN D2 PIN D3 PIN A2 (N)Funzione
0 0 0 (0) Semaforo incrementale (da rosso a verde)
0 0 1 (1) Semaforo incrementale (da verde a rosso)
0 1 0 (2) Semaforo incrementale inverso (da rosso a verde)
0 1 1 (3) Semaforo incrementale inverso (da verde a rosso)
1 0 0 (4) Display percentuale da seriale (norm./inv.)
1 0 1 (5) Semaforo statico
1 1 0 (6) Stringa da seriale
1 1 1 (7) Indirizzamento delle FlashMat

 

Le modalità del programma

Semaforo incrementale
Il programma SW legge un valore analogico letto sul pin A3, valore compreso tra 0 e 5Vdc; e disegna il valore letto mappandolo tra 0% e il 100% dei pixel della matrice Flashmat. Il numero delle colonne colorate è proporzionale alla tensione letta la pin analogico.
Funzione 0: incrementando la tensione cambierà colore dal rosso al verde, colora le colonne da sinistra verso destra.
Funzione 1: incrementando la tensione cambierà colore dal verde al rosso, colora le colonne da sinistra verso destra.
Funzione 2: incrementando la tensione cambierà colore dal rosso al verde, colora le colonne da destra verso sinistra.
Funzione 3: incrementando la tensione cambierà colore dal rosso al verde, colora le colonne da destra verso sinistra.

 

Display percentuale da seriale

Questa funzione permette di inviare tramite seriale un comando all'Arduino da rappresentare sulla matrice display, baud rate di comunicazione 9600.
La stringa inviata deve rispettare la seguente sintassi: [Direzione][Percentuale][Colore]

 

Direzione: indica la direzione da dove iniziare a disegnare la colonna; alternative:
  N (normale): disegna partendo da sinistra
  I (inverso):disegna partendo da destra
 
Percentuale: indica la quantità in percentuale da colorare dello schermo. Il valore inserito deve essere composto da 3 caratteri numerici, esempio: 050 per colorare metà schermo. 000 per spegnere lo schermo.
 
Colore: ci sono a disposione le seguenti scelte:
R=red(rosso)  B=Blue(blu)  G=Green(verde)  Y=Yellow(giallo) O=orange(arancione)  W=white(bianco)
 
I comandi composti in modo errato vengono rifiutati; alcuni esempi di stringhe: N043W, I012G, I000R, N100B
 
Semaforo statico
La matrice di flashmat viene colorata interamente con lo stesso il colore; il colore dipende dalla tensione letta sul pin analogico A3, le soglie impostate sono le seguenti.
0-1Vdc = ROSSO      2-3Vdc = ARANCIONE     4-5Vdc = VERDE
Se il valore letto rientra all'interno di una delle seguente fasce tutte le flashmat verrano colorate con il colore corrispettivo della fascia, se il valore non dovesse rientrare all'interno di una delle fasce esso non cambierà il colore e la flashmat materrà il colore settato in precendenza.
 
Stringa da seriale
Comunicando con la porta USB dell'arduino nano con un baud rate di 9600 è possibile inviare delle stringhe e disegnarle sulla matrice Flashmat. Oltre alla stringa è possibile settare colore e direzione della stringa.
Il comando deve rispettare la seguente sintassi:  [Direzione][Modalità][Colore][stringa]
Il comando non deve essere scritto in maiuscolo, non contenere spazi o caratteri estranei.
 
Direzione: indica da quale lato una stringa settata in modalità scorrevole deve iniziare a comparire sullo schermo. Le alternative sono:
  N (normale): la stringa inizia a comparire da destra
  I (inverso): la stringa inizia a comparire da sinistra
 
Modalità: indica se il testo deve essere fermo e centrato nello schermo oppure scorrevole. Le alternative sono:
  B: bloccato
  S: scorrevole
Se la lunghezza della stringa dovesse superare i caratteri rappresentabili nella matrice Flashmat, la modalità passa automaticamente a testo scorrevole(S) e la direzione del testo dipende dalla direzione settata.
 
Colore:ci sono a disposione le seguenti scelte:
R=red(rosso)  B=Blue(blu)  G=Green(verde)    Y=Yellow(giallo) O=orange(arancione)  W=white(bianco)
 
Stringa: La lunghezza massima è di 100 caratteri e vengono accettati tutti i caratteri del codice ASCII. Per indicare la fine della stringa aggiungere il termiantore '\n' (new line). 
Esempi di messaggio possono essere:
NBRciao
NSY**C&D Elettronica ed Informatica**
ISG**C&D Elettronica ed Informatica**
 
Indirizzamento della FlashMat
Prima di destinare le flshmat per realizzare il display è necessario modificarne l'indirizzo. Da default le flashmat hanno l'indirizzo 64, per collegare più flashmat sullo stesso bus è necessario che ogni flashmat abbia un indirizzo univoco.
E' consigliabile cambiare l'indirizzo delle flashmat uno alla volta. La modifica dell'indirizzo della flashmat viene svolto collegandosi all'Arduino tramite monitor seriale, baud rate di 9600; seguendo un menu guidato, vengono accettati indirizzi compresi tra 8 e 119.
 
Costardi Paolo 4^AII
IISS E. Majorana, Seriate