- Materiali richiesti:
- Schema elettrico:
- Creazione dell'applicazione Android utilizzando Processing:
- Comprensione del codice di elaborazione:
- Programmare il tuo Arduino:
- Progettazione di circuiti e PCB utilizzando EasyEDA:
- Calcolo e ordinazione di campioni online:
- Funzionamento del display del cartello Bluetooth:
Che si tratti delle lunghe autostrade o della porta d'ingresso dei tuoi medici, abbiamo cartelli posizionati ovunque per fornirci informazioni. Ma queste insegne sono spesso noiose e di tanto in tanto non possono essere configurate secondo il nostro interesse. Quindi in questo progetto costruiremo un cartello con controllo Bluetooth utilizzando un display Matrix 8 * 8. Una caratteristica unica di questo progetto è la sua applicazione Android che consente all'utente di controllare tutti i 64 LED individualmente dal telefono cellulare. Ciò consente all'utente di creare design personalizzati con facilità e visualizzarli sul display a LED, sembra interessante, vero? !! Quindi iniziamo…
Materiali richiesti:
- Arduino Pro mini
- MAX7219
- Modulo Bluetooth HC-05
- Display a matrice di LED 8 * 8
- Resistenza da 20k
- DC Barrel Jack
Schema elettrico:
Lo schema del circuito di questa scheda LED controllata da Bluetooth costruita utilizzando l'applicazione EasyEDA. Useremo gli stessi schemi per sviluppare un PCB da esso e fabbricarlo usando EasyEDA.
Il circuito è piuttosto semplice. L'intero progetto è alimentato da un adattatore 12V, che viene fornito direttamente al pin Raw della scheda Arduino. Questa tensione grezza viene quindi regolata a + 5 V che viene fornita al modulo Bluetooth e all'IC MAX7219. I pin Tx e Rx del modulo Bluetooth sono collegati a D11 e D10 di Arduino per abilitare la connessione seriale.
I pin digitali da D5 a D7 sono collegati all'IC MAX7219 per inviare e ricevere dati tramite la comunicazione SPI. Il pin ISET di MAX7219 viene tirato in alto attraverso un resistore da 20k.
Per questo progetto ho fabbricato un PCB, puoi ottenere il file di progettazione del PCB e utilizzare lo stesso o costruire il circuito su una breadboard. Tuttavia, a causa della sua complessità, si consiglia di acquistare un modulo Display 8x8 o di utilizzare il PCB
La matrice 8x8 è un modulo di visualizzazione molto utile e può essere utilizzata in molti progetti interessanti:
- Controllo della matrice LED 8x8 con Raspberry Pi
- Visualizzazione del testo scorrevole su matrice LED 8x8 utilizzando Arduino
- Matrice LED 8x8 utilizzando Arduino
- Matrice di LED 8x8 che si interfaccia con il microcontrollore AVR
Creazione dell'applicazione Android utilizzando Processing:
Prima di poter iniziare a programmare il nostro Arduino, dovremmo sapere che tipo di dati riceveremo dal telefono cellulare per rispondere ad esso. Diamo quindi un'occhiata a come viene creata l'applicazione Android e come puoi usarla sul tuo smartphone per controllare la matrice LED 8x8.
L'applicazione Android per questo progetto è stata creata utilizzando il software Processing. È un'applicazione di sviluppo Open-Source e può essere facilmente scaricata e utilizzata per sviluppare progetti interessanti utilizzando Arduino o altri microcontrollori poiché può sviluppare applicazioni Android e applicazioni di sistema. Abbiamo già realizzato alcuni progetti utilizzando Processing e puoi verificarli facendo clic sui collegamenti sottostanti.
- Radio FM fai da te utilizzando l'elaborazione
- Realtà virtuale / controllo gestuale utilizzando Arduino
- Chat room privata utilizzando Arduino.
- Sistema radar Arduino con APP di elaborazione e sensore a ultrasuoni
- Rilevamento e monitoraggio dei volti in tempo reale utilizzando Arduino
- Tachimetro fai-da-te utilizzando Arduino e Processing
- Ping Pong Game con Arduino Accelerometer
- Robot bipede che utilizza Arduino
- Fotocamera per immagini termiche Arduino fai-da-te
Tornando all'argomento, è impossibile per me spiegare il codice completo dell'applicazione Android, quindi dovresti imparare a elaborare da solo e quindi guardare il codice per capire come funziona. Quindi, le persone che sono disposte a saltare il processo di apprendimento dell'elaborazione possono scaricare l'applicazione Android dal collegamento sottostante
- Scarica l'applicazione Android
Di seguito è riportata l' interfaccia della nostra applicazione Android:
Il file APK può essere installato direttamente su qualsiasi applicazione Android e avviato come qualsiasi altra applicazione. Ma assicurati che il tuo dispositivo Bluetooth HC-05 sia denominato "HC-05", perché solo allora funzionerà.
Comprensione del codice di elaborazione:
Le persone interessate a sapere cosa succede dietro lo schermo possono leggere oltre, mentre gli altri possono passare all'intestazione successiva. Fondamentalmente l'applicazione Android si connette a un dispositivo Bluetooth chiamato "HC-05" durante l'avvio e visualizza una serie di 64 LED in forma di cerchi. Quindi quando l'utente preme il cerchio il cerchio diventa rosso e il numero del cerchio viene inviato ad Arduino tramite Bluetooth, alla ricezione del numero del cerchio Arduino accende il LED. Diamo un'occhiata alle linee importanti del programma Processing per capire meglio. Il codice completo dell'applicazione Android può essere scaricato dal link sottostante.
- Codice di elaborazione per l'applicazione Android
Usiamo classi e oggetti per visualizzare 64 LED in modo da poter indirizzare facilmente ciascuno di essi. Come puoi vedere nel codice seguente, usiamo un ciclo for per iterare da 1 a 64 usando un array. Questo era ogni LED avrà il proprio valore di posizione X, posizione Y e colore e possiamo cambiarli facilmente.
// visualizza tutti i led per (int i = 1; i <= 64; i ++) led_array.display (); // Tutti i led hanno visualizzato la classe Led { float X_Pos; float Y_Pos; colore colore; // CONSTRUTOR Led (float tempx, float tempy, color tempc) { X_Pos = tempx; Y_Pos = tempy; color = tempc; } void display () { fill (color); ellisse (X_Pos, Y_Pos, led_dia, led_dia); } }
I LED vengono caricati sullo schermo nello stesso ordine di quello del display. Ogni LED è separato da una distanza pari al diametro del LED, in questo modo possiamo facilmente distinguere quale LED è attualmente selezionato dall'utente. Come mostrato nel programma seguente creiamo un array in cui ogni elemento contiene le informazioni della posizione X, Y e il colore del LED.
void load_leds () { led_array = nuovo Led; int a = 1; for (int j = 0; j <= 7; j ++) { float y = height / 6 + j * (led_dia * 1.5); for (int i = 0; i <= 7; i ++) { float x = (width / 6) + i * (led_dia * 1.5); // riempire (255); // ellisse (x, y, led_dia, led_dia); led_array = nuovo Led (x, y, color (255,255,255)); a ++; } } }
Il passo principale del programma è verificare se l'utente ha premuto qualche LED e in caso affermativo dobbiamo cambiare il colore del LED e inviare il numero del LED tramite Bluetooth. Poiché ora possiamo indirizzare facilmente la posizione e il colore di ogni LED, possiamo farlo semplicemente confrontando i valori X, Y di dove l'utente ha premuto con il valore X, Y dei LED. Se i valori si fondono l'uno nell'altro, cambiamo lo stato del LED e inviamo anche il numero tramite Bluetooth come mostrato di seguito.
// controlla se il mouse sopra led // Se si invia il numero di led per (int i = 1; i <= 64; i ++) { if ((mouseX <(led_array.X_Pos + led_dia / 2)) && (mouseX> (led_array.X_Pos - led_dia / 2)) && (mouseY <(led_array.Y_Pos + led_dia / 2)) && (mouseY> (led_array.Y_Pos - led_dia / 2))) {led_array = new Led (led_array.X_Pos, led_array. Y_Pos, led_color); dati byte = {byte (i)}; bt.broadcast (dati); } }
Oltre a questo, il programma può anche resettare il LED completo spegnendoli tutti e inoltre puoi far diventare un LED rosso (ON) o bianco (OFF), quindi abbiamo anche un pulsante di attivazione / disattivazione per quello. Il pulsante di attivazione / disattivazione viene visualizzato e attende l'immissione. Se premuto, verrà eseguita la rispettiva azione. Il codice per fare lo stesso è mostrato sotto come funzione che viene chiamata all'interno del ciclo di disegno.
void load_buttons () { rectMode (CENTER); textAlign (CENTER, CENTER); noStroke (); riempimento (# 1BF2D4); rect (larghezza / 2-larghezza / 4, altezza / 1,3, larghezza / 4, altezza / 12); riempimento (0); testo ("Ripristina", larghezza / 2-larghezza / 4, altezza / 1,3); // pulsante 1 if (red == true) {fill (# 080F89); rect (larghezza / 2 + larghezza / 4, altezza / 1.3, larghezza / 4, altezza / 12); fill (255,0,0); testo ("ROSSO", larghezza / 2 + larghezza / 4, altezza / 1.3);} // pulsante 2 se (rosso == falso) {riempimento (# 080F89); rect (larghezza / 2 + larghezza / 4, altezza / 1.3, larghezza / 4, altezza / 12); riempimento (255); text ("WHITE", larghezza / 2 + larghezza / 4, altezza / 1.3);} // pulsante 2 } void read_buttons () { if (mousePressed && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = false; if (color_val == - 14945580) { byte data = {0}; bt.broadcast (dati); println ("RESET"); load_leds (); // carica tutti i led in posizione e colore } if (color_val == - 16248951) { byte data = {100}; bt.broadcast (dati); se (rosso == vero) rosso = falso; altrimenti se (rosso == falso) rosso = vero; println ("TOGGLE"); } color_val = 0; } }
Programmare il tuo Arduino:
Il programma Arduino completo per questo progetto di scheda wireless controllata da Bluetooth è fornito nella parte inferiore di questa schermata; puoi usarlo direttamente e caricarlo sulla tua bacheca. Le linee importanti del programma sono spiegate di seguito.
Il modulo Bluetooth è collegato ai pin 10 e 11, quindi dobbiamo utilizzare il software seriale per abilitare la comunicazione seriale su questi pin e quindi possiamo ascoltare i dati da questi pin. Otteniamo i dati ricevuti dal modulo Bluetooth e li salviamo in una variabile chiamata incoming . Se il valore di incoming è “0” spegneremo tutti i led utilizzando il codice sottostante
if (BT.available ()) { incoming = BT.read (); Serial.println (in arrivo); if (in arrivo == 0) m.clear (); // Cancella il display
Utilizzando i valori di incoming dobbiamo determinare quale LED l'utente ha premuto sul cellulare e meteo per accendere o spegnere quel LED. Quindi controlliamo se il valore è uguale a 100. Se il valore è 10, significa che l'utente ha chiesto di alternare il colore del LED. Quindi attiviamo la variabile rossa per sapere se il LED deve essere acceso o spento.
else if (incoming == 100) // Controlla se dobbiamo accendere o spegnere il LED { if (red == true) red = false; altrimenti se (rosso == falso) rosso = vero; Serial.print ("RED:"); Serial.println (rosso); }
Infine se il valore è maggiore di 65 significa che l'utente ha premuto un led. In base al numero da 1 a 64 dobbiamo determinare quale LED ha premuto l'utente. Per attivare o disattivare quel LED avremo bisogno del valore di Riga e Colonna di quel LED che viene calcolato e memorizzato rispettivamente sulle variabili X e Y e mostrato nel codice sottostante. Infine in base al valore della variabile rosso accendiamo o spegniamo il LED secondo la richiesta dell'utente
else if (incoming <= 64) {// Calcolare dove ON ro OFF il LED ginocchiera = true; Y = in entrata / 8; X = in arrivo - (Y * 8); if (in entrata% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); if (red == true) m.setDot ((X - 1), (Y), true); // LED acceso altrimenti se (rosso == false) m.setDot ((X - 1), (Y), false); // LED SPENTO }
Progettazione di circuiti e PCB utilizzando EasyEDA:
Per progettare questo display a matrice controllata Bluetooth, abbiamo scelto lo strumento EDA online chiamato EasyEDA. In precedenza ho usato EasyEDA molte volte e l'ho trovato molto comodo da usare poiché ha una buona raccolta di impronte ed è open-source. Dopo aver progettato il PCB, possiamo ordinare i campioni di PCB tramite i loro servizi di fabbricazione di PCB a basso costo. Offrono anche un servizio di approvvigionamento di componenti in cui hanno un ampio stock di componenti elettronici e gli utenti possono ordinare i componenti richiesti insieme all'ordine del PCB.
Durante la progettazione dei tuoi circuiti e PCB, puoi anche rendere pubblici i tuoi progetti di circuiti e PCB in modo che altri utenti possano copiarli o modificarli e possano trarre vantaggio dal tuo lavoro, abbiamo anche reso pubblici tutti i nostri layout di circuiti e PCB per questo circuito, controlla il link sottostante:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
È possibile visualizzare qualsiasi strato (Top, Bottom, Topsilk, Bottomsilk ecc.) Del PCB selezionando il layer dalla finestra "Layers".
Puoi anche visualizzare il PCB, come apparirà dopo la fabbricazione utilizzando il pulsante Photo View in EasyEDA:
Calcolo e ordinazione di campioni online:
Dopo aver completato la progettazione di questo PCB a matrice controllata Bluetooth, è possibile ordinare il PCB tramite JLCPCB.com. Per ordinare il PCB da JLCPCB, è necessario Gerber File. Per scaricare i file Gerber del tuo PCB, fai clic sul pulsante Fabrication Output nella pagina dell'editor EasyEDA, quindi scarica dalla pagina dell'ordine EasyEDA PCB.
Ora vai su JLCPCB.com e fai clic su Cita ora o sul pulsante, quindi puoi selezionare il numero di PCB che desideri ordinare, quanti strati di rame ti servono, lo spessore del PCB, il peso del rame e persino il colore del PCB, come l'istantanea mostrato di seguito:
Dopo aver selezionato tutte le opzioni, fai clic su "Salva nel carrello" e verrai portato alla pagina in cui puoi caricare il tuo file Gerber che abbiamo scaricato da EasyEDA. Carica il tuo file Gerber e fai clic su "Salva nel carrello". Infine, fai clic su Checkout Securely per completare l'ordine, quindi riceverai i tuoi PCB pochi giorni dopo. Stanno fabbricando il PCB a un prezzo molto basso che è di $ 2. Anche il loro tempo di costruzione è molto inferiore, ovvero 48 ore con consegna DHL di 3-5 giorni, in pratica riceverai i tuoi PCB entro una settimana dall'ordine.
Dopo pochi giorni dall'ordinazione di PCB, ho ricevuto i campioni di PCB in una bella confezione come mostrato nelle immagini sottostanti.
E dopo aver ottenuto questi pezzi ho saldato tutti i componenti richiesti sul PCB.
Nel mio PCB, ho commesso un errore grossolano selezionando l'impronta sbagliata per il modulo Display 8 * 8, quindi ho dovuto usare una scheda Perf per montare il display come mostrato nell'immagine. Ma ora l'impronta è aggiornata nel PCB ed è possibile ordinare il PCB corretto e montare il modulo display con facilità.
Funzionamento del display del cartello Bluetooth:
Una volta che sei pronto con l'hardware tramite l'acquisizione del PCB o la connessione sulla breadboard, utilizza il programma Arduino fornito alla fine della pagina e caricalo sulla tua scheda Arduino. Il file APK dell'applicazione Android è fornito anche sopra, usalo e installa l'applicazione sul tuo dispositivo Android preferito.
Alimentare l'hardware e cercare il nome del dispositivo HC-05 sul telefono per accoppiarlo. La chiave di accesso sarà 1234 per impostazione predefinita. Successivamente, apri l'applicazione che abbiamo appena installato. L'applicazione dovrebbe visualizzare " connesso a HC-05 " nella parte superiore dello schermo, quindi sarai in grado di toccare il LED sullo schermo e notare che lo stesso LED è acceso anche nella scheda.
Puoi anche spegnere tutti i LED premendo il pulsante Reset e decidere di accendere o spegnere un determinato LED premendo sul pulsante Toggle. Per impostazione predefinita, qualsiasi LED premuto sarà acceso. Il funzionamento completo del progetto si trova nel video sottostante. Se hai problemi a farlo funzionare usa la casella dei commenti qui sotto o scrivi sui nostri forum per ulteriore assistenza tecnica. Spero che tu abbia capito il tutorial e ti sia piaciuto realizzarlo.