L’articolo mostra come realizzare la demo board XIAO METER, questa permette di testare facilmente un elevato numero di sensori tramite l’utilizzo di un XIAO SAMD21 della SEEED STUDIO che è il membro più piccolo della famiglia Seeeduino.
Il modulo misura solamente 20×17.5×3.5mm e dispone di un microprocessore Cortex-M0, 11 porte di I/O, connessioni seriali UART, I2C ed SPI. Compatibile con l’IDE di Arduino.
Il PCB è stato disegnato con il programma online EasyEDA, mentre è stato realizzato tramite il servizio offerto dal sito PCBWay
Sito online per creazioni schemi e PCB | Sito produzione PCB |
Indice
Genesi del progetto
Prima di procedere alla Progettazione del PCB si sono effettuate delle prove preliminari utilizzando una breadboard e si sono montati i vari componenti, il processore, il modulo di alimentazione, il sensore e il display. Si è anche verificato il funzionamento del circuito. In questo caso si è utilizzato un sensore BMP180 per la misurazione della temperatura.
Lo schema, disegnato con Fritzing è quello sotto riportato.
Sotto sono riportate alcune foto del test. La tensione fornita dalla sezione di alimentazione è stata verificata tramite un multimetro ed è regolata al valore di 5V, valore massimo in ingresso al modulo SAMD21
Schema elettrico della Demo board XIAO METER
Lo schema elettrico della Demo board XIAO METER ricalca quello del prototipo realizzato con Fritzing.
Per realizzare sia lo schema che il PCB di tipo a doppia faccia con fori metallizzati che misura solo 48×49 mm, si è utilizzato il programma on line EasyEDA: un servizio per il disegno di circuiti, la loro simulazione, e per la progettazione e produzione di PCB. Provatelo è gratuito!
Schema della scheda in formato PDF
Sezione processore
Nella sezione processore sono visibili i contatti utilizzati. Ci sono i due PIN SDA e SCL che permettono il dialogo con sensori e il display OLED. C’è poi il PIN A0 analogico, segue il PIN D1 collegato al tasto e il PIN D6 per l’ingresso digitale. Sono poi presenti i collegamenti di alimentazione +5V in arrivo dal modulo di alimentazione e caricabatteria l’uscita 3.3V da regolatore interno e il PIN di Massa.
Il Seeed Studio XIAO SAMD21 è perfettamente compatibile con Arduino IDE, il che permette di sviluppare facilmente piccoli progetti con l’aiuto della vasta e completa libreria Arduino.
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 |
Sezione caricabatteria e alimentazione
La sezione di alimentazione/caricabatteria è formata dal modulo LX-LCBS e contiene tutta la circuiteria per la carica della batteria LI-ion Lyon e l’alimentatore di tipo Step-UP per elevare il valore di 3.7 della batteria ai 5V necessari l’alimentazione del modulo XIAO-SAMD2. Il valore in uscita è regolabile tramite la rotazione di un piccolo trimmer presente sul modulo.
Fanno poi parte del circuito il connettore per la batteria di tipo polarizzato e l’interruttore a slitta che permette di disattivare l’alimentazione della batteria quando non utilizzata.
Il modulo modulo LX-LCBS è dotato di un chip TP4056 (datasheet) per la carica di batterie agli ioni di litio Li-Ion 3,7V a singola cella, completato dal chip di protezione delle batterie tipo HM5434 (datasheet).
Sul modulo è inoltre presente un chip Step up tipo MT3608 (datasheet) con uscita regolabile tramite trimmer per erogare una tensione continua compresa tra 4 e 28V.
Il modulo presenta in ingresso un connettore USB di C. In alternativa, possono essere utilizzate le due piazzole posteriori. E’ possibile scegliere l’uno o l’altro. La tensione consigliata è di circa 5V.
Caratteristiche
Sigla del modulo: | LX-LCBST |
Tipo di batteria ricaricabile | Litio li-ion 18650 3.7V |
La tensione di ingresso: | da 4,2 V a 6,5V (5 V DC) |
Corrente di carica programmabile: | fino a 1A |
La tensione di uscita regolabile: | da 4,2 V a 28 V |
Potenza massima: | 5W |
Temperatura di esercizio: | -40-80 °C |
Indicatore di carica: | Led rosso in carica/ Led blu carica completa |
Dimensioni (mm): | 23,6x18 |
Peso (gr): | 3.3 |
Per maggiori informazioni vedere l’articolo Carica batteria Litio Li-ion con Step-Up Boost 4-28 V
Sezione display OLED – 0.96 ” 128×64 pixel
Nella sezione del display OLED utilizzato, sono presenti solo quattro linee, le due del BUS I2C , SCL e SDA, e quelle dell’alimentazione 3.3V e GND.
Il display utilizzato 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.
Caratteristiche
Dimensione: | 0.96 “ |
Risoluzione: | 128 x 64 pixel |
Driver IC: | SSD1306 |
Tensione: | 3,3 V-5 V DC |
Consumo energetico: | 0,06 W in visualizzazione normale |
Angolo di visione: | > 160 ° |
Temperatura di lavoro: | -30 ÷ 70 °C |
Display: | 2 file di giallo, 6 righe di blu |
Dimensioni del modulo: | 29,28 x 27,1 mm (LW) |
Materiale dello schermo: | vetro |
Durata: | non è inferiore a 16000 ore |
Per altre informazioni vedere l’articolo Display bicolore OLED 0.96″ 128×64 – SSD1306
Sezione connettori I2C
La demo board dispone di 2 pinstrip femmina a 4 pin a cui collegare i sensori o moduli che utilizzano il collegamento I2C.
Sezione connettori porta digitale e Analogica
Sono presenti due pinstrip maschio, uno per il collegamento di moduli sensori di tipo analogico connesso al PIN A0 e uno per il collegamento di moduli o sensori di tipo digitale connessi al pin D6
Sezione pulsante
Il pulsante presente sulla demo board è collegata come detto precedentemente al PIN digitale di D1. Non è presente la resistenza di pull-up e pull-down in quanto viene utilizzata quella presente nel modulo SAMD21.
I microcontrollori ATSAMD21 dispongono di resistori pull-up e pull-down integrati che è possibile abilitare o disabilitare nel software. Il valore nominale delle resistenze è di 40 kΩ ma può essere compreso tra 20 kΩ e 60 kΩ . Fare riferimento alla scheda tecnica , sezione 37.9.1 per maggiori dettagli.
Caratteristiche della Demo Board XIAO METER
Descrizione | Valore | |||
---|---|---|---|---|
Tensione di esercizio | Batteria al litio da 5 V / 3,7 V | |||
Corrente di carica | 1A (massimo) | |||
Display | OLED da 0,96" 128×64 pixel - driver SSD1306 | |||
Porte I2C | 2 | |||
Porte digitali | 1 | |||
Porte analogiche | 1 | |||
Altre apparecchiature esterne | pulsante utente | |||
Modulo alimentatore /caricabatteria | LX-LCBS | |||
Dimensioni | 48.96 x 49.53 mm |
Dove trovare il progetto
Il progetto completo può essere scaricato dal mio account presso OSHWLab, utilizzando questo link.
Per realizzare il PCB si può anche utilizzare il mio progetto presente sulla piattaforma di condivisione offerta dalla PCBWay, ecco in link.
Come ordinare il PCB tramite PCBWay
Registriamoci sul sito PCBWay
Per la realizzazione del PCB, si è utilizzato il sito PCBWay. Ordinare i PCB tramite i sito di PCBWay è molto semplice. Vediamo come fare.
Accedete prima di tutto al sito https://www.pcbway.com/
e se non vi siete registrati , fatelo fornendo la vostra e-mail e creando una password.
NOTA: se vi siete appena iscritti avete diritto a ricevere 10 schede. Con solo $ 5,00 (più spedizione) sarà possibile ordinare 10 PCB dual layer di dimensioni massime 100x100mm .
Forniamo indicazioni preliminari su PCB
Per effettuare l’ordine occorre inserire le informazioni sulle dimensioni del circuito stampato, le quantità dei PCB che si desidera realizzare, il numero di layers e lo spessore.
Attenzione a riportare esattamente quelle indicate dal programma utilizzato per la creazione del PCB. Eventuali errori vi saranno comunque segnalati al momento dell’accettazione del lavoro, con possibilità di correggere i valori.
Nel nostro caso lo stampato misura 48.96 x 49.53 mm, per quanto riguarda gli altri lavori si possono lasciare quelli già indicati : 2 layers, spessore 1.6mm e 5 pezzi.
Premete ora il tasto “Quote Now”.
Affiniamo le caratteristiche del PCB
Si viene quindi trasferiti alla pagina in cui è possibile modificare vari parametri tecnici dei PCB, quali distanze tra le piste, minima dimensione delle hole, il colore della solder mask, il colore del silkscreen, i gold fingers, il trattamento di finitura e le specifiche sul rame delle piste.
Esiste inoltre un box testuale in cui si può inserire qualche informazione addizionale sul PCB.
Ogni modifica porta ad una variazione del costo della scheda.
Quello che consiglio, se non strettamente necessario, è di non modificare alcun valore.
Dovete, ora anche fornire i dati relativi al paese di destinazione e il tipo di corriere o servizio di posta
Visto che stiamo ordinando dalla Cina, la spedizione rapida con corriere è molto costosa. Esiste la possibilità di scegliere il corriere tra DHL, FedEX, Global Standard, EMS, AliExpress, Chine Post, PostNL, E.packet, oppure addirittura un vostro corriere.
Fatte tutte le scelte portatevi sul fondo della pagina e premete il tasto “Calculate”. Viene preparato il preventivo, come ad esempio illustrato nella seguente figura:
Inviamo il file gerber
A questo punto potete procedere all’ordine premendo “Save to Cart”. In questa fase vi apparirà la finestra, dalla quale è necessario effettuare fare l’upload dei files gerber.
PCBWay accetta file Gerber RS-274-X, DXP oppure direttamente il file di progetto .brd di Autodesk Eagle.
Una volta caricato il file, occorre premere sul tasto “Submit Order Now” e l’ordine sarà mostrato nella lista ordini.
Nelle fasi iniziali si troverà in fase di review e se non ci saranno problemi nel giro di pochi minuti, arriverà il responso da parte del servizio tecnico PCBWay, che confermerà o meno l’ordine.
Nota: Il sito PCBWay offre un servizio online per esaminare il file gerber.
Completamento dell’ordine
Si passerà quindi al pagamento on-line e avvenuta la transazione, si riceverà una email con l’aggiornamento.
A questo punto partirà il processo di spedizione e nel giro di qualche un giorno vi arriverà la notifica che la spedizione è partita con indicazione del tracking number del corriere.
Ricezione dei PCB
Vi arriverà quindi all’indirizzo che avrete indicato, il pacco contenete i vostri PCB.
Nelle foto sotto le foto dei PCBs prodotti, come potete notare la qualità è ottima.
Costruzione
L’assemblaggio della demo board XIAO METER è piuttosto semplice. Occorreranno però alcuni strumenti :
- Per la saldatura, si utilizzerà un piccolo saldatore a punta fine, della potenza di circa 25 – 30 W.
- Stagno per saldatura ricavato, per esempio, da un rocchetto di stagno per saldatura con filo diametro 1 mm “lead-free” ovvero senza piombo. Lega composta dal 97% di stagno e 3% di rame;
Vedere anche gli articoli:
- Il laboratorio di elettronica – Le attrezzature
- Il laboratorio di elettronica – La strumentazione
- Come eseguire delle buone saldature
- Stazione di saldatura digitale ST50-D 50W.
Fasi di montaggio
Nelle immagini sotto riportate sono illustrati i pochi passaggi per la realizzazione della Demo board XIAO METER.
Componenti necessari
ID | Sigla | Descrizione | Q.tà |
---|---|---|---|
1 | A1, D1 | Pin header M 1x3 | 2 |
2 | I2C1, I2C2 | Pin header F 1x4 | 2 |
3 | BATT | Connettore JSP S2B-PH-K-S(LF)(SN) | 1 |
4 | PWR | Interruttore a slitta (SS-12D02-VG4) | 1 |
5 | BUTTON | Pulsante 4.5x4.5mm (K2-1102DP-E4SW-04) | 1 |
6 | OLED | Display OLED I2C 128X64 | 1 |
7 | U1 | SEEEDUINO XIAO-SAMD21 | 1 |
8 | U2 | MODULO LX-LCBST | 1 |
Datasheet | Datasheet | Datasheet |
Si inizierà saldando il modulo caricabatteria/alimentazione LX-LCBS.
a cui avremo preventivamente saldato dei pin derivati da una pin strip maschio
Prima di saldare componete, conviene regolare l’uscita del modulo, in modo che eroghi 5V. A tale proposito vi consiglio di leggere l’articolo Carica batteria Litio Li-ion con Step-Up Boost 4-28 V
si prosegue poi con la saldatura del pulsante e dell’interruttore a slitta
Si passera quindi a tutte le pin strip. Le due a 8 pin per il modulo XIAO-SAMD21, le tre a 4 pin per le connessioni I2C e le 2 pin strip maschio per Pin di ingresso digitale ed analogico
Per ultimo il connettore polarizzato per il collegamento della batteria, da saldarsi nel lato inferiore della scheda .
Ora possiamo passare a posizionare i componenti sulla scheda. Il sensore BMP180 è solo di esempio.
A questo punto il montaggio può considerarsi concluso
Test caricabatteria
Il circuito è alimentato a batteria. Può essere caricata tramite il modulo LX-LCBS, per cui senza staccare la batteria sarà sufficiente fornire 5V tramite la sua porta USB. Si accenderà il led rosso, che segnalerà che la batteria in carica. Quando questa sarà carica si accenderà il led blu.
Supporti per Demo Board
Per migliorare l’utilizzo della demo board è possibile inserire n° 4 distanziale filettati Esagonali M/F in Ottone Nichelato, L. 10mm, M3 x M3 da fissare con n° 4 dadi M3 come visibile nella foto.
Primo test della Demo Board XIAO Meter
Finito il montaggio possiamo procedere a un test di funzionamento.
I primi passi saranno quelli di configurare il sistema, per cui dovremo aggiungere, se non l’abbiamo già fatto, all’IDE la possibilità di gestire il modulo XIAO SAMD1 e il display OLED. Vediamo come.
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, e 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…, e inserire la keyword “Seeeduino xiao” nella casella di ricerca. Comparirà la voce “Seeed SAMD Boards“, che dovrà essere installata.
Per maggiori informazioni vedere l’articolo Seeed Studio XIAO SAMD21 – Presentazione
Libreria di gestione del display
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
Per altre informazioni vedere l’articolo Display bicolore OLED 0.96″ 128×64 – SSD1306
Programma di test
Sotto è riportato il breve programma che testa il funzionamento del display.
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 |
//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 e cancella il display display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); delay(500); display.clearDisplay(); } void loop() { display.setTextColor(WHITE); display.setTextSize(2); display.setCursor(5, 0); display.println("XIAO METER"); display.println(" PROJECT"); display.println(" BY"); // Cambia sfondo display.setTextColor(BLACK, WHITE); display.println(" ADRIROBOT"); display.display(); delay(2000); //cancella display display.fillRect(0, 0, 128, 64, BLACK); display.display(); display.clearDisplay(); delay(500); } |
Prossimamente
Con questo articolo abbiamo montato e testato la Demo board XIAO METER. Seguiranno specifici articoli dove saranno mostrati test con vari dispositivi che possono essere collegati. Sotto alcuni esempi.
Valore della temperatura letto tramite sensore BMP180
Valore della luminosità ambiente letto tramite sensore BMH1750
Vari dati: temperatura, pressione barometrica, umidità, VOC letti tramite sensore BME680
Gestione ingressi/uscita digitali, gestione led tramite pulsante
Lettura valore tensione tramite ingresso analogico