Tartalomjegyzék:

RasbperryPi autó FPV kamerával. Vezérlés webböngészővel: 31 lépés (képekkel)
RasbperryPi autó FPV kamerával. Vezérlés webböngészővel: 31 lépés (képekkel)

Videó: RasbperryPi autó FPV kamerával. Vezérlés webböngészővel: 31 lépés (képekkel)

Videó: RasbperryPi autó FPV kamerával. Vezérlés webböngészővel: 31 lépés (képekkel)
Videó: SiYi A8 mini with Raspberry Pi - it works! 2024, Július
Anonim
Image
Image

Építeni fogunk 4wd autót - a kormányzás hasonló lesz, mint egy tartályban -, hogy a kerekek egyik oldala más sebességgel forogjon, mint a másik. Az autónál a kamera egy speciális tartóba kerül, ahol megváltoztathatjuk a kamera pozícióját. A robotot webböngésző fogja irányítani (asztalon chrome vagy firefox, vagy mobiltelefonon firefox), böngészőben, kamerás videót kapunk (csak 200 ms késéssel), és a böngészőből irányíthatjuk az autó mozgását és kamera pozíciója. A kommunikáció megkönnyítése érdekében az app.remoteme.org rendszert használtam, és az ilyen típusú autók vezérlése is a dobozból történik, tehát nem kell saját kódot írnia, de természetesen módosíthatja a szkripteket új lehetőségek stb.

Mielőtt áramot csatlakoztatna a PCB -hez, ellenőrizze az összes csatlakozást

1. lépés: Néhány információ az App.remoteme.org -ról

A rendszer három részből áll

  • webalkalmazás - amikor a vezérlő weboldalakat tárolja, és összeköti az összes kommunikációt
  • rasbperryPi program - videó küldő program, kezeli a python szkripteket
  • könyvtárak, ahol osztály, függvény definíciókat talál

A Remoteme.org rendszergyors A Remoteme.org rendszert azért hozták létre, hogy segítsen elkezdeni projektjeinek elkészítését, és nem kell aggódnia a protokollos kommunikáció miatt. A fő ötlet bináris üzenetek küldése különböző eszközök, például weblapok, RasbeprryPI, arduino és szkriptek között.

Másrészt a Remoteme.org teljes körű irányítást biztosít a fájlok felett, könnyedén módosíthatja a saját funkcióit

Ebben az oktatóanyagban megmutatom, hogyan készíthetsz el egy fantasztikus projektet bármilyen kód írása nélkül.

Ennek az oktatóanyagnak a végén hasznos linkeket tettem fel, amelyek segítenek megérteni a remoteme.org rendszert.

2. lépés: Amire szükség van:

Ami szükséges
Ami szükséges
Ami szükséges
Ami szükséges
  • Málna PI Zero W
  • Dedikált kamera
  • Adafruit 16 csatornás 12 bites PWM/szervo meghajtó - I2C interfész - PCA9685 vagy annak klónja
  • Két szervo mechanizmus kompatibilis a kamera tartójával
  • Kamera tartó
  • Elemek - Az oktatóanyagban két csatlakoztatási lehetőség
  • H -híd TB6612FNG, a kerekek vezérléséhez
  • PCB sas fájlok Könnyen elkészíthető hőátviteli módszer DC-DC
  • Lépjen le DC átalakító modulról
  • Robot tok

3. lépés: Kapcsolatok

Kapcsolatok
Kapcsolatok

Raspberry pi vezérlő szervo mechanizmus a PWM modulon keresztül és a motor fordulatszáma a H hídon keresztül, amely a RasbperryPi csapokhoz van csatlakoztatva, a PWM bemenet a H hídhoz ugyanazt a modult generálja, amelyet a szervókhoz használtam (mely részeket fent említettem, nincs szükség logikai átalakítókra)

4. lépés: PCB

NYÁK
NYÁK
NYÁK
NYÁK

A PCB sas fájlokat innen töltheti le. Az utak zsírosak, így könnyen elkészíthetőek hőátviteli módszerrel

5. lépés: PCB kimenetek

PCB kimenetek
PCB kimenetek
PCB kimenetek
PCB kimenetek
  1. PWM bemenet a hajtómotorokhoz A PWM modul 15. és 16. érintkezőjéhez kell csatlakoztatni (ellenőrizze a zöld téglalapot a PWM modul képén)
  2. Tápellátás hajtómotorokhoz (ellenőrizze, hogy a motorok mekkora maximális feszültséggel dolgozhatnak)
  3. A RasbperryPi és a PWM modul tápellátásának pontosan kell lennie
  4. Hajtómotor kimenetek (két kimenet van, mert a hajtómotorokat párosítjuk)
  5. Szervo mechanizmusok teljesítménye - szintén ellenőriznie kell, hogy milyen feszültség jó nekik
  6. A jelenlegi teljesítményét az 5. bemenetről áthidalva a motorokat is hajtja, így nem kell semmit csatlakoztatni a 2. bemenethez
  7. Átkötő, ha van A RasbperryPi a 3. bemenetről kap áramot - mielőtt ide helyezi az áthidalót, ellenőrizze, hogy a csatlakozók rendben vannak -e - Nem akarja elégetni az RPi -jét
  8. Itt forraszthatjuk a kábeleket, mivel nincs szükségünk logikai átalakítókra

6. lépés: Hogyan működik

A RasbperryPi -n van egy python szkript, amely két könyvtárat használ

  • RPi. GPIO importálása GPIO-ként-25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM jelölés) csapokhoz, amelyek a H hídhoz vannak csatlakoztatva
  • importálja az Adafruit_PCA9685 -öt a PWM modulhoz

Az Rpi csapok a következők szerint csatlakoznak: 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) és a H híd vezérlési módja (előre, hátra, leállítás, rövid szünet). A H hídnak két PWM jelre is szüksége van, így szabályozhatjuk a sebességet vagy a motor forgását. Mivel a projektnél már rendelkezünk PWM vezérlővel (szervóhoz), azt is felhasználjuk PWM generálására a H bridge számára.

A PWM modul I2C kommunikációs protokollt használ. Az Adafruit_PCA9685 dobozból való kivitelezést használtam. könyvtár

7. lépés: Autószerelés - kerekek

Autószerelés - kerekek
Autószerelés - kerekek
Autószerelés - kerekek
Autószerelés - kerekek

Kezdjük a hajtómotorok csatlakoztatásával az autóházhoz. A bal/oldalsó motorok összekapcsolódnak, és mindkettő párosul egy tápkábelhez, amelyet később a NYÁK -hoz csatlakoztatnak. Fontos megjegyzés a motorok összekötésekor mindkét oldalon a kerekeknek azonos irányban kell forogniuk.

8. lépés: Tápellátás (AA újratölthető elemek) Opció 1/2

Tápellátás (AA újratölthető elemek) Opció 1/2
Tápellátás (AA újratölthető elemek) Opció 1/2
Tápellátás (AA újratölthető elemek) Opció 1/2
Tápellátás (AA újratölthető elemek) Opció 1/2
Tápellátás (AA újratölthető elemek) Opció 1/2
Tápellátás (AA újratölthető elemek) Opció 1/2
Tápellátás (AA újratölthető elemek) Opció 1/2
Tápellátás (AA újratölthető elemek) Opció 1/2

Írok kétféle áramellátási lehetőséget Az első autó 10xAA újratölthető elemekből áll. Végül a képen piros színű jumpereket rajzoltam, amelyeket fel kell helyezni.

9. lépés: Tápellátás (7,2 V-os Li-Po akkumulátorok) 2/2. Opció

Tápellátás (7,2 V-os Li-Po akkumulátorok) 2/2. Opció
Tápellátás (7,2 V-os Li-Po akkumulátorok) 2/2. Opció
Tápellátás (7,2 V-os Li-Po akkumulátorok) 2/2. Opció
Tápellátás (7,2 V-os Li-Po akkumulátorok) 2/2. Opció

A második lehetőség a 7,2 LI-PO akkumulátor. Ebben az esetben 3 feszültséget kaptunk - 5 V Rpi -hez és modulhoz, 6 V szervókhoz és közvetlenül akkumulátorokból 7,2 V -hoz hajtott motorokhoz. Két lefelé lépő modult kellett használnom

A 2. lehetőség LI-PO-val jobb:

  • Az akkumulátorok nagyobb kapacitással rendelkeznek - az autó tovább fog vezetni
  • Nagyobb feszültség a hajtómotoroknál - az autó gyorsabban fog haladni
  • Kisebb annak a valószínűsége, hogy miután a hajtómotorok elkezdenek elhelyezkedni, hatalmas feszültségcsökkenés és RPI újraindulhat.

10. lépés: Forrasztás

