Sadržaj:

RasbperryPi automobil sa FPV kamerom. Kontrola putem web preglednika: 31 korak (sa slikama)
RasbperryPi automobil sa FPV kamerom. Kontrola putem web preglednika: 31 korak (sa slikama)

Video: RasbperryPi automobil sa FPV kamerom. Kontrola putem web preglednika: 31 korak (sa slikama)

Video: RasbperryPi automobil sa FPV kamerom. Kontrola putem web preglednika: 31 korak (sa slikama)
Video: FPV + стабилизатор = 🔥 #shorts 2024, Novembar
Anonim
Image
Image

Napravit ćemo automobil s 4 vozila - upravljanje će biti slično kao u spremniku - okretanje jedne strane kotača rotirat će se različitom brzinom od druge. Kod auta će biti postavljena kamera na poseban držač gdje možemo promijeniti položaj kamere. Robotom će upravljati web preglednik (chrome ili firefox na radnoj površini ili firefox na mobilnom telefonu), u pregledniku ćemo dobiti video zapis kamere (sa samo 200 ms kašnjenja), a iz preglednika možemo kontrolirati kretanje automobila i položaj kamere. Da bih olakšao komunikaciju, upotrijebio sam sistem app.remoteme.org, postoji i standardna kontrola upravljanja ovom vrstom automobila, tako da ne morate pisati vlastiti kôd, ali naravno možete izmijeniti skripte nove mogućnosti itd.

Prije priključivanja napajanja na PCB, provjerite sve veze

Korak 1: Neke informacije o App.remoteme.org

Sistem ima tri dijela

  • webapplication - kada hostujete svoje kontrolne web stranice i ona povezuje svu komunikaciju
  • rasbperryPi program - program koji šalje video zapise, upravlja vašim python skriptama
  • biblioteke u kojima možete pronaći klase, definicije funkcija

Remoteme.org je sistemski brz Povezujete sve svoje uređaje zajedno, tamo možete ugostiti svoje web stranice, vidjeti povezane uređaje. Sistem Remoteme.org napravljen je kako bi vam pomogao da započnete sa stvaranjem svojih projekata, bez brige oko protokolarne komunikacije, glavna ideja je slanje binarnih poruka između različitih uređaja, poput web stranica, RasbeprryPI, arduino i skripti.

S druge strane, Remoteme.org vam daje potpunu kontrolu nad vašim datotekama. Možete ga lako izmijeniti ispisujući vlastitu funkcionalnost

U ovom tutorijalu ću vam pokazati kako napraviti sjajan projekat zauvijek bez pisanja koda.

Na kraju ovog vodiča stavio sam korisne veze koje će vam pomoći da razumijete sistem remoteme.org.

Korak 2: Šta je potrebno:

Šta je potrebno
Šta je potrebno
Šta je potrebno
Šta je potrebno
  • Malina PI Zero W
  • Namenska kamera
  • Adafruit 16 -kanalni 12 -bitni PWM/servo upravljački program - I2C sučelje - PCA9685 ili njegov klon
  • Dva servo mehanizma kompatibilna sa držačem kamere
  • Držač za kameru
  • Baterije - U vodiču dvije mogućnosti povezivanja
  • H most TB6612FNG, za kontrolu nagiba kotača
  • PCB eagle datoteke Lako je napraviti metodu toplotnog prenosa DC-DC
  • Step Down pretvarački modul DC
  • Robot futrola

Korak 3: Veze

Connections
Connections

Raspberry pi upravlja servo mehanizmom preko PWM modula i brzine motora pomoću H mosta koji je spojen na RasbperryPi pinove, PWM ulaz na H most generira isti modul koji sam koristio za servosisteme (gore spomenute dijelove nisu potrebni logički pretvarači)

Korak 4: PCB

PCB
PCB
PCB
PCB

Datoteke sa PCB eagle -a možete preuzeti odavde. Staze su debele pa je lako napraviti metodom termalnog prenosa

Korak 5: PCB izlazi

