AUG and Wearable MKR Shields ti permette di conoscere cs’è accaduto durante l’evento dell’AUG & Wearable Milano del 19 marzo 2019.
Se non hai potuto partecipare all’evento puoi leggere cosa è successo e gli argomenti di cui abbiamo parlato.
L’AUG and Wearable MKR Shields del 19.03 è stato il primo incontro dopo l’evento Arduino Day del 16.03 in cui al termine della manifestazione abbiamo ricevuto in omaggio tre delle nuove shield che sono state presentate il 16.03 al mondo.
La sera dell’appuntamento AUG & Wearable abbiamo avuto, a sopresa, una guest star: Cristian di arduino.cc che oltre ad essere un amico della community milanese è un super programmatore, la magia che ha fatto Martedì scorso la puoi leggere sotto.
Le nuove MKR shields
Durante le presentazioni in occasione dell’ADay19 il Team Arduino ha presentato molte novità e 4 nuove shield della famiglia MKR, tra queste tre esemplari del primo batch le ha donati all’AUG & wearable milano:
- MKR RGB
- MKR THERM
- MKR ENV
Ad oggi non sono ancora presenti nello store Arduino e le librerie sono state inviate in forma preliminare ai partecipanti dell’AUG per poter sperimentare e realizzare progetti per la community.
Ecco di seguito le tre shield:
la prima che abbiamo utilizzato, e della quale leggerai nel prossimo paragrafo, è stata la MKR RGB dotata di una matrice di led RGB 13×7 tutti inidirizzabili singolarmente.
La seconda shield è la MKR Therm:
Dotata di interfaccia per il collegamento di termocoppie di tipo K.
Al momento dell’AUG and Wearable MKR Shields non avevamo a disposizione una sonda timo K da utilizzare e ce ne procureremo una per i prossimi esperimenti.
La terza shield è la MKR ENV:
dotata di sensori ambientali quali:
- temperatura
- umidità dell’aria
- luminosità
- radiazione UVA
- radiazione UVB
che puoi utilizzare per i tuoi progetti IoT di smart cities unita ad una delle schede della famiglia mkr pensate per connettersi al cloud arduino.
Il test dell’AUG and Wearable MKR Shields – MKR RGB
Abbiamo testato la prima shield proposta la matice di led rgb unita alla MKR 1300 WAN ( LoRa ) messa a disposizione dai membri della community dopo un hackaton svoltosi il 16.03 a milano, si in contemporanea all’Arduino Day, e del quale parleremo nelle prossime date dell’AUG.
Concentriamoci sul test che partendo dall’esempio fornitoci da arduino è stato modificato da Cristian per realizzare una bellissima scritta scorrevole che cambia colore mentre scorre:
Le istruzioni per controllare i Led le trovi nella libreria rilasciata con la shield a cui puoi aggiungere tutto il codice che ti permette di cambiare il colore del testo mentre lo stesso scorre:
/* MKR RGB Matrix Shield - Scroll Text This example demonstrates how to display and scroll text on the MKR RGB Matrix shield. It continuously scrolls the current millis() value on the display. The circuit: - Arduino MKR board - Arduino MKR RGB Matrix Shield attached This example code is in the public domain. */ #include <ArduinoGraphics.h> // MKRRGBMatrix depends on ArduinoGraphics #include <MKRRGBMatrix.h> void setup() { // initialize the matrix MATRIX.begin(); // set the brightness, supported values are 0 - 255 MATRIX.brightness(10); // configure the text scroll speed MATRIX.textScrollSpeed(125); // display some short text without scrolling MATRIX.beginText(0, 0, 127, 0, 0); // X, Y, then R, G, B MATRIX.print("Hi"); MATRIX.endText(); delay(2000); } void loop() { MATRIX.beginText(0, 0); // use the same color as before MATRIX.print("millis="); MATRIX.println(millis()); MATRIX.endText(SCROLL_LEFT); // SCROLL_LEFT parameter here to configure scrolling left delay(250); }
Descrizione del codice
lo sketch usa le librerie:
- ArduinoGraphics.h
- MKRRGBMatrix.h
necessarie al controllo dei led della matrice in modo semplice;
linea 20: inizializza la matrice usando il metodo begin() della linìbreria MATRIX;
linee 23-26: imposta la luminosità dei led e la velocità con cui il testo deve scorrere;
linea 29: usa il metodo beginText passandogli le coordinate di partenza 0,0 e le tre componenti colore R,G e B;
linee 30-31: usando i metodi print ed endText() imposta la scritta “Hi” e invia il testo alla shield;
linea 33: imposta un ritardo di 2 secondi per consentirti di leggere il testo sulla matrice led;
linea 37: riporta il cursore alla posizione 0,0 usando nuovamente il metodo beginText() e passando solo le coordinate 0,0 come x ed y;
linee 38-39: imposta il messaggio da visualizzare “millis=” seguito dal valore in millisecondi trascorsi dall’avvio dello sketch;
linea 40: usa nuovamente il metodo endText() passandogli come valore SCROLL_LEFT per impostare la scritta scorrevole da destra verso sinistra;
linea 42: imposta un ritardo nel loop di 250 millisecondi;
L’esempio di Cristian con testo arcobaleno
Avrai notato che nel video compare completamente un altro testo e che inoltre cambia colore, questo è dovuto allo sketch sviluppato da Cristian in pochi minuti:
ed in modo del tutto live nel corso dell’AUG and Wearable MKR Shields, ed ecco il codice che ti permette di visualizzare il testo scorrevole arcobaleno:
/* MKR RGB Matrix Shield - Scroll Text This example demonstrates how to display and scroll text on the MKR RGB Matrix shield. It continuously scrolls the current millis() value on the display. The circuit: - Arduino MKR board - Arduino MKR RGB Matrix Shield attached This example code is in the public domain. */ #include <ArduinoGraphics.h> // MKRRGBMatrix depends on ArduinoGraphics #include <MKRRGBMatrix.h> void setup() { // initialize the matrix MATRIX.begin(); // set the brightness, supported values are 0 - 255 MATRIX.brightness(10); // configure the text scroll speed MATRIX.textScrollSpeed(125); // display some short text without scrolling MATRIX.beginText(0, 0, 244, 203, 66); // X, Y, then R, G, B MATRIX.print("AUG & Wearable 19.03.2019"); MATRIX.endText(); delay(2000); } int state = 0; int a = 255; int r = 255; int g = 0; int b = 0; void loop() { for (int i=0; i<256; i++) { cycleColors(); MATRIX.beginText(-i, 0, r, g, b); // use the same color as before MATRIX.print("AUG & Wearable 19.03.2019 Tutto MOLTO BIELLO"); MATRIX.endText(); // SCROLL_LEFT parameter here to configure scrolling left delay(25); } } void cycleColors() { if(state == 0){ g++; if(g == 255) state = 1; } if(state == 1){ r--; if(r == 0) state = 2; } if(state == 2){ b++; if(b == 255) state = 3; } if(state == 3){ g--; if(g == 0) state = 4; } if(state == 4){ r++; if(r == 255) state = 5; } if(state == 5){ b--; if(b == 0) state = 0; } }
Descrizione del codice
La prima parte dello sketch è identica a quella dell’esempio e descritta nelle linee sopra:
Sono cambiate solo le due linee 29 e 30 in cui la prima imposta il colore del testo come 244, 203, 66 ossia:
ma la vera magia è nel loop();
la linea 43: imposta un ciclo con indice da 0 a 255 ( < 256 ) incrementato di un valore alla volta;
linea 44: richiama per ogni ciclo del for la funzione cycleColors() che trovi sotto;
linee 45-47: sono quelle dedicate alla gestione della matrice e del testo, in particolare ad ogni ciclo del for il valore di “i” è passato al metodo beginText come “X” mentre la Y resta fissa a 0 ( linea 45 ) mentre i valori di r,g,b sono impostati nelle variabili globali gestite dalla cycleColors(). La linea 46 usa il metodo print per scrivere il testo che vedi nel video e dedivato all'”AUG & Wearable 19.03.2019 Tutto MOLTO BIELLO”; infine la linea 47 usa il metodo endText senza passare alcun parametro in quanto lo scorrere del testo è garantito dal cambio della coordinata X alla linea 45;
linea 48: imposta un ritardo da 25 millisecondi;
linee 52-83: dichiari la funzione cycleColors() che gestisce il cambio colore in 5 stati differenti nei quali per ciascuno stato i valori di r,g e b sono reimpostati per determinare tutte le sfumature colore, o quasi.
Ringrazio tutti gli intervenuti all’ AUG del 19.03.2019 e ti invito ad unirti al gruppo google per conoscere i prossimi appuntamenti a cui potrai partecipare e sperimentare con noi.