Forrasztás
Forrasztás
Forrasztás
Forrasztás
Forrasztás
Forrasztás
Forrasztás
Forrasztás

A NYÁK -ra tettem néhány távtartót a PWM modulhoz. Nincs mit írni, csak nézze meg a képeket, hogyan lehet mindent összeforrasztani

11. lépés: Kamera

Kamera
Kamera

csatlakoztatjuk a kamerát, itt van leírva, hogyan kell a szervómechanizmusokat középre helyezni, mielőtt a kameratartóba szereljük, de a legrövidebb módja az, hogy óvatosan manuálisan ellenőrizze a maximális forgási helyzetet, és állítsa a szervókat középső helyzetbe. Ezeket a központosított szervomechanizmusokat a kamera tartójába helyezzük a középső helyzetbe (a kamera egyenesen előre mutat, mint a fényképen)

12. lépés: Az autók alkatrészeinek összerakása

Az autók alkatrészeinek összerakása
Az autók alkatrészeinek összerakása
Az autók alkatrészeinek összerakása
Az autók alkatrészeinek összerakása
Az autók alkatrészeinek összerakása
Az autók alkatrészeinek összerakása

NYÁK -hoz készítettem egy kis plexi asztalt

13. lépés: App.remoteme.org konfiguráció

App.remoteme.org konfiguráció
App.remoteme.org konfiguráció

Az ingyenes app.remoteme.org rendszert használtam, amely segít a kapcsolatok létrehozásában, és már rendelkezik szkriptekkel, amelyekre szükségünk van

Ezen a tanulságos lépésenként megmutatom, mit kell tenni az autóvezetés érdekében (itt további részleteket talál)

  • Regisztráció után énekeljen a https://app.remoteme.org oldalon. Automatikusan bejelentkezik
  • nyissa meg a Token lapot a bal oldalon, majd kattintson az „új token” elemre, és adjon nevet, majd kattintson az OK gombra. Most hoztunk létre új tokent (kép a képernyőn)
  • ebben a példában a token értéke: ~ 1_ & p@+BNnZ@A+x8 (a tiéd más lesz;))

14. lépés: A RasbperryPi konfigurálása

RasbperryPi konfiguráció
RasbperryPi konfiguráció

a gitt konzolon (itt állíthatjuk be, hogyan állítsuk be az RPi kapcsolót a kamera I2c kommunikációjához)

git klón git: //github.com/remoteme/remoteme.git

cd távoli

python3.5 install.py

  • Az Instalator feltesz néhány kérdést minden válaszunkra, és megerősíti az [enter] gombbal
  • amikor a telepítés tokent kér, beillesztjük (shift+beszúr) az alkalmazásból másolt tokent és az Enter billentyűt
  • a név például Rpi
  • deviceId 1 Lépjen be
  • telepítés után - futtassa a programot

./runme.sh

15. lépés: A kapcsolatok ellenőrzése

Csatlakozások ellenőrzése
Csatlakozások ellenőrzése

Térjünk vissza a https://app.remoteme.org oldalra

Az Eszközök lapon látni fogjuk a csatlakoztatott RPi -t (a zöld link ikon azt jelenti, hogy az RPi jelenleg csatlakoztatva van)

16. lépés: Python -szkript hozzáadása

Python szkript hozzáadása
Python szkript hozzáadása
Python szkript hozzáadása
Python szkript hozzáadása

Most hozzáadunk egy python szkriptet, amely már megtalálható a sablonokban, így nem kell semmit programoznunk.

Az Eszközök lapon nyissa meg a RasbperryPi menüt, és válassza a "Külső szkript hozzáadása" lehetőséget.

Amikor megjelenik az új ablak, adja meg a fenti képen látható információkat

Ne felejtse el kiválasztani a "car4wd" sablont. Ezen lépések után a remoteme.org hozzáadja a python parancsfájlt a RasbperryPi -hez, és újraindítja

17. lépés: A Python -szkript sikeres hozzáadásának ellenőrzése

Annak ellenőrzése, hogy a Python -szkript sikeresen hozzáadásra került -e
Annak ellenőrzése, hogy a Python -szkript sikeresen hozzáadásra került -e

Az Eszközök lapon új python -szkript -eszközt kell hozzáadni, és az eszköz -azonosítója 2. Az eszköz azonosítója weboldal üzeneteket küld az autó vezérlőjének

18. lépés: Weboldal hozzáadása a vezérlőautóhoz

Weboldal hozzáadása a Control Carhoz
Weboldal hozzáadása a Control Carhoz

az eszközök lapon kattintson az "Új", majd a "Weboldal" gombra. Csak hozzáadunk egy másik eszközt - a weblapot, amelyet az autónk irányítására használunk. És mivel a weboldalon a "car4wdDesktop" sablont használtuk, a fájlok már majdnem használatra készek

19. lépés: Állítsa be a WebPage eszközt az autó vezérléséhez 1/2

Állítsa be a WebPage eszközt az autó vezérléséhez 1/2
Állítsa be a WebPage eszközt az autó vezérléséhez 1/2

Bontsa ki a Weblapot az eszköz lapon, és kattintson az index.html, majd a Megnyitás gombra

20. lépés: A WebPage eszköz beállítása az autó 2/2 vezérlésére

A WebPage eszköz beállítása az autó vezérlésére 2/2
A WebPage eszköz beállítása az autó vezérlésére 2/2

Megjelenik az ablak, majd meg kell adnunk a DeviceId -t a python -szkriptünkből a mi eszközünkId értéke 2. Változtassuk meg a képen látható helyet

21. lépés: Nyissa meg az Autóvezérlő Központot

Nyissa meg az Autóvezérlő Központot
Nyissa meg az Autóvezérlő Központot
Nyissa meg az Autóvezérlő Központot
Nyissa meg az Autóvezérlő Központot

Itt az ideje, hogy nyissa meg oldalunkat, és nézze meg, hogyan működik. Az eszköz lapon kattintson az index.html, majd a „Megnyitás új lapon” lehetőségre A videó előnézetének megtekintéséhez Chrome vagy Firefox böngészőt kell használnia, más böngésző nem támogatja teljes mértékben a webRTC -t

22. lépés: Kamera konfigurálása 1/2

Kamera konfiguráció 1/2
Kamera konfiguráció 1/2

Amikor az egeret mozgatjuk a videoterületen, a kamerának változtatnia kell a pozícióját, és pontosan úgy kell működnie, mint az FPS játékoknál. Valószínűleg nem fog megfelelően mozogni

23. lépés: A kamera konfigurálása 2/2

Kamera konfiguráció 2/2
Kamera konfiguráció 2/2

Nyissa meg a script.js -t (az Eszközök lap bontsa ki a weboldalt, majd kattintson a script.js -re, majd nyissa meg), és keresse meg azt a helyet, amelyet a képernyőn mutattam

az én esetemben a középső pozíció 560 és 430, a mozgástartomány mindkét tengelyre 200

Kísérleteznie kell ezekkel a számokkal, hogy megkapja a kamera pozíciójának középpontját és a sima mozgásokat, Ha ezt az oktatóanyagot használta, csak másolja be a beillesztett megadott értékeket

24. lépés: Vezetés 1/2

Vezetés 1/2
Vezetés 1/2

Ha u megnyomja a billentyűzeten a felfelé mutató nyilat, a mérőműszereknek változtatniuk kell a pozíciójukat, és az autónak vezetnie kell. Ha megnyomja a „fel” nyilat, és az autó forog, akkor hozzá kell adnia/eltávolítania a mínuszt a képernyőn.

Ezen művelet után a „fel” nyíl megnyomása után az autónak előre kell haladnia, a lefelé mutató nyílnak pedig hátra.

25. lépés: Vezetés 2/2

Vezetés 2/2
Vezetés 2/2

Most fordul - nyomja meg a bal nyilat, ha az autó jobbra fordul Kábeleket kell fordítani (ellenőrizze a fenti képet)

Ha forrasztja ezeket a kábeleket, akkor a script.js oldalon módosíthatja, csak módosítsa a motorok sebességének küldési sorrendjét, előtt:

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));

után:

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));

és most meg kell játszani a mínuszokkal, mint egy lépéssel azelőtt, hogy megfelelően működjön;). Amint azt valószínűleg észrevette, miután felütötte a nyilat, az autó nem hajt teljes sebességgel, hogy az autó gyorsabban mozogjon, csak gyorsan engedje felfelé a nyilat, amikor a maximális helyzetben van és nyomja meg újra és tartsa lenyomva

26. lépés: Hogyan működik?

