Italy Map SK6812 è un progetto dell’amico Luca Dentella che mi ha donato uno dei sui PCB.
Tra Maker ed appassionati di elettronica ed Arduino capoita che ci si scambi dei progetti e delle produzioni personali.
E’ questo il caso dell’Italy Map SK6812 che è stata disegnata da Luca e presentata sul suo blog qualche mese fa.
Poichè il progetto era davvero interessante e ben fatto ho scritto a Luca per complimentarmi e, in risposta, ha deciso di donarmi uno dei PCB della mappa dell’Italia.
Ordinati i led necessari gli SK6812 mini 2020 ho atteso il tempo della spedizione ed in questi giorni ho montato la mia versione del progetto:
con ben 20 led RGB di tipo SK6812, simili ai più famosi WS2812B, ma della dimensione “mini” di 2x2mm.
Per la parte di assemblaggio puoi seguire le istruzioni presenti nel github di Luca in cui trovi anche degli esempi di codice per i primi test.
C’è una info importante da conoscere: la posizione di ciascun led in funzione della regione il pin positivo, quello negativo ed i rispettivi IN ed OUT sono posizionati in modo differente.
Puoi seguire questa immagine come riferimento:
in cui si vede chiaramente come ciascun led è posizionato.
Notice
Fai attenzione al led dell’Abruzzo e quello della Calabria che sono posizionati in modo inverso rispetto a quello che ti aspetteresti.
Collegamento ad Arduino
puoi collegare ad Arduino alla Italy Map SK6812 con i soli tre pin:
Arduino Leonardo | Italy Map |
+5v | +5v |
pin 2 | dt |
Gnd | GND |
come visibile in figura:
come al solito la breadboard contiene una pulsantiera pre-cablata che uso per vari esperimenti, ma che in questo articolo non è collegata e non la utilizzerai.
Lo sketch di test
per eseguire il primo test puoi utilizzare lo sketch che ha rilasciato Luca su gitHub ( vedi link nei paragrafi precedenti )
#include <Adafruit_NeoPixel.h> #define NUM_REGIONS 20 #define SIGNAL_PIN 2 Adafruit_NeoPixel strip(NUM_REGIONS, SIGNAL_PIN, NEO_GRB + NEO_KHZ800); uint32_t red = strip.Color(255, 0, 0); uint32_t green = strip.Color(0, 255, 0); uint32_t orange = strip.Color(255, 60, 0); uint32_t blue = strip.Color(0, 0, 255); uint32_t white = strip.Color(255, 255, 255); void setup() { strip.begin(); strip.setBrightness(5); strip.clear(); } void loop() { for(int i = 0; i < NUM_REGIONS; i++) { strip.setPixelColor(i, orange); strip.show(); delay(50); } delay(500); strip.clear(); for(int i = NUM_REGIONS - 1; i >= 0; i--) { strip.setPixelColor(i, blue); strip.show(); delay(50); } delay(500); strip.clear(); for(int i = 0; i < 5; i++) strip.setPixelColor(i, green); for(int i = 5; i < 12; i++) strip.setPixelColor(i, white); for(int i = 12; i < NUM_REGIONS; i++) strip.setPixelColor(i, red); strip.show(); delay(3000); strip.clear(); delay(500); }
in cui l’unica modifica che ho apportato è alla linea 04 impostando come pin di controllo il pin 2.
Il resto dello sketch ti permette di impostare il valore dei colori da assegnare ai led:
Colore | Valore |
red | 255,0,0 |
green | 0,255,0 |
orange | 255,60,0 |
blue | 0,0,255 |
white | 255,255,255 |
Il resto dello sketch esegue la sequenza di accensione dei led per realizzare gli seguenti:
Il video Italy Map SK6812
Il video di test della Italy Map SK6812 in cui puoi vedere anche come ho saldato i primi led della mappa partendo dal friuli venezia giulia ed il trentino:
oltre al funzionamento dello sketch di test provato dopo aver assemblato il pcb.
Nei prossimi articoli leggerai di altri progetti che puoi realizzare con questo pcb, alcuni già pubblicati da Luca e messi a disposizione di tutti noi maker.