In questo articolo vediamo come realizzare degli occhi robot tramite matrici 8×8 pilotare da MAX7219 per mostrare semplici espressioni facciali.
Il PCB è stato disegnato con il programma online EasyEDA, mentre è stato realizzato tramite il servizio offerto dal sito ALLPCB.
Per altri progetti realizzati con ALLPCB vedere il post ALLPCB – Anteprima PCB di progetti realizzati
Sito online per creazioni schemi e PCB | Sito produzione PCB |
Indice
Genesi del progetto
Prima di procedere alla stesura del progetto “occhi robot” con matrici 8×8 MAX7219 si è realizzato un prototipo per verificarne la fattibilità.
Per ulteriori informazioni vedere anche l’articolo Matrice LED 8×8 pilotata da driver MAX7219
Sotto è riportato lo schema di base
Schema elettrico del PCB Robot eyes
Lo schema elettrico della scheda per “Occhi robot” con matrici 8×8 MAX7219 quello del prototipo realizzato con Fritzing.
E’ limitato al connettore J1 per il collegamento alla scheda di controllo e ai due moduli U1 e U2 tipo FC16, vedere più sotto la loro descrizione.
Schema della scheda in formato PDF
Il PCB che misura 67.3×39.37 mm è di tipo a doppia faccia con fori metallizzati. Sotto sono riportate le immagini relative al PCB e il rendering, realizzati dal programma EasyEDA: un servizio per il disegno di circuiti e la loro simulazione, progettazione e produzione di PCB. Provatelo è gratuito!
Il progetto completo può essere anche scaricato dal mio account presso OSHWLab, utilizzando questo link.
Descrizione del modulo FC-16
Il modulo FC-16 è formato da un PCB su cui è presente l’integrato MAX7219 (vedere datasheet) che è stato progettato per controllare display a LED, a segmenti o matrici di punti. E’ poi istallata una Matrice LED 8×8 a catodo comune (64 led). Sotto è riportato il suo schema .
Alcune foto di dettaglio del modulo FC-16
Sotto la foto del MAX7219, dei due connettori femmina per l’installazione della matrice di led. Ai lati i fori dove saldare i connettori che premettono di collegare più moduli inserendoli uno nell’altro.
Per ulteriori informazioni vedere l’articolo Matrice LED 8×8 pilotata da driver MAX7219
Come ordinare il PCB tramite ALLPCB
Per la realizzazione del PCB, si è utilizzato il sito ALLPCB
Ordinare i PCB tramite il sito di ALLPCB è molto semplice.
Dopo aver realizzato il progetto con il vostro programma preferito, per esempio EasyEDA, vi basterà preparare il relativo file Gerber.
Il formato GERBER è lo standard de-facto utilizzato per la produzione di circuiti stampati (PCB) per tracciare le connessioni elettriche quali piste, vias, e piazzole. In aggiunta, il file contiene informazioni per la foratura e la fresatura del circuito stampato e anche i testi da riportare sulla serigrafia
Accedete quindi al sito ALLPCB,
Se non vi siete registrati , fatelo fornendo la vostra e-mail e creando una password. In questo modo vi sarà attribuito un vostro account ID.
Inserite le dimensioni del vostro PCB, facendo 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 da parte della ALLPCB, con possibilità di correggerne i valori.
Effettuate l’upload del file gerber, e indicate la quantità richiesta di PCB in multipli di 5. Per il resto potrete lasciare tutti i valori standard già presenti.
Ricordate che eventuali variazioni portano di solito a un aumento del costo finale del PCB.
Una volta indicato il paese di destinazione e il tipo di corriere o servizio di posta, potete premere il tasto Quote Now, vi sarà mostrato il costo totale.
A questo punto potete procedere all’ordine premendo Add to Cart, occorrerà quindi procedere con il pagamento per ricevere i vostri PCB. Le fasi di costruzione e spedizione potranno essere seguite accedendo successivamente al sito.
Offerte per nuovi utenti
Offerta speciale, per solo 1 $ per schede a 1-6 strati, 5 pezzi, dimensioni entro 100 x 150 mm.
Il buono sconto sarà disponibile al momento della registrazione, il che significa che si ottengono quasi gratis PCB al primo ordine. Ecco li link per avere informazioni: Buono sconto per PCB
- Buono sconto di 75$ per assemblaggio di 10 PCB. Ecco il link per avere informazioni: Buono sconto per assemblaggio
Ricezione dei PCB
Dopo pochi giorni riceverete a casa il pacco con i vostri PCB
Esterno del pacco contenenti i PCB
Interno del pacco ricevuto
oltre i PCB richiesti relativi a più progetti, riceverete anche dei gadget rappresentati da righelli realizzati con lo stesso materiale dei PCB
Ogni gruppo di PCB è protetto con del Pluriball. All’interno è presente anche un sacchetto di Gel di silice per eliminare l’umidità controllabile anche tramite un ‘etichetta che cambia colore se esposta all’umidità
Ecco i PCB prodotti, lato TOP e BOTTON
Costruzione
L’assemblaggio del PCB è 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 scheda ROBOT EYES
Componenti necessari
ID | Sigla | Descizione | Q.tà |
1 | PCB Robot Eyes | 1 | |
2 | J1 | Pin header M 1x5 90° | 1 |
3 | Pin header F 1x5 | 4 | |
4 | U1-U2 | Modulo FC-16 Dot Matrix Display 8x8 | 2 |
Si inizierà a saldare la pin strip J1 – maschio 1×5 90°
si prosegue poi con le 4 pin-strip femmina 1×5 per i moduli FC-16
Ora non resta che posizionare i due moduli FC-16 sui connettori.
Il montaggio è terminato e si può procedere al collaudo.
Test della scheda realizzata
Passeremo ora al collaudo della scheda realizzata.
Come scheda si è utilizzata una scheda Keyestudio PLUS. Completamente compatibile con l’ambiente di sviluppo Arduino IDE. Contiene tutte le funzioni della scheda Arduino UNO R3 e alcuni miglioramenti che ne rafforzano notevolmente la funzione.
Altra particolarità: alla scheda possono essere collegati dispositivi, nel nostro caso il display, alimentato a 3,3V o a 5V, un deviatore permette di scegliere la tensione disponibile sui pin.
per il collegamenti si utilizzeranno dei cavi colorati con connettori tipo Dupont M/F secondo le indicazioni riportati nello schema.
Installazione della libreria
Per l’utilizzo del modulo si è utilizzata la libreria “HD_MAX72XX” che contiene anche il codice per l’animazione dei due occhi. Per il caricamento occorre aprire sotto il menù Sketch, #include libreria, “Gestione Librerie..” e ricercare online la libreria, ora alla versione 3.4.1.
Altre informazioni su come caricare una libreria vi consiglio la lettura dell’articolo Arduino – Tutorial, come installare una libreria
Il programma è disponibile tra quelli di esempio. Il suo nome è “MD_MAX72xx_RobotEyes“,col programma saranno caricate altri file che contengono le istruzioni necessarie per la gestione delle animazioni
- MD_RobotEyes.cpp
- MD_RobotEyes.h
- MD_RobotEyes_Data.h
Prima di compilare lo sketch, occorre specificare il modello di modulo utilizzato, in questo caso “FC16_HW” e il numero di display presenti, nel nostro caso 2, per permettere al programma di trasferire correttamente i dati.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <MD_MAX72xx.h> #include <SPI.h> #include "MD_RobotEyes.h" #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 2 // numero moduli #define CLK_PIN 13 // or SCK #define DATA_PIN 11 // or MOSI #define CS_PIN 10 // or SS // SPI hardware interface MD_MAX72XX M = MD_MAX72XX(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); |
codice completo del programma utilizzato per il test
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 52 53 54 55 56 57 58 59 60 61 62 |
#include <MD_MAX72xx.h> #include <SPI.h> #include "MD_RobotEyes.h" #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 2 // numero moduli #define CLK_PIN 13 // or SCK #define DATA_PIN 11 // or MOSI #define CS_PIN 10 // or SS // SPI hardware interface MD_MAX72XX M = MD_MAX72XX(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); // Arbitrary pins //MD_MAX72XX M = MD_MAX72XX(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES); MD_RobotEyes E; typedef struct { char name[7]; MD_RobotEyes::emotion_t e; uint16_t timePause; // in milliseconds } sampleItem_t; const sampleItem_t eSeq[] = { { "Nutral", MD_RobotEyes::E_NEUTRAL, 20000 }, { "Blink" , MD_RobotEyes::E_BLINK, 1000 }, { "Wink" , MD_RobotEyes::E_WINK, 1000 }, { "Left" , MD_RobotEyes::E_LOOK_L, 1000 }, { "Right" , MD_RobotEyes::E_LOOK_R, 1000 }, { "Up" , MD_RobotEyes::E_LOOK_U, 1000 }, { "Down" , MD_RobotEyes::E_LOOK_D, 1000 }, { "Angry" , MD_RobotEyes::E_ANGRY, 1000 }, { "Sad" , MD_RobotEyes::E_SAD, 1000 }, { "Evil" , MD_RobotEyes::E_EVIL, 1000 }, { "Evil2" , MD_RobotEyes::E_EVIL2, 1000 }, { "Squint", MD_RobotEyes::E_SQUINT, 1000 }, { "Dead" , MD_RobotEyes::E_DEAD, 1000 }, { "ScanV" , MD_RobotEyes::E_SCAN_UD, 1000 }, { "ScanH" , MD_RobotEyes::E_SCAN_LR, 1000 }, }; void setup() { M.begin(); E.begin(&M); // do { } while (!E.runAnimation()); // wait for the text to finish } void loop() { static uint32_t timeStartDelay; static uint8_t index = ARRAY_SIZE(eSeq); static enum { S_IDLE, S_TEXT, S_ANIM, S_PAUSE } state = S_IDLE; bool b = E.runAnimation(); // always run the animation index++; if (index >= ARRAY_SIZE(eSeq)) index = 0; E.setAnimation(eSeq[index].e, true); } |
Altri progetti realizzati tramite il servizio offerto da ALLPCB
Sempre con il servizio di realizzazione PCB offerto da ALLPCB sono stati realizzati questi progetti.
DFPlayer mini shied per Wemos D1 mini.
Modulo DFPlayer mini shied per Wemos D1 mini che permette l’utilizzo del modulo DFPlayer Mini con il modulo Wemos D1 mini.
OLED bicolor shield per Wemos D1 mini
Modulo OLED bicolor shield per Wemos D1 mini permette di utilizzare dei normali display OLED da 0.96 ” bicolor o normali con una risoluzione di 128×64 pixel, che sfrutta il driver SSD1306 e si interfaccia tramite la connessione I2C.
Questi ultimi si trovano facilmente in rete ad un prezzo molto basso.