A weboldal 9. bájtos üzeneteket küld a python parancsfájlba a következő formátumban:

  • 1 bájt egy bájtos egész érték 1
  • 2 bájtos egész X kamera pozíció
  • 2 bájtos egész Y kamera pozíció
  • 1 bájtos egész bal motor üzemmód (3 = hátra, 1 = előre, 2 = leállítás)
  • 1 bájtos egész bal motor fordulatszám
  • 1 bájtos egész motoros üzemmód (3 = hátra, 1 = előre, 2 = leállítás)
  • 1 bájtos egész motor jobb fordulatszáma

az üzenet küldése a script.js fájlban történik a "sendNow ()" függvényben

a RasbperryPi webhelyen a python.py ezt az üzenetet kapja az "onUserMessage" függvényben

Megnézheti és játszhat egy kicsit, így tudja, mi történik.

osztály funkcióinak leírása itt

27. lépés: Táblagép, mobil kormányzás

Táblagép, mobil kormányzás
Táblagép, mobil kormányzás

Kiválóan adunk hozzá új weboldalt, mint korábban, de most a "car4wdMobile" sablont választjuk

Ezután mindent konfigurálunk a script.js fájlban, mint az asztali vezérlő weboldalon. Az üzenet formátuma pontosan ugyanaz, így nem kell módosítanunk a python.py parancsfájlt.

28. lépés: Nyissa meg az oldalt a mobiltelefonon

Nyissa meg az oldalt a mobiltelefonon
Nyissa meg az oldalt a mobiltelefonon
Nyissa meg az oldalt a mobiltelefonon
Nyissa meg az oldalt a mobiltelefonon

Ahelyett, hogy mobilról bejelentkezne a fiókjába, csak szkennelje be a QR -azonosító URL -jét.

a QR részletei itt

Ha a mobilvezérlés működik, amikor az RPi és a mobil ugyanazon a wifi -n van, de nem működik, ha mobilinternetet használ, akkor hozzá kell adnia a turn szervert, hogyan kell ezt megtenni

29. lépés: A Turn Server hozzáadása

Turn Server hozzáadása
Turn Server hozzáadása
Turn Server hozzáadása
Turn Server hozzáadása
Turn Server hozzáadása
Turn Server hozzáadása

Néha (amikor a NAT vagy néhány tűzfalbeállítás mögött van) Nem tudja csatlakoztatni robotját más hálózatról, akkor a robot csatlakoztatva van. Ez nem nagy probléma, és akkor hozzá kell adnia a turn szervert.

Kipróbáltam a XIRSYS cég szerverét (ingyenes fejlesztői használatra), és megmutatom, hogyan kell konfigurálni a turn szervert az XIRSYS rendszer használatával

Regisztráció:

global.xirsys.net/dashboard/signup

majd kattintson a "plusz" gombra az alkalmazás hozzáadásához

jobb oldalon a "statikus forduló hitelesítő adatok" alatt van minden szükséges adat. Másolja át a webrtc_streamer.conf fájlba, hogy megtehesse ezt:

kiterjesztés RaspberryPi deivces

kattintson a webrtc_streamer.conf fájlra

kattintson a megnyitásra

és adjunk hozzá információkat

turn_server = turn_username =

turn_credential =

a szerkesztés befejezése után Valami hasonlónak kell lennie a képernyőn.

majd kattintson a Mentés és indítsa újra a Rpi -t a RasbperryPi eszköz menüjére kattintva, és válassza az újraindítást

Az RPi program újraindítása után akkor is megtekintheti a videó előnézetét a mobiltelefonján, ha mobilinternetet használ.

30. lépés: Mobil kormányzás

Mobil kormányzás
Mobil kormányzás

az 1. körnél a bal hüvelykujjat, a 2 jobbra helyezzük - nem kell pontosan ezen a ponton lennie - a weboldal nulla pozíciót állít be közvetlenül az érintőképernyő megérintése után, és a hüvelykujja mozgatásával (bal vezetés, jobb kamera helyzet) az autód

31. lépés: Összefoglalás

Remélem tetszett ez az oktatóanyag, ahogy korábban írtam ezen az oktatóanyagon, részletesebben olvasható arról, hogyan működik a motorháztető alatt.

néhány link:

remoteme.org - a remoteme.org honlapja Dokumentációkat és oktatóanyagokat talál

FB rajongói oldal - Facebook rajongói oldal legújabb információi a remoteme.org -ról

Youtube - néhány videó a projektről, oktatóanyagok

Egészségére, Maciek

Ajánlott: