Sommario:

Robot Car con Bluetooth, fotocamera e app MIT Inventor2: 12 passaggi (con immagini)
Robot Car con Bluetooth, fotocamera e app MIT Inventor2: 12 passaggi (con immagini)

Video: Robot Car con Bluetooth, fotocamera e app MIT Inventor2: 12 passaggi (con immagini)

Video: Robot Car con Bluetooth, fotocamera e app MIT Inventor2: 12 passaggi (con immagini)
Video: Robot controllato via BLE da App con giroscopio - 1/2 - Video 283 2024, Dicembre
Anonim
Image
Image
Parti e software
Parti e software

Hai mai desiderato costruire la tua auto robot? Bene… questa è la tua occasione!!

In questo Instructable ti illustrerò come realizzare un'auto robot controllata tramite Bluetooth e MIT App Inventor2. Tieni presente che sono un principiante e che questo è il mio primo instuctable, quindi per favore sii gentile nei tuoi commenti.

Ci sono molte istruzioni là fuori, ma in questa ho cercato di combinare molte funzionalità come: streaming della fotocamera, prevenzione degli ostacoli, sensore di portata a ultrasuoni, scanner Larson (con charlieplexing) e monitoraggio della batteria su un'app Android!!

Quindi iniziamo e incontriamo Frankie (usa idee da molti luoghi … quindi Robo Frankenstein)

Passaggio 1: parti e software

Parti e software
Parti e software
Parti e software
Parti e software

Qui, nella mia città natale, è difficile ottenere tutte le parti, quindi sono riuscito a ottenerne la maggior parte da www.aliexpress.com

Stimo che il progetto possa essere realizzato per USD 25 - 30 senza considerare il vecchio cellulare.

  • Telaio dell'auto: 3 ruote, 2 motori 6V (USD 9)
  • Arduino Nano (2 USD)
  • Bluetooth HC-05 (da 3 a 4) USD
  • L293D driver del motore per azionare i motori delle ruote (1,50 USD per un lotto di 5 pezzi)
  • Vecchio cellulare con fotocamera e Wi-Fi
  • Sensore a ultrasuoni HC-SR04 per la misurazione su un oggetto vicino (USD 1)
  • 6 LED per scanner Larson
  • ATtiny85 per scanner Larson (1 USD)
  • Tagliere (1 USD)
  • fili
  • Resistenza da 100K Ohm (4)
  • Resistenza da 1K Ohm (2)
  • Resistenza da 2K Ohm (1)
  • Resistenza da 270 Ohm (3)
  • Cicalino

Software:

  • Arduino IDE
  • Webcam IP (per vecchi cellulari Android)
  • MIT App Inventor2: questa app è fantastica ma funziona solo per il sistema operativo Android (niente iPhone… mi dispiace!)

Passaggio 2: processo di costruzione

Processo di costruzione
Processo di costruzione
Processo di costruzione
Processo di costruzione
Processo di costruzione
Processo di costruzione
Processo di costruzione
Processo di costruzione

Il telaio dell'auto è molto facile da montare; ha 2 motori 6V che alimentano le ruote posteriori e un pacco batterie da 4.

L'auto Robot è controllata tramite Bluetooth e Wi-Fi. Il Bluetooth controlla le comunicazioni seriali tra l'Auto e l'App inventor2 del MIT e il Wi-Fi viene utilizzato per comunicare con la telecamera (vecchio cellulare) installata davanti all'auto.

Per questo progetto, ho utilizzato due set di batterie: l'arduino è alimentato da una batteria da 9 V e i motori dell'auto da 6 V (quattro batterie AA da 1,5 V).

Arduino Nano è il cervello di questo progetto che controlla l'auto, il cicalino, il sensore di portata ad ultrasuoni HC-SR04, il Bluetooth HC-05, lo scanner Larson (ATtiny85) e monitora le batterie. La batteria da 9 V va a Vin (pin 30) e il pin 27 di Arduino fornisce alimentazione regolata a 5 V alla breadboard. È necessario collegare insieme tutti i motivi di tutti i circuiti integrati e le batterie.

In allegato, lo schema circuitale lo ha realizzato in Excel (scusate… la prossima volta proverò Fritzing). Ho collegato tutto usando breadboard e connettori maschio-maschio, il mio sembra un nido di topi.

Passaggio 3: driver del motore L293D

Driver del motore L293D
Driver del motore L293D
Driver del motore L293D
Driver del motore L293D

L293D è un driver half-H quadruplo ad alta corrente progettato per fornire correnti di pilotaggio bidirezionali fino a 600 mA a tensioni da 4,5 V a 36 V. È usato per guidare le ruote dell'auto.

È alimentato da un pacco batterie da 6V (quattro AA da 1,5V) per i motori e utilizza 5V per la logica che proviene dai 5V regolati (pin 27) in Arduino Nano. I collegamenti sono mostrati nello schema allegato.

Non c'era bisogno di installarlo in un dissipatore di calore.

Passaggio 4: Bluetooth HC-05

HC-05 Bluetooth
HC-05 Bluetooth

