Sommario:
- Passaggio 1: alcune informazioni su App.remoteme.org
- Passaggio 2: cosa è necessario:
- Passaggio 3: connessioni
- Passaggio 4: PCB
- Passaggio 5: uscite PCB
- Passaggio 6: come funzionerà?
- Passaggio 7: assemblaggio dell'auto - Ruote
- Passaggio 8: opzione di alimentazione (batterie di ricarica AA) 1/2
- Passaggio 9: alimentazione (batterie Li-Po da 7,2 V) Opzione 2/2
- Passaggio 10: saldatura
- Passaggio 11: fotocamera
- Passaggio 12: mettere insieme le parti delle auto
- Passaggio 13: configurazione di App.remoteme.org
- Passaggio 14: configurazione RasbperryPi
- Passaggio 15: verifica delle connessioni
- Passaggio 16: aggiunta di script Python
- Passaggio 17: verificare se lo script Python è stato aggiunto con successo
- Passaggio 18: aggiunta di una pagina Web all'auto di controllo
- Passaggio 19: configurare il dispositivo della pagina Web per controllare l'auto 1/2
- Passaggio 20: configurare il dispositivo della pagina Web per controllare l'auto 2/2
- Passaggio 21: aprire il centro di controllo dell'auto
- Passaggio 22: configurazione della telecamera 1/2
- Passaggio 23: configurazione della telecamera 2/2
- Passaggio 24: guida 1/2
- Passaggio 25: guida in 2/2
- Passaggio 26: come funziona?
- Passaggio 27: tablet, volante mobile
- Passaggio 28: aprire la pagina sul cellulare
- Passaggio 29: aggiunta di Turn Server
- Passaggio 30: guida mobile
- Passo 31: Riepilogo
Video: Auto RasbperryPi con fotocamera FPV. Controllo tramite browser Web: 31 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Costruiremo un'auto a 4 ruote motrici - lo sterzo sarà simile a quello di un carro armato - per girare un lato delle ruote ruoterà con velocità diversa rispetto all'altro. All'auto verrà posizionata la telecamera su un supporto speciale dove potremo cambiare la posizione della telecamera. Il robot sarà controllato dal browser web (chrome o firefox sul desktop o firefox sul cellulare), sul browser, otterremo il video della videocamera (con solo 200 ms di latenza) e dal browser possiamo controllare i movimenti dell'auto e posizione della telecamera. Per rendere la comunicazione più facile ho usato il sistema app.remoteme.org, c'è anche un controllo fuori dagli schemi di questo tipo di auto, quindi non devi scrivere il tuo codice, ma ovviamente puoi modificare gli script add nuove possibilità ecc.
Prima di collegare l'alimentazione al PCB, ricontrolla tutte le connessioni
Passaggio 1: alcune informazioni su App.remoteme.org
Il sistema ha tre parti
- applicazione web - quando ospiti le tue pagine web di controllo e collega tutte le comunicazioni
- programma rasbperryPi - programma che invia video, gestisce i tuoi script Python
- librerie dove trovi definizioni di classi e funzioni
Remoteme.org è un sistema veloce Collega tutti i tuoi dispositivi insieme, puoi ospitare lì le tue pagine web, vedere i tuoi dispositivi collegati. Il sistema Remoteme.org è stato creato per aiutarti a iniziare a realizzare i tuoi progetti, senza preoccuparti delle comunicazioni del protocollo, l'idea principale è inviare messaggi binari tra vari dispositivi come pagine web, RasbeprryPI, arduino e script.
D'altra parte Remoteme.org ti dà il pieno controllo dei tuoi file, puoi facilmente modificarlo scrivendo le tue funzionalità
In questo tutorial ti mostrerò come realizzare un fantastico progetto quasi senza scrivere alcun codice.
Alla fine di questo tutorial ho messo dei link utili che ti aiuteranno a capire il sistema remoteme.org.
Passaggio 2: cosa è necessario:
- Lampone PI Zero W
- Fotocamera dedicata
- Adafruit Driver PWM/Servo a 16 canali a 12 bit - Interfaccia I2C - PCA9685 o suo clone
- Due servomeccanismi compatibili con il supporto della fotocamera
- Supporto per fotocamera
- Batterie - Nel tutorial due possibilità di connessione
- H bridge TB6612FNG, per controllare la velocità delle ruote
- File PCB eagle È facile renderlo metodo di trasferimento termicoDC-DC
- Modulo convertitore step-down DC
- Custodia per robot
Passaggio 3: connessioni
Meccanismo di controllo del servo Raspberry pi tramite il modulo PWM e la velocità del motore tramite il ponte H che è collegato ai pin RasbperryPi, l'ingresso PWM al ponte H è generato dallo stesso modulo che ho usato per i servi (le parti che menziono sopra non sono necessari convertitori logici)
Passaggio 4: PCB
Puoi scaricare i file PCB eagle da qui I percorsi sono grassi, quindi è facile farlo con il metodo di trasferimento termico
Passaggio 5: uscite PCB
- Ingresso PWM per motori di azionamento Dovrebbe essere collegato al 15° e 16° pin del modulo PWM (controllare il rettangolo verde nell'immagine del modulo PWM)
- Ingresso di alimentazione per i motori di azionamento (controlla con quale tensione massima possono funzionare i tuoi motori)
- Potenza per RasbperryPi e modulo PWM - devono essere esattamente
- Uscite motore di azionamento (ci sono due uscite perché accoppieremo i motori di azionamento)
- Potenza dei servomeccanismi - anche tu devi controllare quale tensione è buona per loro
- Ponticellare la sua potenza attuale dal quinto ingresso alimenterà anche i motori, quindi non è necessario collegare nulla all'ingresso 2
- Ponticello se presente RasbperryPi sarà alimentato dal 3° ingresso - prima di mettere il ponticello qui controlla se le connessioni sono OK - Non vuoi bruciare il tuo RPi
- Saldiamo qui i cavi poiché non abbiamo bisogno di convertitori logici
Passaggio 6: come funzionerà?
Su RasbperryPi c'è uno script python che usa due librerie
- importa RPi. GPIO come GPIO - per i pin 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (notazione BCM) che sono collegati al ponte H
- import Adafruit_PCA9685 per il modulo PWM
I pin Rpi sono collegati come segue 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) e modalità di controllo del ponte H (avanti, indietro, stop, breve pausa). Il ponte H necessita anche di due segnali PWM in modo da poter controllare la velocità o la rotazione del motore. Poiché nel progetto abbiamo già un controller PWM (usato per servo) lo useremo anche per generare PWM per il ponte H.
Il modulo PWM utilizza il protocollo di comunicazione I2C. Ho usato il lavoro fuori dagli schemi Adafruit_PCA9685. biblioteca
Passaggio 7: assemblaggio dell'auto - Ruote
Inizieremo dal collegare i motori di azionamento alla custodia dell'auto. I motori lato sinistro/lato si collegano insieme, ed entrambi si accoppiano, si collegano a un cavo di alimentazione che in seguito verrà collegato al PCB. Nota importante durante il collegamento dei motori, le ruote su ciascun lato devono ruotare nella stessa direzione.
Passaggio 8: opzione di alimentazione (batterie di ricarica AA) 1/2
Scriverò due possibilità di alimentazione. La prima macchina è da batterie ricaricabili 10xAA Nell'ultima immagine ho disegnato da ponticelli di colore rosso che devono essere messi.
Passaggio 9: alimentazione (batterie Li-Po da 7,2 V) Opzione 2/2
E la seconda opzione è la batteria LI-PO 7.2. In questo caso abbiamo ottenuto 3 tensioni – 5v per Rpi e modulo, 6V per i servi e direttamente dalle batterie 7,2 volt per i motori di azionamento. Ho dovuto usare due moduli step down
L'opzione 2 con LI-PO è migliore:
- Le batterie hanno una capacità maggiore: l'auto guiderà più a lungo
- Maggiore tensione per i motori di azionamento: l'auto guiderà più velocemente
- Meno probabilità che dopo che i motori di azionamento iniziano a localizzarsi, potremmo avere un'enorme caduta di tensione e il riavvio dell'RPI.
Passaggio 10: saldatura
Ho messo al PCB alcuni distanziatori per il modulo PWM. Non c'è niente da scrivere, guarda le immagini come saldare tutto insieme
Passaggio 11: fotocamera
colleghiamo la telecamera, qui è scritto come centrare i servomeccanismi prima di montarli nel supporto della telecamera, ma il modo più breve è quello di controllare delicatamente manualmente la posizione di rotazione massima e impostare i servi in posizione centrale. Questo servomeccanismo centrato lo mettiamo nel supporto della fotocamera in posizione centrale (la fotocamera punta in avanti come nella foto)
Passaggio 12: mettere insieme le parti delle auto
Per PCB ho realizzato un tavolino in plexiglass
Passaggio 13: configurazione di App.remoteme.org
Ho usato il sistema gratuito app.remoteme.org che ti aiuta a creare connessioni e ha già degli script di cui abbiamo bisogno
In questo tutorial, mostrerò solo passo dopo passo cosa dovrebbe essere fatto per fare la guida in auto (qui troverai maggiori dettagli)
- Registrati su https://app.remoteme.org dopo la registrazione Sarai automaticamente registrato
- apri la scheda Token a sinistra, quindi fai clic su "nuovo token" fornisci un nome e fai clic su OK, abbiamo appena creato un nuovo token (immagine sullo schermo)
- in questo esempio, il valore del token è: ~1_&p@+BNnZ@A+x8 (il tuo sarà diverso;))
Passaggio 14: configurazione RasbperryPi
alla console putty (qui come impostare il nostro RPi per attivare la comunicazione I2c della fotocamera)
git clone git://github.com/remoteme/remoteme.git
telecomando del cd
python3.5 install.py
- L'installatore ci farà alcune domande per tutti noi rispondiamo [Sì] e confermeremo con [invio]
- quando l'installazione richiederà il token, incolliamo (shift+insert) il token copiato dall'applicazione e Invio
- il nome per esempio Rpi
- ID dispositivo 1 Invio
- dopo l'installazione: esegui il programma
./runme.sh
Passaggio 15: verifica delle connessioni
Torniamo a
Nella scheda dei dispositivi vedremo il nostro RPi connesso (l'icona del collegamento verde significa che RPi è connesso in questo momento)
Passaggio 16: aggiunta di script Python
Ora aggiungeremo lo script Python, è già presente nei modelli, quindi non dobbiamo programmare nulla.
Nella scheda dispositivi apri il menu RasbperryPi e scegli "Aggiungi script esterno".
Quando viene visualizzata una nuova finestra, fornire informazioni come nell'immagine sopra
Non dimenticare di scegliere il modello "car4wd". Dopo questi passaggi, remoteme.org aggiungerà lo script python al nostro RasbperryPi e lo riavvierà
Passaggio 17: verificare se lo script Python è stato aggiunto con successo
Nella scheda dispositivi dovrebbe essere aggiunto un nuovo dispositivo script python e il suo deviceId è 2. In questa pagina web ID dispositivo invierà messaggi per controllare l'auto
Passaggio 18: aggiunta di una pagina Web all'auto di controllo
nella scheda dispositivi fare clic su "Nuovo" e poi su "Pagina web". Aggiungiamo solo un altro dispositivo: la pagina web la useremo per controllare la nostra auto. E poiché abbiamo utilizzato il modello "car4wdDesktop" nella pagina Web, i file sono già quasi pronti per l'uso
Passaggio 19: configurare il dispositivo della pagina Web per controllare l'auto 1/2
Espandi la pagina Web nella scheda del dispositivo e fai clic su index.html quindi su Apri
Passaggio 20: configurare il dispositivo della pagina Web per controllare l'auto 2/2
La finestra appare quindi dobbiamo fornire deviceId del nostro script python al nostro case deviceId is 2. Cambiamo il posto mostrato nell'immagine
Passaggio 21: aprire il centro di controllo dell'auto
Ora è il momento di aprire la nostra pagina e vedere come funziona. Nella scheda del dispositivo fai clic su index.html e quindi su "Apri in una nuova scheda" Per ottenere l'anteprima del video Devi utilizzare il browser Chrome o Firefox altri browser non supportano completamente webRTC
Passaggio 22: configurazione della telecamera 1/2
Quando spostiamo il mouse nell'area video, la telecamera dovrebbe cambiare posizione e dovrebbe funzionare esattamente come nei giochi FPS. Probabilmente non si muoverà correttamente
Passaggio 23: configurazione della telecamera 2/2
Apri script.js (scheda dispositivi espandi la pagina web, quindi fai clic su script.js quindi apri) e trova il posto che ho mostrato sullo schermo
nel mio caso la posizione centrale è 560 e 430 e la gamma di movimenti è per entrambi gli assi 200
Devi sperimentare con questi numeri in modo da ottenere il centro della posizione della fotocamera e movimenti fluidi, se hai usato questo tutorial basta copiare i valori dati incollati
Passaggio 24: guida 1/2
Se si preme la freccia su sulla tastiera, gli indicatori dovrebbero cambiare posizione e l'auto dovrebbe guidare. Se premi la freccia "su" e l'auto sta girando, devi aggiungere/rimuovere il segno meno in alcuni punti dello schermo.
Dopo questa operazione, dopo aver premuto la freccia "su", l'auto dovrebbe andare avanti e l'auto con la freccia giù dovrebbe guidare all'indietro.
Passaggio 25: guida in 2/2
Ora svolta: premi la freccia a sinistra se l'auto sta girando a destra Devi capovolgere i cavi (controlla l'immagine sopra)
Se si saldano questi cavi, è possibile cambiarlo su script.js basta cambiare l'ordine di invio della velocità dei motori, prima:
pos=putByte(ret, pos, carController.getMotorMode(carController.getRightSideSpeed())); pos=putByte(ret, pos, Math.abs(carController.getRightSideSpeed()*255));
pos=putByte(ret, pos, carController.getMotorMode(-carController.getLeftSideSpeed()));
pos=putByte(ret, pos, Math.abs(carController.getLeftSideSpeed()*255));
dopo:
pos=putByte(ret, pos, carController.getMotorMode(-carController.getLeftSideSpeed()));
pos=putByte(ret, pos, Math.abs(carController.getLeftSideSpeed()*255));
pos=putByte(ret, pos, carController.getMotorMode(carController.getRightSideSpeed()));
pos=putByte(ret, pos, Math.abs(carController.getRightSideSpeed()*255));
e ora devi giocare con gli svantaggi come un passo prima per farlo funzionare correttamente;). Come probabilmente hai notato dopo aver colpito la freccia in su, l'auto non sta guidando a tutta velocità per far muovere l'auto più velocemente, rilascia rapidamente la freccia su quando è nella posizione massima e tieni premuto di nuovo
Passaggio 26: come funziona?
La pagina Web sta inviando messaggi di messaggio di nono byte allo script python nel formato:
- 1 byte un byte valore intero 1
- 2 byte intero X posizione della telecamera
- 2 byte intero Y posizione della telecamera
- Intero a 1 byte modalità motore sinistro (3= indietro, 1= avanti, 2=stop)
- 1 byte intero a sinistra della velocità del motore
- Intero a 1 byte modalità motore destro (3= indietro, 1= avanti, 2=stop)
- 1 byte intero a destra velocità del motore
l'invio del messaggio viene effettuato nel file script.js nella funzione "sendNow()"
su RasbperryPi python.py riceve questo messaggio nella funzione "onUserMessage"
Puoi dare un'occhiata e giocare un po 'in modo da sapere cosa sta succedendo.
descrizione delle funzioni di classe qui
Passaggio 27: tablet, volante mobile
Aggiungiamo una nuova pagina web esattamente come abbiamo fatto la volta precedente, ma ora scegliamo il modello "car4wdMobile"
Successivamente, configuriamo tutto in script.js come abbiamo fatto per la pagina Web di controllo desktop. Il formato del messaggio è esattamente lo stesso, quindi non dobbiamo cambiare lo script python.py.
Passaggio 28: aprire la pagina sul cellulare
Invece di accedere al tuo account dal cellulare, scansiona QR anymous url.
dettagli del QR qui
Se il tuo controllo mobile funziona quando RPi e mobile sono sullo stesso Wi-Fi ma non se usi Internet mobile, devi aggiungere il server di turno, come farlo ho scritto qui
Passaggio 29: aggiunta di Turn Server
A volte (quando sei dietro NAT o alcune impostazioni del firewall) non puoi connettere il tuo robot da un'altra rete, quindi il tuo robot è connesso. Non è un grosso problema e quindi devi aggiungere il server di turno.
Ho testato il server della società XIRSYS (è gratuito per l'uso da parte degli sviluppatori) e mostrerò come configurare il server di turno utilizzando il sistema XIRSYS
Registrati:
global.xirsys.net/dashboard/signup
quindi fai clic su "più" per aggiungere l'applicazione
a destra sotto "crediti di svolta statici" Hai tutti i dati che ti servono. Copialo nel file webrtc_streamer.conf per farlo vai su
espandere i dispositivi RaspberryPi
fare clic sul file webrtc_streamer.conf
clicca su apri
e aggiungi informazioni
turn_server=turn_username=
turn_credential=
dopo aver terminato la modifica Dovresti avere qualcosa di simile sullo schermo.
quindi fai clic su Salva e riavvia You Rpi, facendo clic sul menu sul dispositivo RasbperryPi e scegli riavvia
Dopo che il programma RPi è stato riavviato, puoi vedere l'anteprima del video sul tuo telefono cellulare anche se stai usando Internet mobile.
Passaggio 30: guida mobile
al cerchio 1 posizioniamo il pollice sinistro, al 2 destro - non è necessario che sia esattamente in questo punto - la pagina web imposterà la posizione zero subito dopo aver toccato lo schermo e spostando i pollici (guida a sinistra, posizione della fotocamera a destra) puoi controllare la tua auto
Passo 31: Riepilogo
Spero che questo tutorial ti sia piaciuto, come ho scritto prima in questo tutorial ci sono maggiori dettagli su come funziona sotto il cofano.
alcuni link:
remoteme.org - home page di remoteme.org lì trovi documentazioni e tutorial
FB fanpage - Facebook fanpage più recenti informazioni su remoteme.org
Youtube - alcuni video di progetto, tutorial
Saluti, Maciek
Consigliato:
Trasformare qualsiasi auto R/C in un'auto R/C di controllo tramite app Bluetooth: 9 passaggi
Trasformare qualsiasi auto R/C in un'auto con controllo tramite app Bluetooth: questo progetto mostra i passaggi per cambiare una normale auto con telecomando in un'auto con controllo Bluetooth (BLE) con la scheda robotica Wombatics SAM01, l'app Blynk e l'inventore dell'app MIT. ci sono molte auto RC a basso costo con molte caratteristiche come i fari a LED e
Controllo della luminosità Controllo LED basato su PWM tramite pulsanti, Raspberry Pi e Scratch: 8 passaggi (con immagini)
Controllo della luminosità Controllo LED basato su PWM tramite pulsanti, Raspberry Pi e Scratch: stavo cercando di trovare un modo per spiegare come funzionava il PWM ai miei studenti, quindi mi sono posto il compito di provare a controllare la luminosità di un LED utilizzando 2 pulsanti - un pulsante aumenta la luminosità di un LED e l'altro lo attenua. Per programmare
Dispositivi di controllo su Internet tramite browser. (IoT): 6 passaggi
Dispositivi di controllo su Internet tramite browser. (IoT): In questo Instructable ti mostrerò come controllare dispositivi come LED, relè, motori ecc. su Internet tramite browser web. E puoi accedere ai controlli in modo sicuro su qualsiasi dispositivo. La piattaforma web che ho usato qui è visita RemoteMe.org
ESP8266-NODEMCU Modulo WiFi da $ 3 - Controllo dei pin wireless tramite PAGINA WEB: 9 passaggi (con immagini)
ESP8266-NODEMCU Modulo WiFi da $ 3 - Controllo dei pin wireless tramite PAGINA WEB: è arrivato un nuovo mondo di questi microcomputer e questa cosa è ESP8266 NODEMCU. Questa è la prima parte che mostra come è possibile installare l'ambiente di esp8266 nel tuo IDE arduino attraverso il video per iniziare e come le parti in
Controllo dell'auto RC tramite un'interfaccia Web: 6 passaggi (con immagini)
Controllo di un'auto RC tramite un'interfaccia web: Ciao amici, in questo tutorial ti insegnerò a creare un'auto RC tramite un'interfaccia web. Lo controlleremo in modalità wireless tramite un nostro server. Usando il metodo che ti mostrerò, non avremo bisogno di usare un ricevitore RC. Per ospitare il web