Taula de continguts:
- Pas 1: informació sobre App.remoteme.org
- Pas 2: què cal:
- Pas 3: connexions
- Pas 4: PCB
- Pas 5: Sortides de PCB
- Pas 6: Com funciona?
- Pas 7: Muntatge de cotxes: rodes
- Pas 8: alimentació (bateries de recàrrega AA) Opció 1/2
- Pas 9: alimentació (bateries Li-Po 7.2V) Opció 2/2
- Pas 10: soldar
- Pas 11: càmera
- Pas 12: ajuntar peces de cotxes
- Pas 13: Configuració de App.remoteme.org
- Pas 14: configuració de RasbperryPi
- Pas 15: comprovació de les connexions
- Pas 16: afegir script Python
- Pas 17: comprovar si s'ha afegit correctament l'script de Python
- Pas 18: afegir una pàgina web a Control Car
- Pas 19: configureu el dispositiu de pàgina web per controlar el cotxe 1/2
- Pas 20: configureu el dispositiu de pàgina web per controlar el cotxe 2/2
- Pas 21: obriu el centre de control del cotxe
- Pas 22: Configuració de la càmera 1/2
- Pas 23: Configuració de la càmera 2/2
- Pas 24: conduir 1/2
- Pas 25: conduir 2/2
- Pas 26: Com funciona
- Pas 27: tauleta, direcció mòbil
- Pas 28: obriu la pàgina al telèfon mòbil
- Pas 29: afegir Turn Server
- Pas 30: direcció mòbil
- Pas 31: resum
Vídeo: Cotxe RasbperryPi amb càmera FPV. Control per navegador web: 31 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Construirem un cotxe de quatre rodes (la direcció serà similar a la d’un tanc) per girar un costat de les rodes girant amb una velocitat diferent a l’altra. Al cotxe es col·locarà la càmera en un suport especial on podrem canviar la posició de la càmera. El robot es controlarà mitjançant un navegador web (Chrome o Firefox a l’escriptori o firefox al telèfon mòbil), al navegador, rebrem vídeo de càmera (amb només 200 ms de latència) i, des del navegador, podem controlar els moviments del cotxe i posició de la càmera. Per fer més fàcil la comunicació, he utilitzat el sistema app.remoteme.org, també hi ha un control fora d’aquest tipus de cotxes, de manera que no heu d’escriure el vostre propi codi, però, per descomptat, podeu modificar noves possibilitats, etc.
Abans de connectar l'alimentació a la vostra PCB, comproveu totes les connexions
Pas 1: informació sobre App.remoteme.org
El sistema té tres parts
- aplicació web: quan allotgeu les vostres pàgines web de control i enllaça totes les comunicacions
- programa rasbperryPi: programa que envia vídeo, gestiona els scripts de Python
- biblioteques on trobeu definicions de classe, funcions
Remoteme.org és un sistema ràpid. Enllaceu tots els vostres dispositius, hi podeu allotjar les vostres pàgines web, veure els vostres dispositius connectats. El sistema Remoteme.org s'ha creat per ajudar-vos a començar a fer els vostres projectes, sense preocupar-vos de les comunicacions de protocols, la idea principal és enviar missatges binaris entre diversos dispositius, com ara pàgines web, RasbeprryPI, arduino i scripts.
D’altra banda, Remoteme.org us proporciona un control complet dels vostres fitxers. Podeu modificar-lo fàcilment escrivint la vostra pròpia funcionalitat
En aquest tutorial us mostraré com fer un projecte impressionant sense escriure cap codi.
Al final d'aquest tutorial he posat enllaços útils que us ajudaran a entendre el sistema remoteme.org.
Pas 2: què cal:
- Raspberry PI Zero W
- Càmera dedicada
- Adafruit PWM / Servo Driver de 16 canals de 12 canals - interfície I2C - PCA9685 o el seu clon
- Dos mecanismes servo compatibles amb el suport de la càmera
- Suport de càmera
- Bateries: al tutorial hi ha dues possibilitats de connexió
- Pont H TB6612FNG, per controlar la velocitat de la roda
- Fitxers PCB àguila És fàcil convertir-lo en mètode de transferència tèrmica DC-DC
- Redueix el mòdul del convertidor de corrent continu
- Estoig del robot
Pas 3: connexions
Raspberry pi controla el mecanisme servo mitjançant el mòdul PWM i la velocitat del motor mitjançant el pont H que està connectat als pins RasbperryPi; l’entrada PWM al pont H es genera amb el mateix mòdul que he utilitzat per als servos (de les parts que menciono més amunt no calen convertidors lògics)
Pas 4: PCB
Podeu descarregar fitxers d'àguila PCB des d'aquí
Pas 5: Sortides de PCB
- L'entrada PWM per als motors d'accionament s'hauria de connectar al mòdul PWM de 15 i 16 pins (comproveu el rectangle verd a la imatge del mòdul PWM)
- Potència d'entrada per als motors d'accionament (comproveu amb quina tensió màxima poden treballar els vostres motors)
- La potència del mòdul RasbperryPi i PWM: ha de ser exactament
- Sortides del motor d'accionament (hi ha dues sortides perquè emparellarem els motors d'accionament)
- Potència dels mecanismes servo: també heu de comprovar quina tensió els és bona
- Saltar la seva actual potència des de la cinquena entrada també accionarà motors, de manera que no cal connectar res a l'entrada 2
- El pont si està present, el RasbperryPi serà alimentat des de la tercera entrada. Abans de posar el pont aquí, comproveu si les connexions estan bé. No voleu gravar el vostre RPi
- Permet soldar aquí els cables, ja que no necessitem convertidors lògics
Pas 6: Com funciona?
A RasbperryPi hi ha un script python que utilitza dues biblioteques
- importar RPi. GPIO com a GPIO: per als pins 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (notació BCM) que estan connectats al pont H
- importar Adafruit_PCA9685 per al mòdul PWM
Els pins Rpi es connecten de la següent manera 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) i el mode de control del pont H (cap endavant, cap enrere, parada, interrupció curta). El pont H també necessita dos senyals PWM perquè puguem controlar la velocitat o la rotació del motor. Com que al projecte ja tenim controlador PWM (utilitzat per al servo), l’utilitzarem també per generar PWM per al pont H.
El mòdul PWM utilitza el protocol de comunicació I2C. He utilitzat treballar fora de la caixa Adafruit_PCA9685. biblioteca
Pas 7: Muntatge de cotxes: rodes
Començarem des de connectar els motors de transmissió a la caixa del cotxe. Els motors laterals esquerre / lateral es connecten junts, i els dos parells es connecten a algun cable d'alimentació que posteriorment es connectarà a la PCB. Nota important mentre es connecten les rodes dels motors per cada costat han de girar en la mateixa direcció.
Pas 8: alimentació (bateries de recàrrega AA) Opció 1/2
Escriuré dues possibilitats de potència El primer cotxe és a partir de bateries de recàrrega de 10xAA. A la darrera imatge he dibuixat els ponts de colors vermells que cal posar.
Pas 9: alimentació (bateries Li-Po 7.2V) Opció 2/2
I la segona opció és la bateria 7.2 LI-PO. En aquest cas, obtenim 3 tensions: 5v per Rpi i mòdul, 6V per servos i directament de les bateries, 7,2 volts per als motors d’acció. Vaig haver d’utilitzar dos mòduls de baixada
És millor l'opció 2 amb LI-PO:
- Les bateries tenen una capacitat més gran: el cotxe conduirà més temps
- Voltatge més gran per als motors de transmissió: el cotxe conduirà més ràpidament
- Menys probabilitats que després de començar a localitzar-se els motors d’acció, puguem tenir una caiguda de tensió enorme i que es reiniciï RPI.
Pas 10: soldar
He posat al PCB alguns espaiadors per al mòdul PWM. No hi ha res a escriure, només cal veure imatges per soldar-ho tot junt
Pas 11: càmera
connectem la càmera, aquí s’escriu com centrar els mecanismes servo abans de muntar-los al suport de la càmera, però la forma més curta és comprovar manualment la posició màxima de rotació manualment i establir els servos a la posició central. Els servomecanismes centrats els posem al suport de la càmera a la posició central (la càmera apunta cap endavant com a la foto)
Pas 12: ajuntar peces de cotxes
Per al PCB he fet una petita taula de plexiglàs
Pas 13: Configuració de App.remoteme.org
He utilitzat el sistema app.remoteme.org gratuït que us ajuda a establir connexions i ja té scripts que necessitem
En aquest instructiu, només mostraré pas a pas què s’ha de fer per conduir el cotxe (aquí trobareu més detalls)
- Canteu-vos a https://app.remoteme.org després de registrar-vos. Inicieu la sessió automàticament
- obriu la pestanya de token a l'esquerra i, a continuació, feu clic a "nou testimoni" i proporcioneu un nom i feu clic a D'acord. Acabem de crear un nou testimoni (imatge a la pantalla)
- en aquest exemple, el valor del testimoni és: ~ 1_ & p @ + BNnZ @ A + x8 (el vostre serà diferent;))
Pas 14: configuració de RasbperryPi
a consola de massilla (aquí com configurar el nostre RPi activar la comunicació I2c de la càmera)
git clonar git: //github.com/remoteme/remoteme.git
cd remoteme
python3.5 install.py
- L’Instal·lador ens farà algunes preguntes per a totes les respostes que fem [Y] i confirmarem mitjançant [enter]
- quan la instal·lació demanarà un testimoni, enganxem (majúscules + insereix) el testimoni copiat de l'aplicació i Enter
- el nom per exemple Rpi
- deviceId 1 Introduïu
- després de la instal·lació: executeu el programa
./runme.sh
Pas 15: comprovació de les connexions
Tornem a
A la pestanya Dispositius veurem el nostre RPi connectat (la icona d’enllaç verd significa que RPi està connectat en aquest moment)
Pas 16: afegir script Python
Ara afegirem script Python, ja està a les plantilles, de manera que no hem de programar res.
A la pestanya Dispositius, obriu el menú RasbperryPi i trieu "Afegeix un script extern".
Quan aparegui una finestra nova, proporcioneu la informació de la imatge superior
No oblideu triar la plantilla "car4wd". Després d’aquests passos, remoteme.org afegirà script Python al RasbperryPi i el reiniciarà
Pas 17: comprovar si s'ha afegit correctament l'script de Python
A la pestanya Dispositius, s'hauria d'afegir un nou dispositiu de script Python i el seu ID de dispositiu és 2. A la pàgina web d'identificació d'aquest dispositiu s'enviaran missatges per controlar el cotxe
Pas 18: afegir una pàgina web a Control Car
a la pestanya Dispositius, feu clic a "Nou" i després a "Pàgina web". Simplement afegim un altre dispositiu: webPage l’utilitzarem per controlar el nostre cotxe. I com que hem utilitzat la plantilla "car4wdDesktop" a la pàgina web, ja hi ha fitxers gairebé a punt per utilitzar-los
Pas 19: configureu el dispositiu de pàgina web per controlar el cotxe 1/2
Amplieu la pàgina web a la pestanya del dispositiu i feu clic a index.html i després a Obre
Pas 20: configureu el dispositiu de pàgina web per controlar el cotxe 2/2
La finestra apareix, llavors hem de proporcionar DeviceId del nostre script Python al nostre cas DeviceId és 2. Canviem el lloc que es mostra a la imatge
Pas 21: obriu el centre de control del cotxe
Ara és hora d’obrir la nostra pàgina i veure com funciona. A la pestanya del dispositiu, feu clic a index.html i, a continuació, a "Obre a la pestanya nova" Per obtenir una visualització prèvia del vídeo Heu d'utilitzar el navegador Chrome o Firefox altres navegadors no admeten completament webRTC
Pas 22: Configuració de la càmera 1/2
Quan movem el ratolí cap a l'àrea de vídeo, la càmera hauria de canviar de posició i hauria de funcionar exactament com en els jocs FPS. Probablement no es mourà correctament
Pas 23: Configuració de la càmera 2/2
Obriu script.js (pestanya de dispositius amplieu la pàgina web i feu clic a script.js i obriu) i cerqueu el lloc que he mostrat a la pantalla
al meu cas, la posició central és 560 i 430 i la gamma de moviments és per a tots dos eixos 200
Heu d’experimentar amb aquests números per obtenir un centre de posició de la càmera i moviments suaus. Si utilitzeu aquest tutorial, només copieu els valors enganxats.
Pas 24: conduir 1/2
Si premeu la fletxa cap amunt al teclat, els indicadors haurien de canviar de posició i el cotxe hauria de conduir. Si premeu la fletxa cap amunt i el cotxe gira, haureu d'afegir / eliminar menys en llocs de la pantalla.
Després d'aquesta operació, després de prémer el fletxa cap amunt, el cotxe hauria de conduir cap endavant i el fletxa cap avall hauria de conduir cap enrere.
Pas 25: conduir 2/2
Ara gireu: toqueu la fletxa esquerra si el cotxe gira a la dreta Cal girar els cables (consulteu la imatge superior)
Si heu soldat aquests cables, podeu canviar-lo a script.jsjust canvieu l’ordre d’enviament de la velocitat dels motors, abans:
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));
després:
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));
i ara heu de jugar amb menys com un pas abans perquè funcionés correctament;). Com probablement heu notat després de colpejar la fletxa cap amunt, el cotxe no circula a tota velocitat per fer que el cotxe es mogui més ràpidament, només cal que deixeu anar la fletxa cap amunt quan es troba en la posició màxima i manteniu premut de nou
Pas 26: Com funciona
La pàgina web envia missatges de missatge de 9 octets a un script Python en format:
- 1 byte valor enter 1 byte
- Posició de la càmera X enter de 2 bytes
- Posició de la càmera enter de 2 bytes
- Mode motor esquerre de 1 byte enter (3 = enrere, 1 = endavant, 2 = aturar)
- Velocitat del motor enter de 1 byte esquerre
- Mode de motor enter de 1 byte dret (3 = enrere, 1 = endavant, 2 = aturar)
- Velocitat del motor enter de 1 byte
l'enviament del missatge es fa al fitxer script.js a la funció "sendNow ()"
a RasbperryPi python.py rep aquest missatge a la funció "onUserMessage"
Podeu comprovar-ho i jugar una mica per saber què passa.
descripció de les funcions de classe aquí
Pas 27: tauleta, direcció mòbil
Afegim una nova pàgina web de manera especial, com hem fet anteriorment, però ara triem la plantilla "car4wdMobile"
A continuació, configurem tot a script.js tal com vam fer per a la pàgina web de control d'escriptori. El format del missatge és exactament el mateix, de manera que no hem de canviar l'script python.py.
Pas 28: obriu la pàgina al telèfon mòbil
En lloc d’iniciar sessió al vostre compte des del mòbil, només heu d’escanejar qualsevol URL url QR.
detalls de QR aquí
Si el vostre control mòbil funciona quan RPi i mòbil estan al mateix wifi, però no si feu servir Internet mòbil, heu d'afegir un servidor de torn, com fer-ho, he escrit aquí
Pas 29: afegir Turn Server
De vegades (quan esteu darrere de NAT o alguns paràmetres del tallafoc) no podeu connectar el robot des d'una altra xarxa, llavors el vostre robot està connectat. No és un gran problema i després heu d'afegir el servidor de torn.
He provat el servidor de la companyia XIRSYS (és gratuït per a ús del desenvolupador) i mostraré com configurar el servidor de torns mitjançant el sistema XIRSYS
registre:
global.xirsys.net/dashboard/signup
a continuació, feu clic a "més" per afegir l'aplicació
a la dreta a "Credencials de gir estàtic" Teniu totes les dades que necessiteu. Copieu-lo al fitxer webrtc_streamer.conf per fer-ho, aneu a
amplieu RaspberryPi deivces
feu clic al fitxer webrtc_streamer.conf
feu clic a obre
i afegir informació
turn_server = turn_username =
turn_credential =
després d'acabar l'edició, hauríeu de tenir alguna cosa semblant a la pantalla.
a continuació, feu clic a Desa i reinicieu You Rpi, fent clic al menú del dispositiu RasbperryPi i trieu reiniciar
Després de reiniciar el programa RPi, podeu veure la visualització prèvia del vídeo al vostre telèfon mòbil, fins i tot si utilitzeu Internet mòbil.
Pas 30: direcció mòbil
al cercle 1, col·loquem el polze esquerre, a 2 a la dreta (no cal que sigui exactament en aquests punts): la pàgina web establirà la posició zero just després de tocar la pantalla i movent els polzes (conduir a l'esquerra, posició de la càmera dreta) Podeu controlar el teu cotxe
Pas 31: resum
Espero que us hagi agradat aquest tutorial, ja que he escrit abans en aquest tutorial, hi ha més detalls sobre com funciona sota el capó.
alguns enllaços:
remoteme.org - pàgina d'inici de remoteme.org allà Hi trobareu documentacions i tutorials
Pàgina de fans de FB: nova informació de la pàgina de fans de Facebook sobre remoteme.org
Youtube: alguns vídeos del projecte, tutorials
Salut, Maciek
Recomanat:
Convertir qualsevol cotxe R / C en un cotxe R / C de control d’aplicacions Bluetooth: 9 passos
Convertir qualsevol cotxe R / C en un control d'aplicacions Bluetooth Cotxe R / C: aquest projecte mostra els passos per canviar un cotxe de control remot ordinari a un cotxe de control Bluetooth (BLE) amb placa de robòtica Wombatics SAM01, aplicació Blynk i inventor d'aplicacions MIT. hi ha molts cotxes RC de baix cost amb moltes funcions com els fars LED i
Cotxe Arduino amb tracció a les quatre rodes Bluetooth amb cotxe UNO R3, HC-05 i L293D amb codificació i aplicació per a Android: 8 passos
Cotxe RC Bluetooth Arduino de 4 rodes amb motor UNO R3, HC-05 i L293D amb aplicació per a codificació i Android: Avui us explicaré com fer un cotxe RC bluetooth amb tracció a les 4 rodes amb HC 05, blindatge del motor L293, Motor de 4 CC, amb codificació i aplicació per a Android per controlar el cotxe. Component utilitzat: -1-Arduino UNO R32-Bluetooth HC-053-Motorshield L293
FinduCar: una clau de cotxe intel·ligent que guia la gent cap a on està aparcat el cotxe: 11 passos (amb imatges)
FinduCar: una clau de cotxe intel·ligent que guia la gent cap a on està aparcat el cotxe: per resoldre els problemes anteriors, aquest projecte proposa desenvolupar una clau de cotxe intel·ligent que pugui dirigir la gent cap a on va aparcar el cotxe. I el meu pla és integrar un GPS a la clau del cotxe. No cal utilitzar l'aplicació per a telèfons intel·ligents per fer un seguiment de
Cotxe de control remot HPI Q32 amb actualització FPV: 10 passos (amb imatges)
Cotxe de control remot HPI Q32 amb actualització FPV: aquí mostrarem la flexibilitat de l’HPI Racing Q32 per acceptar modificacions. Farem experiments amb l’adaptació d’un sistema de bateria intercanviable i també d’una càmera i un transmissor FPV
Control del cotxe RC mitjançant una interfície web: 6 passos (amb imatges)
Controlar un cotxe RC mitjançant una interfície web: Hii amics, en aquest instructiu us ensenyaré a fer un cotxe RC mitjançant una interfície web. El controlarem sense fils a través d’un servidor propi. Amb el mètode que us mostraré, no necessitarem fer servir un receptor de RC. Per allotjar el web