HC-05 Bluetooth è alimentato da 5V (pin 27 di arduino), ma è importante capire che il livello logico è 3,3V, cioè comunicazioni (Tx e Rx) con 3,3V. Ecco perché Rx deve essere configurato con un massimo di 3,3V che può essere ottenuto con un convertitore traslatore di livello o, come in questo caso, con un partitore di tensione utilizzando resistori da 1K e 2K come si vede nel circuito.

Passaggio 5: monitoraggio della batteria

Per monitorare i livelli della batteria ho impostato dei divisori di tensione in modo da portare i livelli di tensione sotto i 5V (range massimo di Arduino). Il partitore di tensione riduce la tensione misurata all'interno della gamma degli ingressi analogici Arduino.

Vengono utilizzati gli ingressi analogici A4 e A6 e vengono utilizzate resistenze alte (100K ohm) per non scaricare troppo le batterie nel processo di misurazione. Dobbiamo scendere a compromessi, se i resistori sono troppo bassi (10K ohm), meno effetto di caricamento, la lettura della tensione è più accurata, ma più assorbimento di corrente; se sono troppo alti (1M ohm), maggiore effetto di caricamento, la lettura della tensione è meno accurata, ma il consumo di corrente è inferiore.

Il monitoraggio della batteria viene effettuato ogni 10 secondi e visualizzato direttamente sul cellulare del controller.

Sono sicuro che ci sia molto spazio per miglioramenti in questa parte poiché sto leggendo da due pin analogici e il MUX interno sta scambiando tra loro. Non sto facendo la media di più misurazioni e forse è quello che dovrei fare.

Mi spiego la seguente formula:

//Leggi la tensione dal pin analogico A4 e fai la calibrazione per Arduino:

tensione1 = (analogRead(A4)*5.0/1024.0)*2.0; //8.0V

La scheda Arduino nano contiene un convertitore analogico-digitale a 8 canali e 10 bit. La funzione analogRead() restituisce un numero compreso tra 0 e 1023 che è proporzionale alla quantità di tensione applicata al pin. Ciò produce una risoluzione tra le letture di: 5 volt / 1024 unità o 0,0049 volt (4,9 mV) per unità.

Il partitore di tensione dimezza la tensione e, per ottenere la vera tensione, è necessario moltiplicare per 2!!

IMPORTANTE: sono sicuro che esiste un modo più efficiente per alimentare un arduino rispetto al modo in cui lo sto facendo io!! Da principiante ho imparato a mie spese. Il pin Arduino Vin utilizza un regolatore di tensione lineare, il che significa che, con una batteria da 9 V, brucerai una grossa fetta della potenza nel regolatore lineare stesso! Non bene. L'ho fatto in questo modo perché era veloce e solo perché non lo conoscevo bene … ma assicurati che nella versione 2.0 di Robo Frankie lo farò sicuramente in modo diverso.

Sto pensando (ad alta voce) che un alimentatore a commutazione DC DC Step up e una batteria ricaricabile agli ioni di litio potrebbero essere un modo migliore. Il tuo gentile suggerimento sarà più che benvenuto…

Passaggio 6: sensore di portata a ultrasuoni HC-SR04

Sensore di portata ad ultrasuoni HC-SR04
Sensore di portata ad ultrasuoni HC-SR04

HC-SR04 è un sensore di portata ad ultrasuoni. Questo sensore fornisce misurazioni da 2 cm a 400 cm con una precisione di portata fino a 3 mm. In questo progetto, viene utilizzato per evitare l'ostacolo quando raggiunge i 20 cm o meno e anche per misurare la distanza da qualsiasi oggetto, che viene rispedito al telefono cellulare.

C'è un pulsante sullo schermo del tuo cellulare che deve essere cliccato per richiedere la distanza da un oggetto vicino.

Passaggio 7: scanner Larson

Scanner Larson
Scanner Larson
Scanner Larson
Scanner Larson
Scanner Larson
Scanner Larson

Volevo includere qualcosa di divertente, quindi ho incluso lo scanner Larson che assomiglia a K. I. T. T. da Cavaliere Cavaliere.

Per lo scanner Larson ho usato ATtiny85 con charlieplexing. Charlieplexing è una tecnica per pilotare un display multiplexato in cui vengono utilizzati relativamente pochi pin I/O su un microcontrollore per pilotare una serie di LED. Il metodo utilizza le capacità logiche a tre stati dei microcontrollori per ottenere efficienza rispetto al multiplexing tradizionale.

In questo caso sto usando 3 pin di ATtiny85 per accendere 6 LED!!

Potresti accendere i LED "X" con N pin. Usa la seguente formula per ricavare quanti LED puoi pilotare:

X= N(N-1) LED con N pin:

3 pin: 6 LED;

4 pin: 12 LED;

5 pin: 20 LED…si rende l'idea;-)

La corrente scorre dal positivo (anodo) al negativo (catodo). La punta della freccia è il catodo.

È importante notare che il pin 1 (nel codice IDE Arduino) si riferisce al pin fisico 6 in ATtiny85 (fare riferimento al pinout allegato).

In allegato trovi il codice che deve essere caricato su ATtiny85 che controlla lo scanner Larson. Non sto descrivendo come caricare un codice in ATtiny85 poiché ci sono molti istruttori che lo fanno come questo.

Passaggio 8: codice

Codice
Codice

Allego il codice che deve essere caricato su ATtiny85 che controlla lo scanner Larson e il codice per Arduino nano.

Per quanto riguarda l'Arduino nano, ho usato parte dei codici di altri istruibili (qui) e ho apportato modifiche per soddisfare le mie esigenze. Ho incluso un diagramma di flusso (anche in parole per un'immagine più chiara) del codice per capire meglio come funziona Switch - Case.

Importante: per caricare il codice CarBluetooth in Arduino nano, devi scollegare Rx e Tx dal modulo Bluetooth HC-05!

Passaggio 9: fotocamera

Telecamera
Telecamera
Telecamera
Telecamera

L'app IP Webcam deve essere scaricata dal Play Store e installata nel tuo vecchio cellulare. Controlla le preferenze video, regola la risoluzione di conseguenza e infine vai all'ultimo comando "Avvia server" per avviare la trasmissione. Non dimenticare di trasformare il Wi-Fi nel cellulare!!

Passaggio 10: MIT App Inventor2

MIT App Inventor2
MIT App Inventor2

MIT App inventor2 è uno strumento basato su cloud che aiuta a creare app nel browser web. Questa app (solo per cellulari basati su Android) può quindi essere caricata sul tuo cellulare e controllare la tua auto robot.

Allego codice.apk e.aia così puoi vedere cosa ho fatto e puoi modificarlo come desideri. Ho utilizzato un codice da Internet (App MIT) e ho apportato le mie modifiche. Questo codice controlla il movimento dell'auto robot, riceve il segnale dal sensore a ultrasuoni, accende le luci e suona il cicalino. Riceve anche il segnale dalle batterie che ci fa conoscere il livello di tensione.

Con questo codice potremo ricevere due diversi segnali dall'auto: 1) distanza da un oggetto vicino e 2) tensione dalle batterie del motore e dell'arduino.

Per identificare la stringa seriale ricevuta ho inserito nel codice di Arduino un flag che specifica il tipo di stringa inviata. Se Arduino invia la distanza misurata dal sensore a ultrasuoni, invia un carattere "A" davanti alla stringa. Ogni volta che Arduino invia i livelli della batteria, invia un flag con un carattere "B". Nel codice inventors2 dell'app MIT ho analizzato la stringa seriale proveniente da Arduino e verificato la presenza di questi flag. Come ho detto, sono un principiante e sono sicuro che ci sono modi più efficienti per farlo e spero che qualcuno possa illuminarmi in un modo migliore.

Invia Arduino_Bluetooth_Car.apk al tuo cellulare (via email o Google Drive) e installalo.

Passaggio 11: collega il cellulare alla tua auto RC

Collega il tuo cellulare alla tua auto RC
Collega il tuo cellulare alla tua auto RC
Collega il tuo cellulare alla tua auto RC
Collega il tuo cellulare alla tua auto RC

Prima di tutto, attiva il wi-fi nel vecchio cellulare (quello del robot RC).

Nel tuo cellulare controller accendi il Wi-Fi, il Bluetooth e apri Arduino_Bluetooth_Car.apk che hai appena installato. Alla fine dello schermo (scorri verso il basso se non riesci a vederlo) vedrai due pulsanti: Dispositivi e CONNETTI. Fai clic su Dispositivi e seleziona il Bluetooth dalla tua RC Car (dovrebbe essere qualcosa di HC 05), quindi fai clic su CONNETTI e dovresti vedere il messaggio CONNESSO nella parte inferiore sinistra dello schermo. La prima volta ti verrà chiesta una password (inserisci 0000 o 1234).

C'è una casella in cui devi digitare l'indirizzo IP del tuo vecchio cellulare (cellulare che è nella tua RC Car), nel mio caso è

Questo numero IP può essere rilevato nel router Wi-Fi. Devi entrare nella configurazione del tuo router, selezionare Elenco dispositivi (o qualcosa del genere a seconda della marca del tuo router) e dovresti essere in grado di vedere il tuo vecchio dispositivo cellulare, fare clic su di esso e inserire questo numero IP in questa casella.

Quindi seleziona FOTOCAMERA e dovresti iniziare a visualizzare lo streaming della videocamera dalla tua RC Car.

Passaggio 12: hai finito

Hai fatto!
Hai fatto!

Hai fatto! Inizia a giocarci

Modifiche future: cambierò la batteria da 9 V con batterie agli ioni di litio per ricaricarle e utilizzare un regolatore di tensione step-up DC-DC, inoltre voglio migliorare il monitoraggio della batteria includendo il livellamento (media) delle letture analogiche. Non ho intenzione di includere l'A. I. ancora …;-)

Ho partecipato al mio primo concorso istruttivo… quindi per favore vota;-)

Consigliato: