Il Seeed Studio XIAO SAMD21 è il membro più piccolo della famiglia Seeeduino.
Il modulo misura solamente 20×17.5×3.5mm e utilizza il microcontrollore CORTEX M0 tipo ATSAMD21G18A-MU (datasheet).
Il Seeed Studio XIAO SAMD21 ha 14 PIN, oltre ai pin per l’alimentazione (3V3, 5V, GND). I restanti 11 pin sono configurabili per varie funzioni. Vediamo le sue principali caratteristiche.
Indice
Descrizione
Seeed Studio XIAO SAMD21 è perfettamente compatibile con Arduino IDE, in che permette di sviluppare facilmente piccoli progetti con l’aiuto della vasta e completa libreria Arduino.
Ecco le sue principali caratteristiche:
Descrizione | Valore |
---|---|
Processore | CPU ARM Cortex-M0+ (SAMD21G18) fino a 48 MHz |
Memoria flash | 256KB |
Sram | 32KB |
Pin I/O | 11 PIN analogici (10 o 12 bit), 11 PIN digitali, 1 pin di uscita DAC |
Interfaccia I2C | 1 |
Interfaccia SPI | 1 |
Interfaccia UART | 1 |
LED | 1 LED utente, 1 LED di alimentazione, due LED per il download della porta seriale |
Porta alimentazione e interfaccia di download | Tipo-C |
Alimentazione | 3,3 V/5 V CC |
Dimensioni | 20 × 17,5 × 3,5 mm |
Compatibilità software | Compatibile con Arduino IDE |
Come aggiungere Seeed Studio XIAO SAMD21 all’Arduino IDE
Il modulo Seeed Studio XIAO SAMD21 può essere programmato attraverso l’IDE di Arduino, basta aggiungere la scheda tra quelle riconosciute.
Cominceremo accedendo alla voce di menù File > Impostazioni, ed aggiungeremo alla sezione URL aggiuntive per il Gestore schede, la seguente URL :
https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
Ora cliccheremo su Strumenti-> Scheda-> Gestore di schede…, ed inserire la keyword “Seeeduino xiao” nella casella di ricerca. Comparirà la voce “Seeed SAMD Boards“, che dovrà essere installata.
Verifica della scheda e della porta di comunicazione
Possiamo ora collegare la scheda al PC utilizzando un cavo dotato di connettore tipo C.
Una volta collegata si dovrebbe accendere il led Verde, presenza tensione, mentre il LED giallo dovrebbe lampeggiare, questo in quanto è già preinstallato dal costruttore il programma Blink.
Passeremo ora alla selezione della scheda. Per cui cliccheremo su Strumenti-> Scheda, e sotto la sezione Seeed SAMD Boards selezioneremo il modello Seeduino XIAO.
Si potrà ora selezionare la porta seriale della scheda prescelta dal menù Strumenti-> Porte seriali.
RESET della scheda
A volte la porta della scheda XIAO SAMD21 può scomparire quando il processo di programmazione dell’utente fallisce.
Viste le ridotte del modulo non è stato dotato di un vero e proprio pulsante di RESET per cui la procedura da attuare è la seguente:
- Collegare il Seeed Studio XIAO SAMD21 al tuo computer.
- Utilizzare una pinzetta, un piccolo cavo per collegamenti, un cavallotto , per cortocircuitare i pin RST solo una volta
- Se l’operazione è andata a buon fine i due LED arancioni lampeggiano brevemente.
Test di prova
Vediamo ora un piccolo test di prova della scheda Seeed Studio XIAO SAMD21.
Realizzeremo un completo Luxmetro, basato sul sensore luce BH1750FVI dotato di interfaccia I2C i cui valori saranno riportati su un OLED da 0.96 ”.
Materiale occorrente
Il materiale per realizzare il nostro Luxmetro è formato da:
Scheda Seeed Studio XIAO SAMD21 | |
Display OLED da 0.96 ” | Cavi colorati M/F |
Il sensore BH1750
Il sensore BH1750 presente sul breakout GY-302 è in grado di trasformare l’intensità della luce, compresa in un range da 1 a 65.535 lux, in un segnale digitale disponibile tramite interfaccia I2C.
Il Breakout GY-302 con sensore BH1750 può essere acquistato presso il sito FUTURA ELETTRONICA, il codice prodotto è 1606-GY302BH1750.
Per maggiori informazioni sul sensore luce BH1750FVI vedere l’articolo BH1750 GY-302 Sensore di luce
Il display OLED da 0.96″
Questo display di tipo OLED da 0.96 ” ha una risoluzione di 128×64 pixel, sfrutta il driver SSD1306 e si interfaccia tramite la connessioni I2C.
Il display ha la particolarità di avere una parte superiore di colore giallo e quella inferiore di colore blu.
Per altre informazioni sul display vedere l’articolo Display bicolore OLED 0.96″ 128×64 – SSD1306
Schema di collegamento
Sotto è riportato lo schema dei collegamenti tra Seeed Studio XIAO SAMD21, il display OLED e il sensore BH1750 GY-302
Librerie necessarie
Libreria per il display OLED
Per utilizzare il display OLED è necessario installare l’apposita libreria. Può essere cercata tra le librerie installabili nell’IDE, basterà inserire nel campo di ricerca “Adafruit_SSD1306“.
Sarà anche mostrata una finestra che segnala che la libreria ha una dipendenza con la libreria grafica “Adafruit GFX Library“. Procedete premendo su “Install all”.
Per altre informazioni su come installare le librerie vedete l’articolo Arduino – Tutorial, come installare una libreria
Libreria di gestione del sensore
Per facilitare l’uso del sensore luce BH1750 è disponibile un’apposita libreria; questa funziona in unione alla libreria Wire.h che è già presente come libreria standard dell’IDE di Arduino che permette l’utilizzo del protocollo I2C
Per il caricamento occorre aprire sotto il menù Sketch, #include libreria, “Gestione Librerie..”
Nel campo ricerca si inserirà “BH1750”, trovata la libreria realizzata da Cristopher Laws , premendo su “More info..” apparirà il tasto “Installa” cliccare il tasto, la libreria verrà installata
Per altre informazioni vedere anche l’articolo Arduino – Tutorial, come installare una libreria
Programma/codice sorgente
Di seguito è riportato invece il codice sorgente di base per la lettura del sensore. In questo caso i valori letti di illuminamento saranno mostrati sul display con una tempo di campionamento di 1 secondo.
I due dispositivi: sensore e display sono connessi tramite la linea I2C non creano problemi in quanto hanno due diversi indirizzi: 0x23 per il sensore e 0x3C per il display.
A questo punto è possibile cliccare il tasto “Upload” sulla barra degli strumenti.
Attendere qualche secondo e, se l’upload ha avuto successo, apparirà il messaggio relativo sulla barra di stato.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | //Imposta sensore BH1750 #include <Wire.h> #include <BH1750.h> BH1750 lightMeter; //Imposta display OLED #include <Adafruit_SSD1306.h> #define OLED_ADDR 0x3C #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET 1 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); void setup() { //Inizializza monitor seriale Serial.begin(9600); // inizializza e cancella il display display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); delay(500); display.clearDisplay(); // Inizializza il bus I2C e il sensore Wire.begin(); lightMeter.begin(); Serial.println(F("BH1750 Lettura sensore")); } void loop() { float lux = lightMeter.readLightLevel(); //Dati su monitor seriale Serial.print("Light: "); Serial.print(lux); Serial.println(" lx"); //Dati su display display.setTextColor(WHITE); display.setTextSize(2); display.setCursor(30, 0); display.println("BH1750"); display.setCursor(15, 20); display.print(lux, 1); display.println(" lx"); display.setTextSize(1); display.setCursor(15, 50); display.println("www.adrirobot.it"); display.display(); delay(1000); display.clearDisplay(); } |
Video del test
Versione con utilizzo della XIAO METER
Versione con Arduino UNO
Sotto è riportato il video della versione del Luxmetro basato sulla Scheda Arduino.
Travate le informazioni che lo descrive nell’articolo BH1750 GY-302 Sensore di luce