PCB izlazi
PCB izlazi
PCB izlazi
PCB izlazi
  1. PWM ulaz za pogonske motore treba spojiti na 15 -ti i 16 -ti pinove PWM modula (provjerite zeleni pravokutnik na slici PWM modula)
  2. Ulazna snaga pogonskih motora (provjerite s kojim maksimalnim naponom vaši motori mogu raditi)
  3. Napajanje za RasbperryPi i PWM modul - mora biti tačno
  4. Izlazi pogonskog motora (postoje dva izlaza jer ćemo upariti pogonske motore)
  5. Snaga servo mehanizama - također morate provjeriti koji je napon dobar za njih
  6. Kratkospojnik, trenutna snaga s 5. ulaza će također napajati pogone motora, tako da nema potrebe ništa povezivati na ulaz 2
  7. Kratkospojnik, ako je prisutan, RasbperryPi će se napajati s trećeg ulaza - prije nego što ovdje postavite kratkospojnik, provjerite jesu li veze u redu - Ne želite spaliti svoj RPi
  8. Omogućavamo lemljenje kabela jer nam ne trebaju logički pretvarači

Korak 6: Kako ide na posao

Na RasbperryPi postoji python skripta koja koristi dvije biblioteke

  • uvoz RPi. GPIO kao GPIO-za pinove 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM oznaka) koji su spojeni na H most
  • uvozite Adafruit_PCA9685 za PWM modul

Rpi pinovi su povezani na sljedeći način 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) i način upravljanja H mosta (naprijed, nazad, zaustavljanje, kratki prekid). H mostu su potrebna i dva PWM signala kako bismo mogli kontrolirati brzinu ili rotaciju motora. Budući da na projektu već imamo PWM kontroler (koristi se za servo), mi ćemo ga koristiti i za generiranje PWM -a za H most.

PWM modul koristi I2C komunikacijski protokol. Koristio sam rad iz kutije Adafruit_PCA9685. biblioteka

Korak 7: Sklapanje automobila - Točkovi

Sklapanje automobila - Točkovi
Sklapanje automobila - Točkovi
Sklapanje automobila - Točkovi
Sklapanje automobila - Točkovi

Počet ćemo od povezivanja pogonskih motora na kućište automobila. Lijevi/bočni motor spojeni su zajedno, a oba para se spajaju na neki kabel za napajanje koji će kasnije biti spojen na PCB. Važna napomena pri povezivanju motora kotači sa svake strane moraju se okretati u istom smjeru.

Korak 8: Napajanje (AA punjive baterije) Opcija 1/2

Napajanje (AA punjive baterije) Opcija 1/2
Napajanje (AA punjive baterije) Opcija 1/2
Napajanje (AA punjive baterije) Opcija 1/2
Napajanje (AA punjive baterije) Opcija 1/2
Napajanje (AA punjive baterije) Opcija 1/2
Napajanje (AA punjive baterije) Opcija 1/2
Napajanje (AA punjive baterije) Opcija 1/2
Napajanje (AA punjive baterije) Opcija 1/2

Napisat ću dvije mogućnosti napajanja Automobil je prvi od 10xAA punjivih baterija. Na kraju sam nacrtao kratkospojnike u crvenim bojama koje je potrebno staviti.

Korak 9: Napajanje (Li-Po baterije od 7,2 V) Opcija 2/2

Napajanje (Li-Po 7.2V baterije) Opcija 2/2
Napajanje (Li-Po 7.2V baterije) Opcija 2/2
Napajanje (Li-Po 7.2V baterije) Opcija 2/2
Napajanje (Li-Po 7.2V baterije) Opcija 2/2

Druga mogućnost je 7,2 LI-PO baterija. U ovom slučaju imamo 3 napona - 5 V za Rpi i modul, 6 V za servo i direktno iz baterija 7,2 V za pogonske motore. Morao sam koristiti dva modula za stepenasto spuštanje

