Sommario:
- Forniture
- Passaggio 1: distruggi il mangiabatterie
- Passaggio 2: il codice nell'IDE Arduino
- Passaggio 3: metti tutto insieme
- Passaggio 4: batteria e interruttore
- Passaggio 5: metti la carrozzeria della tua auto sul telaio
Video: Auto Bluetooth RC con STM32F103C e L293D -- Economica: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Ho realizzato un'auto Arduino Bluetooth come quella qui raffigurata, di Ardumotive_com. Il problema che stavo riscontrando erano le batterie e il loro peso, nonché il loro costo. Da allora, i power bank economici per i telefoni cellulari sono diventati molto convenienti. Tutto quello che dovevo fare era ridurre il peso. Essendo che sono a buon mercato, sono passato al microcontrollore STM32F103C. Il microcontrollore STM32F103C può essere acquistato per meno di $ 2 ed è molto più piccolo di un Arduino. Ho modificato un po' la codifica in modo che funzioni anche con l'STM32F103C.
Forniture
- Un'auto telecomandata economica che mangia le batterie. Sì, proprio come quello utilizzato da Ardumotive_com. Spegnerai il sistema e utilizzerai invece un power bank del telefono. Se hai le risorse per costruire il tuo telaio, fallo. Sono andato al negozio di giocattoli in fondo alla strada e ho comprato un'auto a buon mercato per meno di 10 dollari. L'auto mangia le batterie e il telecomando mangia le batterie: perfetto per il miglioramento.
- Una banca di potere del telefono-- Sono super economici, ora. Allontanati dai power bank che hanno un pulsante di accensione sul lato. Non sarai in grado di seguire la tua auto e tenere premuto il pulsante. È sciocco.
- Un chip L293D: questo è il doppio ponte H che controllerà i motori elettrici.
- Un modulo Bluetooth HC-06
- Un interruttore: ho usato un semplice interruttore on/off.
- Un po 'di filo -- un cavo telefonico andrebbe bene, ma un calibro 20 a trefoli un po' più grande sarebbe meglio.
- Una Proto Board o un pezzo di plastica o cartone per montare la tua Blue Pill e L293D. Sono economico, quindi ho inventato un sistema leggermente diverso con cartone ondulato sottile, come da una scatola di lampadine.
- Due cavi di ricarica USB economici: possono essere acquistati da un Dollar Tree. Non usare il tuo bel cavo di programmazione. Uno sarà tagliato per l'interruttore on/off e l'altro caricherà la batteria.
Opzionale
- 4 LED --se vuoi fari e fanali posteriori.
- 4 resistori da 220 Ohm-- per i LED su un sistema 3.3v.
- Un piezo o un piccolo altoparlante per un corno.
Utensili
- Saldatore e saldatore
- Pistola per colla a caldo-- Mia figlia è una ninja della pistola per colla a caldo!
- Spelafili e cesoie
NOTA: se usi la tecnica del cartone che sto usando io invece di una scheda proto, avrai bisogno di un Dremel o di un piccolo trapano
Passaggio 1: distruggi il mangiabatterie
È ora di divertirsi a distruggere il mangiabatterie! Sì, GUT QUEL COSA! Sentiti orgoglioso di fare la tua parte nel rendere il mondo più verde-- OK, è una forzatura, ma comunque… Vai al telaio.
Sopra, è la stessa unità che ho realizzato nella versione Arduino. La versione Arduino utilizzava una batteria seria che rendeva l'auto più pesante. Quindi, l'ho riportato al telaio. Avevo aggiunto alcuni parafanghi da una bottiglia di plastica e colla a caldo, e ho personalizzato la carrozzeria. Più tardi sul corpo.
Una volta che hai il telaio con i motori e lo sterzo scoperti, trova quale lato dei terminali del motore sono. Utilizzare una batteria o un caricabatterie da 5 V per testare il motore.
Sul motore dello sterzo, quando le ruote girano a destra, etichettare il filo positivo della batteria "3" e il filo negativo "6".
Sul motore di azionamento, quando le ruote girano in avanti, etichettare il filo positivo della batteria "14" e il filo negativo "11".
Passaggio 2: il codice nell'IDE Arduino
Potrebbe essere meglio se prototipi l'elettronica della tua auto prima su una breadboard.
OK, questa è una delle parti difficili. La "Pillola Blu" non può essere programmata tramite la porta USB. Non ho trovato una spiegazione di programmazione più semplice della "Pillola Blu" rispetto al video Youtube di Joop Brokking. Spiega tutto ciò che devi sapere, inclusa la libreria STMduino di Roger Clarke. C'è un modo per installare un bootloader in modo da poter utilizzare l'USB per programmare la "Pillola Blu", ma devi comunque programmare il bootloader tramite il bus seriale.
Sfortunatamente, il bus seriale viene utilizzato anche dall'adattatore Bluetooth. Il programma deve essere installato tramite i pin Serial Bus, PA9 e PA10, prima tramite un FTDI, quindi è possibile verificare tutte le impostazioni con l'adattatore Bluetooth.
Usa una breadboard e disponi tutto sulla breadboard proprio come lo schizzo fritzing sopra. Scollegare le linee seriali TX e RX dell'adattatore Bluetooth sui pin PA9 e PA10 dell'STM32F103C. Collega il tuo FTDI e programma. Assicurati che le linee del Serial Bus siano incrociate, RX in Tx e Tx in RX. Uno riceve e l'altro dà.
Una volta caricato il programma, puoi aprire la console seriale e inviare
per vedere se le luci funzionano. Se le luci funzionano, puoi inviare
di nuovo per spegnerli.
Metti la tua auto su un blocco per sollevare le gomme e inviare
Le ruote dovrebbero andare avanti. In caso contrario, invertire i fili. Ricorda come abbiamo etichettato i fili in precedenza. I pin corrispondenti dell'L293D dovrebbero essere abbinati.
Per fermarti, invia
Diamo un'occhiata ai cambiamenti significativi nel codice.
Nella sezione commentata, all'inizio, dovresti vedere l'originatore dei file, da Ardumotive. I prossimi commenti spiegano dove ho cambiato un po' per riflettere l'STM32F103C.
/* * Creato da Vasilakis Michalis // 12-12-2014 ver.2
* Progetto: Control RC Car via Bluetooth con smartphone Android * Maggiori informazioni su https://www.ardumotive.com * * Modificato questo codice per adattarlo a STM32F103 di Jim Garbe, [email protected] * Maggiori informazioni su https://github.com/jgarbe/RCCAR_STM32F103C * Si noti che i valori a 8 bit 0-255 sono stati modificati in * riflettono i valori a 16 bit 0-65535 */ /******************* ********* * Sull'STM32, la scrittura analogica funziona ancora a 8 bit 255, * Ma puoi ottenere la piena funzione della gamma PWM, 0-65535, dichiarando il Pin come PWM *AND usando pwmWrite() invece di analogWrite() ****************************/
In particolare, i pin non hanno lo stesso nome tra Arduino e STM32F103C. Dichiariamo i pin usando il prossimo set di linee. C'è un pin rimasto che è dichiarato in basso nel loop. Sulla riga 197, PA5 viene utilizzato per leggere il livello della batteria.
////Connessione L293
const int motoreA1 = PB6; // al Pin 15 di L293 const int motorA2 = PB7; // al Pin 10 di L293 const int motorB1 = PB8; // al Pin 7 di L293 const int motorB2 = PB9; // al Pin 2 di L293 //Led collegati al Pin A12 di STM32F103C const int luci = PA12; //Buzzer / Altoparlante per Arduino UNO Pin A8 const int buzzer = PA8; //Bluetooth (HC-06 JY-MCU) State pin sul pin A11 di STM32F103C const int BTState = PA11;
Inoltre, utilizzando analogWrite(); funzionerà ancora sul "BluePill". Ma è meglio dichiarare i pin PWM usando, pinMode(, PWM);
Quindi usa
pwmWrite(,);
NOTA: 8 bit = 0-255, 16 bit = 0-65535
Le righe 32-44 sono modifiche apportate alla batteria. Se hai intenzione di utilizzare il controllo del livello della batteria, devi utilizzare un divisore di voto per la batteria che hai. Questa parte non si riflette nello schizzo di Fritzing. Ci sono molte spiegazioni su come creare un partitore di tensione su Youtube. Poiché l'STM32F103C è un chip da 3,3 V, ho corretto il codice qui per utilizzare fisicamente un partitore di tensione. L'Arduino può tollerare alcune tensioni più elevate attraverso gli ADC forniti, ma la "Pillola Blu" non può.
/* Verrà verificato il livello della batteria sul Pin PA5
* Modificata la riga successiva per l'STM32F103C perché l'ADC non può gestire * nulla oltre 3.3v * L'ho appena commentato * Un partitore di tensione, utilizzando due resistori deve essere calcolato e utilizzato * per misurare l'ingresso ADC più in basso nel codice * esempio: * GND---resistore 2K----resistore 1K ------5v * | * | * 3.3v */ // const float maxBattery = 3.3; // Modifica il valore al massimo livello di tensione della batteria!
Passaggio 3: metti tutto insieme
Di solito uso una scheda proto per posizionare i pezzi e saldare tra i fori per collegare tutto. A volte "saldare il deadbug" tutto insieme per più di un batuffolo di Frankenstein / 3D di aspetto di saldatura.
Ho scelto questo metodo ibrido per rendere il dispositivo pulito e leggero e, naturalmente, ECONOMICO!
Questo metodo consente anche l'etichettatura. Una delle parti peggiori della saldatura deadbug è quando guardi un chip IC dal basso e dimentichi quale pin è cosa.
Le immagini sopra sono un po' auto esplicative. Immagino che la parte difficile sia trovare il cartone abbastanza sottile da increspare ed essere rigido allo stesso tempo. Puoi usare anche la plastica, ma segnarla è un po' più difficile. Dopo aver premuto i perni sulla lavagna e segnato le fossette, uso un Dremel per praticare ogni foro dei perni.
Se non l'hai già notato, ho solo le luci come presa accessoria sulla scheda. Non sto usando l'indicatore della batteria, né il cicalino. È perché il mio progetto ha uno scopo diverso. Sarà autoesplicativo una volta che vedrai il risultato finale con la carrozzeria. …ma questo porta un'altra idea, ci sono molti pin inutilizzati su questo progetto. Forse un apri bagagliaio, un apriporta per auto, un detonatore di petardi, … …o anche un mini-Galvani-Edison Luminifero Aether Disturbance Generator!
Una volta completata tutta la saldatura, prova prima di incollare a caldo i giunti per alleviare lo stress sui fili.
Ho usato la stessa app Android di Ardumotive, può essere trovata su
Dopo aver testato le funzioni dell'auto, è il momento di posizionare la batteria e l'interruttore. Vai al passaggio successivo.
Passaggio 4: batteria e interruttore
Ok, è qui che non puoi seguire esattamente il mio piano.
In qualche modo, dovrai trovare un buon posto per mettere la batteria sull'auto, un modo per caricare il banco batterie da un dongle o un modo per caricare direttamente la spina della batteria. Nel video introduttivo, ho semplicemente collegato la batteria e il microcontrollore al telaio e l'ho eseguito. Quando volevo fermarmi, ho semplicemente staccato la batteria. Il problema con questa configurazione è la deperibilità delle spine del cavo USB e/o del power bank. È meglio avere un interruttore.
Dovrai anche trovare un buon posto per l'interruttore in cui il corpo dell'auto consentirà ancora l'accesso. Ho usato un semplice interruttore a pulsante (non un interruttore momentaneo) e l'ho montato sul fondo del telaio dove si trova il vano batteria originale.
Dovrai tagliare a metà un cavo USB e mettere l'interruttore tra la batteria e la porta USB STM32F103C. Sì, puoi alimentare l'STM32F103C con la porta USB. Non puoi semplicemente programmarlo tramite la porta USB. Ho usato di nuovo un Dremel per praticare alcuni fori per i perni di saldatura dell'interruttore. Una volta saldato, ho usato la colla a caldo, sempre per rinforzare le connessioni.
Passaggio 5: metti la carrozzeria della tua auto sul telaio
OK, ho detto che ho riproposto la versione originale di Arduino di questa macchina. Il vero prodotto finale, quindi, era un oggetto di scena per il balletto "Lo Schiaccianoci" eseguito dalla nostra compagnia di balletto locale. Nella scena iniziale, un topo ha attraversato il palco con la magia accidentale di Drosselmeyer. Ho usato un topo IKEA e l'ho montato sopra il telaio, Arduino e una batteria molto più grande. L'elica era pesante e non ricaricabile. Questo è molto meglio!
Divertiti con la tua macchina. Ricorda che ci sono molti più pin sull'STM32F103C che possono essere utilizzati. Forse una puzzola simile a quella di "Toy Story 4".