Obsah:
- Krok 1: Niektoré informácie o App.remoteme.org
- Krok 2: Čo je potrebné:
- Krok 3: Pripojenia
- Krok 4: DPS
- Krok 5: Výstupy DPS
- Krok 6: Ako to bude fungovať
- Krok 7: Zostavenie auta - kolesá
- Krok 8: Napájanie (nabíjateľné batérie AA) Možnosť 1/2
- Krok 9: Napájanie (batérie Li-Po 7,2 V) Možnosť 2/2
- Krok 10: Spájkovanie
- Krok 11: Fotoaparát
- Krok 12: Spojenie dielov automobilov dohromady
- Krok 13: Konfigurácia App.remoteme.org
- Krok 14: Konfigurácia RasbperryPi
- Krok 15: Kontrola pripojení
- Krok 16: Pridanie skriptu Python
- Krok 17: Kontrola, či bol skript Python úspešne pridaný
- Krok 18: Pridanie webovej stránky na ovládanie auta
- Krok 19: Konfigurujte zariadenie WebPage na ovládanie auta 1/2
- Krok 20: Konfigurujte zariadenie WebPage na ovládanie auta 2/2
- Krok 21: Otvorte Centrum ovládania auta
- Krok 22: Konfigurácia kamery 1/2
- Krok 23: Konfigurácia kamery 2/2
- Krok 24: Jazda 1/2
- Krok 25: Jazda 2/2
- Krok 26: Ako to funguje
- Krok 27: Tablet, mobilné riadenie
- Krok 28: Otvorte stránku na mobilnom telefóne
- Krok 29: Pridanie servera Turn
- Krok 30: Mobilné riadenie
- Krok 31: Zhrnutie
Video: Automobil RasbperryPi s kamerou FPV. Ovládanie pomocou webového prehliadača: 31 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
Postavíme 4wd auto - riadenie bude podobné ako v nádrži - na otočenie jednej strany sa kolesá budú otáčať inou rýchlosťou ako ostatné. V aute bude umiestnená kamera na špeciálny držiak, kde môžeme meniť polohu kamery. Robot bude ovládaný webovým prehliadačom (chrome alebo firefox na počítači alebo Firefox na mobilnom telefóne), v prehliadači získame video z kamery (s latenciou iba 200 ms) a z prehliadača môžeme ovládať pohyby auta a poloha kamery. Aby bola komunikácia jednoduchšia, používam systém app.remoteme.org, taktiež je tu zabudované ovládanie tohto typu auta, takže nemusíte písať svoj vlastný kód, ale samozrejme môžete upravovať skripty nové možnosti atď.
Pred pripojením napájania k doske plošných spojov skontrolujte všetky pripojenia
Krok 1: Niektoré informácie o App.remoteme.org
Systém má tri časti
- webová aplikácia - keď hostíte svoje kontrolné webové stránky a prepája všetku komunikáciu
- program rasbperryPi - program, ktorý odosiela video a spravuje vaše pythonové skripty
- knižnice, kde nájdete definície tried, funkcií
Remoteme.org je rýchly systém Prepojíte všetky svoje zariadenia dohromady, môžete tam hostovať svoje webové stránky a zobrazovať svoje prepojené zariadenia. Systém Remoteme.org bol vytvorený tak, aby vám pomohol začať s realizáciou vašich projektov, bez starostí s protokolovou komunikáciou. Hlavnou myšlienkou je odosielanie binárnych správ medzi rôznymi zariadeniami, ako sú webové stránky, RasbeprryPI, arduino a skripty.
Na druhej strane vám Remoteme.org poskytuje plnú kontrolu nad vašimi súbormi, môžete ho ľahko upraviť tak, že napíšete svoje vlastné funkcie
V tomto návode vám ukážem, ako vytvoriť úžasný projekt bez toho, aby ste museli písať kód.
Na konci tohto tutoriálu som vložil užitočné odkazy, ktoré vám pomôžu porozumieť systému remoteme.org.
Krok 2: Čo je potrebné:
- Raspberry PI Zero W
- Vyhradený fotoaparát
- Adafruit 16 -kanálový 12 -bitový ovládač PWM/servo - rozhranie I2C - PCA9685 alebo jeho klon
- Dva servomechanizmy kompatibilné s držiakom kamery
- Držiak kamery
- Batérie - V tutoriáli dve možnosti pripojenia
- H mostík TB6612FNG, na ovládanie kolesa
- Súbory orla PCB Je ľahké ho vytvoriť metódou tepelného prenosu DC-DC
- Znížte modul prevodníka DC
- Robotické puzdro
Krok 3: Pripojenia
Servopohon Raspberry pi ovláda modul PWM a rýchlosť motora mostíkom H, ktorý je pripojený k pinom RasbperryPi, vstup PWM do mostíka H je generovaný rovnakým modulom, aký som použil pre serva (ktoré časti spomínam vyššie, nie sú potrebné žiadne logické prevodníky)
Krok 4: DPS
Tu si môžete stiahnuť súbory orla PCB Cesty sú tučné, takže je ľahké ich vytvoriť metódou tepelného prenosu
Krok 5: Výstupy DPS
- Vstup PWM pre hnacie motory by mal byť pripojený k 15´ a 16pinovému modulu PWM (na obrázku modulu PWM skontrolujte zelený obdĺžnik)
- Príkon pre hnacie motory (skontrolujte, s akým maximálnym napätím môžu vaše motory pracovať)
- Výkon pre modul RasbperryPi a PWM - musí byť presne
- Výstupy hnacieho motora (existujú dva výstupy, pretože spárujeme hnacie motory)
- Výkon servomechanizmov - Tiež musíte skontrolovať, aké napätie je pre nich dobré
- Prepojením súčasného výkonu z 5. vstupu sa budú napájať aj motory, takže na vstup 2 nie je potrebné nič pripájať
- Prepojka, ak je prítomná, RasbperryPi bude napájať z 3. vstupu - predtým, ako sem umiestnite prepojku, skontrolujte, či sú pripojenia v poriadku - nechcete vypaľovať svoje RPi
- Umožňuje tu spájkovať káble, pretože nepotrebujeme logické prevodníky
Krok 6: Ako to bude fungovať
Na RasbperryPi existuje skript python, ktorý používa dve knižnice
- import RPi. GPIO ako GPIO-pre piny 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (označenie BCM), ktoré sú spojené s mostíkom H
- importujte Adafruit_PCA9685 pre modul PWM
Piny Rpi sú spojené nasledovne 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) a režim riadenia mostíka H (dopredu, dozadu, zastavenie, krátka prestávka). Most H potrebuje aj dva signály PWM, aby sme mohli ovládať rýchlosť alebo otáčanie motora. Pretože v projekte už máme regulátor PWM (používaný pre servo), použijeme ho aj na generovanie PWM pre mostík H.
Modul PWM používa komunikačný protokol I2C. Použil som vypracovanie z krabice Adafruit_PCA9685. knižnica
Krok 7: Zostavenie auta - kolesá
Začneme od pripojenia hnacích motorov k puzdru auta. Motory na ľavej/bočnej strane sa spoja a obidva sa spárujú pomocou nejakého napájacieho kábla, ktorý bude neskôr pripojený k doske plošných spojov. Dôležitá poznámka Pri pripájaní kolies motora na každej strane sa musí otáčať v rovnakom smere.
Krok 8: Napájanie (nabíjateľné batérie AA) Možnosť 1/2
Napíšem dve možnosti napájania. Prvý z nich je z nabíjacích batérií 10xAA. Na posledný obrázok som nakreslil prepojky červenej farby, ktoré je potrebné vložiť.
Krok 9: Napájanie (batérie Li-Po 7,2 V) Možnosť 2/2
A druhou možnosťou je 7,2 LI-PO batéria. V tomto prípade sme dostali 3 napätia - 5 V pre Rpi a modul, 6 V pre serva a priamo z batérií 7,2 voltov pre hnacie motory. Musel som použiť dva zostupné moduly
Možnosť 2 s LI-PO je lepšia:
- Batérie majú väčšiu kapacitu - auto bude jazdiť dlhšie
- Väčšie napätie pre hnacie motory - auto bude jazdiť rýchlejšie
- Menšia pravdepodobnosť, že potom, čo sa začnú nachádzať hnacie motory, by sme mohli mať obrovský pokles napätia a reštartovanie RPI.
Krok 10: Spájkovanie
Na PCB som umiestnil niekoľko rozperiek pre modul PWM. Nie je čo písať, stačí sa pozrieť na obrázky, ako všetko spájkovať
Krok 11: Fotoaparát
pripájame kameru, tu je napísané, ako vycentrovať servo mechanizmy pred montážou do držiaka kamery, ale najkratšou cestou je jemne manuálne skontrolovať maximálnu polohu otáčania a nastaviť serva do stredovej polohy. Toto vycentrované servo mechanizmy sme vložili do držiaka fotoaparátu v stredovej polohe (kamera smeruje priamo dopredu, ako na fotografii)
Krok 12: Spojenie dielov automobilov dohromady
Pre PCB som vyrobil malý stôl z plexiskla
Krok 13: Konfigurácia App.remoteme.org
Použil som bezplatný systém app.remoteme.org, ktorý vám pomôže vytvoriť spojenie, a už obsahuje skripty, ktoré potrebujeme.
Na tomto návode krok za krokom ukážem, čo je potrebné urobiť pre riadenie auta (tu nájdete ďalšie podrobnosti)
- Po registrácii sa spíšte na https://app.remoteme.org Budete automaticky prihlásení
- vľavo otvorte kartu Token, potom kliknite na „nový token“, zadajte názov a kliknite na tlačidlo OK, práve sme vytvorili nový token (obrázok na obrazovke)
- v tomto prípade je hodnota tokenu: ~ 1_ & p@+BNnZ@A+x8 (váš bude iný;))
Krok 14: Konfigurácia RasbperryPi
na konzole tmelu (tu je návod, ako nastaviť RPi a zapnúť komunikáciu kamery I2c)
klon git git: //github.com/remoteme/remoteme.git
cd vzdialená
python3.5 install.py
- Instalator nám položí niekoľko otázok na všetky odpovede [Á] a potvrdí [Enter]
- keď inštalácia požiada o token, vložíme (posun+vložíme) token skopírovaný z aplikácie a Enter
- názov napríklad Rpi
- deviceId 1 Enter
- po inštalácii - spustite program
./runme.sh
Krok 15: Kontrola pripojení
Vráťme sa na
Na karte zariadení uvidíme naše pripojené RPi (zelená ikona odkazu znamená, že RPi je pripojený práve teraz)
Krok 16: Pridanie skriptu Python
Teraz pridáme skript python, ktorý už je v šablónach, aby sme nemuseli nič programovať.
Na karte zariadení otvorte ponuku RasbperryPi a zvoľte „Pridať externý skript“.
Hneď ako sa objaví nové okno, zadajte informácie ako na obrázku vyššie
Nezabudnite vybrať šablónu „car4wd“. Po týchto krokoch remoteme.org pridá skript python do nášho RasbperryPi a reštartuje ho
Krok 17: Kontrola, či bol skript Python úspešne pridaný
Na karte zariadení by malo byť pridané nové skriptové zariadenie python a jeho ID zariadenia je 2. Do tohto ID zariadenia bude webová stránka odosielať správy na ovládanie auta
Krok 18: Pridanie webovej stránky na ovládanie auta
na karte zariadení kliknite na „Nové“a potom na „Webovú stránku“. Stačí pridať ďalšie zariadenie - webovú stránku, pomocou ktorej budeme ovládať naše auto. A pretože sme na webovej stránke použili šablónu „car4wdDesktop“, súbory sú už takmer pripravené na použitie
Krok 19: Konfigurujte zariadenie WebPage na ovládanie auta 1/2
Rozbaľte Webovú stránku na karte zariadenia, kliknite na index.html a potom na položku Otvoriť
Krok 20: Konfigurujte zariadenie WebPage na ovládanie auta 2/2
Potom sa zobrazí okno, v ktorom musíme poskytnúť deviceId nášho python skriptu deviceId je 2. Zmeňme miesto zobrazené na obrázku
Krok 21: Otvorte Centrum ovládania auta
Teraz je čas otvoriť našu stránku a zistiť, ako funguje. Na karte zariadenia kliknite na index.html a potom na „Otvoriť na novej karte“Ak chcete získať ukážku videa, musíte použiť prehliadač chrome alebo firefox, iný prehliadač webRTC plne nepodporuje
Krok 22: Konfigurácia kamery 1/2
Keď presunieme myš na oblasť videa, kamera by mala zmeniť polohu a mala by fungovať presne ako v hrách FPS. Pravdepodobne sa nebude pohybovať správne
Krok 23: Konfigurácia kamery 2/2
Otvorte skript.js (na karte zariadení rozbaľte webovú stránku, potom kliknite na skript.js a potom ho otvorte) a nájdite miesto, ktoré som ukázal na obrazovke
v mojom prípade je stredová poloha 560 a 430 a rozsah pohybov je pre obe osi 200
S týmito číslami musíte experimentovať, aby ste získali stred polohy kamery a plynulé pohyby. Ak ste použili tento návod, skopírujte vložené hodnoty.
Krok 24: Jazda 1/2
Ak stlačíte šípku nahor na klávesnici, ukazovatele by mali zmeniť polohu a auto by malo jazdiť. Ak stlačíte šípku „hore“a auto sa otáča, musíte na miestach na obrazovke pridať/odstrániť mínus.
Po tejto operácii by po kliknutí na šípku „hore“malo auto ísť dopredu a šípka nadol by mala ísť dozadu.
Krok 25: Jazda 2/2
Teraz sa otáča - ak auto odbočuje doprava, kliknite na šípku vľavo Musíte prevrátiť káble (pozrite si obrázok vyššie)
Ak spájkujete tieto káble, môžete to zmeniť v skripte.js stačí zmeniť poradie rýchlosti odosielania motorov, pred:
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));
po:
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));
a teraz sa musíte hrať s mínusmi, ako jeden krok predtým, aby to fungovalo správne;). Ako ste si pravdepodobne všimli, šípka po jazde autom nepracuje plnou rýchlosťou, aby sa auto pohybovalo rýchlejšie, stačí rýchlo uvoľniť šípku nahor, keď je v maximálnej polohe a znova ho stlačte a podržte
Krok 26: Ako to funguje
Webová stránka odosiela správy z 9. bajtu do skriptu python vo formáte:
- 1 bajt jednobajtová celočíselná hodnota 1
- 2 -bajtová celočíselná poloha kamery X
- 2 -bajtová celočíselná poloha kamery Y
- 1 bajtový celočíselný režim motora vľavo (3 = dozadu, 1 = dopredu, 2 = zastavenie)
- 1 bajt celé číslo ľavej rýchlosti motora
- 1 -motorový celočíselný pravý režim motora (3 = dozadu, 1 = dopredu, 2 = zastavenie)
- 1 bajt celé číslo pravá rýchlosť motora
správa sa odosiela v súbore script.js vo funkcii "sendNow ()"
na RasbperryPi python.py dostáva túto správu vo funkcii „onUserMessage“
Môžete si to vyskúšať a trochu sa pohrať, aby ste vedeli, čo sa deje.
popis funkcií triedy tu
Krok 27: Tablet, mobilné riadenie
Nové webové stránky pridávame exkluzívne ako v predchádzajúcom čase, ale teraz sme vybrali šablónu „car4wdMobile“
Ďalej všetko nakonfigurujeme v súbore script.js tak, ako sme to urobili pre webovú stránku ovládajúcu počítač. Formát správy je úplne rovnaký, takže nemusíme meniť skript python.py.
Krok 28: Otvorte stránku na mobilnom telefóne
Namiesto prihlásenia sa na svoj účet z mobilu jednoducho naskenujte ľubovoľnú adresu URL QR.
podrobnosti o QR tu
Ak vaše mobilné ovládanie funguje, keď sú RPi a mobil na rovnakej sieti Wi -Fi, ale nie, ak používate mobilný internet, musíte pridať turn server, ako to urobiť, napísal som tu.
Krok 29: Pridanie servera Turn
Niekedy (keď sa nachádzate za NAT alebo niektorými nastaveniami brány firewall) nemôžete svojho robota pripojiť z inej siete, potom je pripojený váš robot. Nie je to veľký problém a potom musíte pridať turn server.
Testoval som server od spoločnosti XIRSYS (je bezplatný pre vývojárov) a ukážem, ako nakonfigurovať turn server pomocou systému XIRSYS.
Registrovať:
global.xirsys.net/dashboard/signup
potom kliknutím na tlačidlo „plus“pridajte aplikáciu
vpravo pod „poverenia statického odbočenia“Máte všetky potrebné údaje. Skopírujte ho do súboru webrtc_streamer.conf a prejdite na
rozbaliť RaspberryPi deivces
kliknite na súbor webrtc_streamer.conf
kliknite otvoriť
a pridajte informácie
turn_server = turn_username =
turn_credential =
po dokončení úprav Mali by ste mať na obrazovke niečo podobné.
potom kliknite na Uložiť a reštartovať You Rpi, kliknutím na ponuku na zariadení RasbperryPi a zvoľte reštart
Po reštarte programu RPi Na mobilnom telefóne si môžete pozrieť ukážku videa, aj keď používate mobilný internet.
Krok 30: Mobilné riadenie
v kruhu 1 umiestnime ľavý palec, 2 vpravo - nemusí byť presne v týchto bodoch - webová stránka nastaví nulovú polohu tesne po dotyku obrazovky a pohybom palcov (ľavá jazda, pravá poloha kamery) môžete ovládať tvoje auto
Krok 31: Zhrnutie
Dúfam, že sa vám tento návod páčil, pretože ako som už predtým napísal, v tomto návode sú ďalšie podrobnosti o tom, ako funguje pod kapotou.
nejaké odkazy:
remoteme.org - domovská stránka remoteme.org, kde nájdete dokumentácie a návody
FB fanpage - Facebook fanpage najnovšie informácie o remoteme.org
Youtube - niekoľko videí z projektu, návody
Na zdravie, Maciek
Odporúča:
Odosielanie údajov na platformu AskSensors IoT z webového prehliadača: 6 krokov
Odosielanie údajov na platformu AskSensors IoT z webového prehliadača: Nedávno som uverejnil návod, ktorý ukazuje krok za krokom sprievodcu pripojením MCU uzla ESP8266 k platforme AskSensors IoT. Dostal som spätnú väzbu od ľudí, ktorých viac zaujíma platforma AskSensors, ale nemajú v ruke uzol MCU. Toto ja
Ovládanie jasu Ovládanie LED na báze PWM pomocou tlačidiel, Raspberry Pi a Scratch: 8 krokov (s obrázkami)
Ovládanie jasu Ovládanie LED na základe PWM pomocou tlačidiel, Raspberry Pi a Scratch: Snažil som sa nájsť spôsob, ako vysvetliť, ako PWM funguje u mojich študentov, a tak som si dal za úlohu pokúsiť sa ovládať jas LED pomocou dvoch tlačidiel. - jedno tlačidlo zvyšuje jas LED diódy a druhé ju stmieva. Programovať
Ovládanie 7-segmentového LED displeja pomocou webového servera ESP8266: 8 krokov (s obrázkami)
Ovládanie 7-segmentového LED displeja pomocou webového servera ESP8266: Môj projekt má Nodemcu ESP8266, ktorý riadi 7-segmentový displej prostredníctvom servera http pomocou html formulára
Ovládanie zariadení pomocou hlasového ovládania pomocou NodeMCU: 7 krokov (s obrázkami)
Ovládanie zariadení pomocou hlasového ovládania pomocou NodeMCU: Chcem sa len pozdraviť s každým, toto je môj prvý prípad, kedy píšem inštruovateľný projekt. Angličtina nie je môj rodný jazyk, a preto sa pokúsim urobiť to stručné a čo najjasnejšie. Ovládanie zariadení hlasovým príkazom nie je nič zvláštne
Ako uverejňovať obrázky na Instagrame z počítača pomocou prehliadača Google Chrome: 9 krokov
Ako zverejňovať obrázky na Instagrame z počítača pomocou prehliadača Google Chrome: Instagram je v súčasnosti jednou z popredných platforiem sociálnych médií. Ľudia používajúci túto platformu môžu zdieľať fotografie a krátke videá, ktoré je možné nahrať pomocou mobilnej aplikácie Instagram. Jednou z hlavných výziev, s ktorými sa používatelia Instagramu stretávajú, je