Opcija 2 sa LI-PO je bolja:

  • Baterije imaju veći kapacitet - automobil će voziti duže
  • Veći napon za pogonske motore - automobil će voziti brže
  • Manja je vjerojatnost da bismo nakon lociranja pogonskih motora mogli imati veliki pad napona i RPI se ponovo pokrenuti.

Korak 10: Lemljenje

Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje

Stavio sam na PCB neke odstojnike za PWM modul. Nema šta da se napiše samo pogledajte slike kako sve lemiti zajedno

Korak 11: Kamera

Kamera
Kamera

povezujemo kameru, ovdje je napisano kako centrirati servo mehanizme prije ugradnje u držač kamere, ali najkraći način je lagano ručno provjeriti maksimalni položaj rotacije i postaviti servo u središnji položaj. Ovaj centrirani servo mehanizam stavljamo u držač kamere u središnjem položaju (kamera je usmjerena ravno naprijed kao na fotografiji)

Korak 12: Sastavljanje dijelova automobila

Sastavljanje dijelova automobila
Sastavljanje dijelova automobila
Sastavljanje dijelova automobila
Sastavljanje dijelova automobila
Sastavljanje dijelova automobila
Sastavljanje dijelova automobila

Za PCB sam napravio mali stol od pleksiglasa

Korak 13: Konfiguracija App.remoteme.org

App.remoteme.org Konfiguracija
App.remoteme.org Konfiguracija

Koristio sam besplatni sistem app.remoteme.org koji vam pomaže da uspostavite veze i već ima skripte koje su nam potrebne

Na ovom uputstvu samo ću pokazati korak po korak šta bi trebalo učiniti kako bi vožnja automobilom (ovdje ćete pronaći više detalja)

  • Zapjevajte na https://app.remoteme.org nakon registracije Bit ćete automatski prijavljeni
  • otvorite karticu Token s lijeve strane, zatim kliknite „novi token“unesite neko ime i kliknite U redu, Upravo smo stvorili novi token (slika na ekranu)
  • u ovom primjeru vrijednost tokena je: ~ 1_ & p@+BNnZ@A+x8 (vaše će biti drugačije;))

Korak 14: RasbperryPi konfiguracija

RasbperryPi konfiguracija
RasbperryPi konfiguracija

na konzoli kit (ovdje kako postaviti naš RPi uključite kameru I2c komunikaciju)

git clone git: //github.com/remoteme/remoteme.git

cd remoteme

python3.5 install.py

  • Instalater će nam postaviti nekoliko pitanja za sve odgovore [DA] i potvrditi [enter]
  • kada instalacija zatraži token zalijepimo (shift+insert) token kopiran iz aplikacije i Enter
  • naziv na primjer Rpi
  • deviceId 1 Unesite
  • nakon instalacije - pokrenite program

./runme.sh

Korak 15: Provjerite veze

Provjeravanje veza
Provjeravanje veza

Vratimo se na

Na kartici uređaja vidjet ćemo naš povezani RPi (zelena ikona veze znači da je RPi trenutno povezan)

Korak 16: Dodavanje Python skripte

Dodavanje Python skripte
Dodavanje Python skripte
Dodavanje Python skripte
Dodavanje Python skripte

Sada ćemo dodati python skriptu, koja je već u predlošcima, tako da ne moramo ništa programirati.

Na kartici uređaja otvorite izbornik RasbperryPi i odaberite "Dodaj vanjsku skriptu".

Kada se pojavi novi prozor, pružite informacije kao na gornjoj slici

Ne zaboravite odabrati predložak "car4wd". Nakon ovih koraka, remoteme.org će dodati python skriptu u naš RasbperryPi i ponovo je pokrenuti

Korak 17: Provjerite je li Python skripta uspješno dodana

Provjera je li Python skripta uspješno dodana
Provjera je li Python skripta uspješno dodana

Na kartici Uređaji treba dodati novi Python skriptni uređaj i njegov ID uređaja je 2. Na ovom uređaju Id web stranica će slati poruke kontrolnom automobilu

Korak 18: Dodavanje web stranice za kontrolu automobila

Dodavanje web stranice u Control Car
Dodavanje web stranice u Control Car

na kartici uređaja kliknite "Novo", a zatim "Web stranica". Samo dodajemo još jedan uređaj - webPage kojim ćemo upravljati svojim automobilom. A budući da smo na web stranici koristili predložak "car4wdDesktop" već su datoteke gotovo spremne za upotrebu

Korak 19: Konfigurirajte WebPage uređaj za kontrolu automobila 1/2

Konfigurirajte WebPage uređaj za kontrolu automobila 1/2
Konfigurirajte WebPage uređaj za kontrolu automobila 1/2

Proširite WebPage na kartici uređaja i kliknite index.html, a zatim Otvori

Korak 20: Konfigurirajte WebPage uređaj za kontrolu automobila 2/2

Konfigurirajte WebPage uređaj za kontrolu automobila 2/2
Konfigurirajte WebPage uređaj za kontrolu automobila 2/2

Pojavljuje se prozor i tada moramo navesti deviceId naše python skripte u našem slučaju deviceId je 2. Promijenimo mjesto prikazano na slici

Korak 21: Otvorite Kontrolni centar automobila

Otvorite Centar za kontrolu automobila
Otvorite Centar za kontrolu automobila
Otvorite Centar za kontrolu automobila
Otvorite Centar za kontrolu automobila

Sada je vrijeme da otvorimo našu stranicu i vidimo kako funkcionira. Na kartici uređaja kliknite index.html, a zatim "Otvori na novoj kartici" Da biste dobili pregled videa Morate koristiti preglednik Chrome ili Firefox, drugi preglednik ne podržava u potpunosti webRTC

Korak 22: Konfiguracija kamere 1/2

Konfiguracija kamere 1/2
Konfiguracija kamere 1/2

Kada pomjeramo miša na video područje, kamera bi trebala promijeniti položaj i trebala bi raditi potpuno isto kao u FPS igrama. Vjerovatno se neće pravilno kretati

Korak 23: Konfiguracija kamere 2/2

Konfiguracija kamere 2/2
Konfiguracija kamere 2/2

Otvorite script.js (kartica uređaja proširi web stranicu, zatim kliknite na script.js, a zatim otvorite) i pronađite mjesto koje sam prikazao na ekranu

u mom slučaju središnja pozicija je 560 i 430, a raspon pokreta za obje osi 200

Morate eksperimentirati s ovim brojevima kako biste dobili središte položaja kamere i glatke pokrete. Ako ste koristili ovaj vodič, samo kopirajte zalijepljene zadane vrijednosti

Korak 24: Vožnja 1/2

Vožnja 1/2
Vožnja 1/2

Ako pritisnete strelicu prema gore na tastaturi, mjerači bi trebali promijeniti položaj i automobil bi trebao voziti. Ako pritisnete strelicu “gore” i automobil se okreće, tada morate dodati/ukloniti minus na mjestima na ekranu.

Nakon ove operacije, nakon što je pritisnuta strelica “gore”, automobil bi trebao voziti naprijed, a dolje sa strelicom.

Korak 25: Vožnja 2/2

Vožnja 2/2
Vožnja 2/2

Sada se okrećete - pritisnite strelicu ulijevo ako automobil skreće udesno Morate prevrnuti kablove (provjerite gornju sliku)

Ako ste lemili ove kablove, možete ih promijeniti na script.js, samo promijenite redoslijed slanja brzine motora, prije:

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

nakon:

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 sada se morate igrati s minusima kao jedan korak prije da bi ispravno radio;). Kao što ste vjerojatno primijetili nakon udarca strelicom, automobil ne vozi punom brzinom kako bi se automobil brže kretao, samo brzo otpustite strelicu prema gore kada je u maksimalnom položaju i ponovo pritisnite i držite

Korak 26: Kako funkcionira

Web stranica šalje poruke poruke devetog bajta na python skriptu u formatu:

  • 1 bajt jedan bajt cijela vrijednost 1
  • 2 bajta cijeli broj X kamere
  • 2 bajta cijeli Y položaj kamere
  • 1 bajt cijeli broj lijevi način rada motora (3 = unatrag, 1 = naprijed, 2 = stop)
  • 1 bajt cijeli broj okretaja lijevog motora
  • 1 bajt integer desni način rada motora (3 = unatrag, 1 = naprijed, 2 = stop)
  • 1 bajt cijeli broj desna brzina motora

slanje poruke vrši se u datoteci script.js na funkciji "sendNow ()"

na RasbperryPi python.py prima ovu poruku u funkciji "onUserMessage"

Možete provjeriti i malo se igrati kako biste znali što se događa.

opis funkcija klase ovdje

Korak 27: Tablet, mobilno upravljanje

Tablet, mobilno upravljanje
Tablet, mobilno upravljanje

S velikom pažnjom dodajemo novu web stranicu kao i prethodni put, ali sada odabiremo predložak "car4wdMobile"

Zatim sve konfiguriramo u script.js kao što smo to učinili za web stranicu za kontrolu radne površine. Format poruke je potpuno isti pa ne moramo mijenjati skriptu python.py.

Korak 28: Otvorite stranicu na mobilnom telefonu

Otvorite stranicu na mobilnom telefonu
Otvorite stranicu na mobilnom telefonu
Otvorite stranicu na mobilnom telefonu
Otvorite stranicu na mobilnom telefonu

Umjesto da se prijavite na svoj račun s mobilnog telefona, samo skenirajte QR ogroman url.

detalje o QR -u ovdje

Ako vaša mobilna kontrola radi kada su RPi i mobilni na istom wifi -ju, ali ne radi ako koristite mobilni internet, morate dodati turn turn, kako to učiniti napisao sam ovdje

Korak 29: Dodavanje Turn Servera

Dodavanje Turn Servera
Dodavanje Turn Servera
Dodavanje Turn Servera
Dodavanje Turn Servera
Dodavanje Turn Servera
Dodavanje Turn Servera

Ponekad (kada ste iza NAT -a ili nekih postavki zaštitnog zida) ne možete povezati svog robota s druge mreže, tada je vaš robot povezan. To nije veliki problem i tada morate dodati turn server.

Testirao sam server iz kompanije XIRSYS (besplatan je za razvojne programere) i pokazat ću kako konfigurirati poslužitelj skretanja pomoću XIRSYS sistema

registracija:

global.xirsys.net/dashboard/signup

zatim kliknite "plus" za dodavanje aplikacije

s desne strane pod "static credentials" Imate sve potrebne podatke. Kopirajte ga u datoteku webrtc_streamer.conf da biste to učinili, idite na

proširite RaspberryPi deivces

kliknite datoteku webrtc_streamer.conf

kliknite Otvori

i dodajte informacije

turn_server = turn_username =

turn_credential =

nakon što završite uređivanje trebali biste imati nešto poput na ekranu.

zatim kliknite Spremi i ponovo pokrenite svoj Rpi, klikom na izbornik na RasbperryPi uređaju i odaberite ponovno pokretanje

Nakon ponovnog pokretanja programa RPi možete vidjeti pregled videa na svom mobilnom telefonu čak i ako koristite mobilni internet.

Korak 30: Mobilno upravljanje

Mobilno upravljanje
Mobilno upravljanje

u krug 1 stavljamo palac lijevo, na 2 desno - ne mora biti baš na ovim mjestima - web stranica će postaviti nultu poziciju odmah nakon što dodirnete ekran i pomicanjem palca (vožnja ulijevo, položaj kamere desno) Možete kontrolirati tvoj auto

Korak 31: Sažetak

Nadam se da vam se svidio ovaj vodič, jer sam već napisao u ovom vodiču više detalja o tome kako radi ispod haube.

neki linkovi:

remoteme.org - početna stranica remoteme.org na kojoj se nalaze dokumentacija i vodiči

FB fanpage - Facebook fanpage najnovije informacije o remoteme.org

Youtube - neki video zapisi projekta, vodiči

Živjeli, Maciek

Preporučuje se: