Obsah:

Automobil RasbperryPi s kamerou FPV. Ovládanie pomocou webového prehliadača: 31 krokov (s obrázkami)
Automobil RasbperryPi s kamerou FPV. Ovládanie pomocou webového prehliadača: 31 krokov (s obrázkami)

Video: Automobil RasbperryPi s kamerou FPV. Ovládanie pomocou webového prehliadača: 31 krokov (s obrázkami)

Video: Automobil RasbperryPi s kamerou FPV. Ovládanie pomocou webového prehliadača: 31 krokov (s obrázkami)
Video: Easy FPV - Plug N Play FPV System for RC Car - RC Airplane 2024, November
Anonim
Image
Image

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é:

Čo je potrebné
Čo je potrebné
Čo je potrebné
Č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

Pripojenia
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

DPS
DPS
DPS
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

Výstupy DPS
Výstupy DPS
Výstupy DPS
Výstupy DPS
  1. 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)
  2. Príkon pre hnacie motory (skontrolujte, s akým maximálnym napätím môžu vaše motory pracovať)
  3. Výkon pre modul RasbperryPi a PWM - musí byť presne
  4. Výstupy hnacieho motora (existujú dva výstupy, pretože spárujeme hnacie motory)
  5. Výkon servomechanizmov - Tiež musíte skontrolovať, aké napätie je pre nich dobré
  6. 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ť
  7. 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
  8. 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á

Zostavenie auta - kolesá
Zostavenie auta - kolesá
Zostavenie auta - kolesá
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ájanie (nabíjateľné batérie AA) Možnosť 1/2
Napájanie (nabíjateľné batérie AA) Možnosť 1/2
Napájanie (nabíjateľné batérie AA) Možnosť 1/2
Napájanie (nabíjateľné batérie AA) Možnosť 1/2
Napájanie (nabíjateľné batérie AA) Možnosť 1/2
Napájanie (nabíjateľné batérie AA) Možnosť 1/2
Napájanie (nabíjateľné batérie AA) Možnosť 1/2
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

Napájanie (batérie Li-Po 7,2 V) Možnosť 2/2
Napájanie (batérie Li-Po 7,2 V) Možnosť 2/2
Napájanie (batérie Li-Po 7,2 V) Možnosť 2/2
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

Spájkovanie
Spájkovanie
Spájkovanie
Spájkovanie
Spájkovanie
Spájkovanie
Spájkovanie
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

fotoaparát
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

Spojenie dielov automobilov
Spojenie dielov automobilov
Spojenie súčiastok do auta
Spojenie súčiastok do auta
Spojenie dielov automobilov
Spojenie dielov automobilov

Pre PCB som vyrobil malý stôl z plexiskla

Krok 13: Konfigurácia App.remoteme.org

Konfigurácia aplikácie App.remoteme.org
Konfigurácia aplikácie 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

Konfigurácia RasbperryPi
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í

Kontrola pripojení
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

Pridanie skriptu Python
Pridanie skriptu Python
Pridanie skriptu Python
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ý

Kontrola, či bol skript Python úspešne pridaný
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

Pridanie webovej stránky na ovládanie auta
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

Nakonfigurujte zariadenie WebPage na ovládanie auta 1/2
Nakonfigurujte 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

Nakonfigurujte zariadenie WebPage na ovládanie auta 2/2
Nakonfigurujte 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

Otvorte Centrum ovládania auta
Otvorte Centrum ovládania auta
Otvorte Centrum ovládania auta
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

Konfigurácia kamery 1/2
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

Konfigurácia kamery 2/2
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

Jazda 1/2
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

Jazda 2/2
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

Tablet, mobilné riadenie
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

Otvorte stránku na mobilnom telefóne
Otvorte stránku na mobilnom telefóne
Otvorte stránku na mobilnom telefóne
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

Pridanie servera Turn
Pridanie servera Turn
Pridanie servera Turn
Pridanie servera Turn
Pridanie servera Turn
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

Mobilné riadenie
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: