Sadržaj:

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

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

Video: RasbperryPi automobil s FPV kamerom. Upravljanje putem web preglednika: 31 korak (sa slikama)
Video: RC airplane 2024, Studeni
Anonim
Image
Image

Napravit ćemo automobil s 4 pogona - upravljanje će biti slično kao u spremniku - okretanje jedne strane kotača rotirat će se različitom brzinom od druge. Kod automobila bit će 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. Kako bih olakšao komunikaciju, upotrijebio sam sustav app.remoteme.org, također se radi i izvan okvira za upravljanje ovom vrstom automobila, tako da ne morate pisati vlastiti kôd, ali naravno možete izmijeniti skripte i dodati nove mogućnosti itd.

Prije priključivanja napajanja na PCB, provjerite sve veze

Korak 1: Neke informacije o App.remoteme.org

Sustav ima tri dijela

  • webapplication - kada hostirate svoje kontrolne web stranice i povezuje svu komunikaciju
  • rasbperryPi program - program koji šalje video zapise, upravlja vašim python skriptama
  • knjižnice 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. Sustav Remoteme.org napravljen je kako bi vam pomogao da počnete stvarati svoje projekte, 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 jednostavno izmijeniti ispisujući vlastitu funkcionalnost

U ovom tutorijalu pokazat ću vam kako napraviti nevjerojatan projekt gotovo bez pisanja koda.

Na kraju ovog vodiča stavio sam korisne veze koje će vam pomoći razumjeti sustav remoteme.org.

Korak 2: Što je potrebno:

Što je potrebno
Što je potrebno
Što je potrebno
Što je potrebno
  • Malina PI Zero W
  • Namjenska kamera
  • Adafruit 16 -kanalni 12 -bitni PWM/servo upravljački program - I2C sučelje - PCA9685 ili njegov klon
  • Dva servo mehanizma kompatibilna s držačem kamere
  • Držač za kameru
  • Baterije - U vodiču dvije mogućnosti povezivanja
  • H most TB6612FNG, za upravljanje nagibom kotača
  • PCB eagle datoteke Lako je napraviti način toplinskog prijenosa DC-DC
  • Step Down pretvarački modul DC
  • Robotsko kućište

Korak 3: Veze

Veze
Veze

Servo mehanizam za upravljanje malinom pi preko PWM modula i brzine motora pomoću H mosta koji je spojen na RasbperryPi pinove, ulaz PWM na H most generira isti modul koji sam koristio za servomotore (za koje dijelove gore spominjem nisu potrebni logički pretvarači)

Korak 4: PCB

PCB
PCB
PCB
PCB

Datoteke s PCB eagle -a možete preuzeti odavde. Putovi su debeli pa je to lako napraviti metodom toplinskog prijenosa

Korak 5: PCB izlazi

PCB izlazi
PCB izlazi
PCB izlazi
PCB izlazi
  1. PWM ulaz za pogonske motore trebao bi biti spojen 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 toč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 također će pokretati motore pa 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 knjižnice

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

Rpi pinovi povezani su na sljedeći način 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) i način upravljanja H mosta (naprijed, natrag, zaustavljanje, kratki prekid). H mostu trebaju 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), koristit ćemo ga i za generiranje PWM -a za H most.

PWM modul koristi I2C komunikacijski protokol. Koristio sam rad iz kutije Adafruit_PCA9685. knjižnica

Korak 7: Sklapanje automobila - kotači

Sklapanje automobila - Kotači
Sklapanje automobila - Kotači
Sklapanje automobila - Kotači
Sklapanje automobila - Kotači

Počet ćemo od povezivanja pogonskih motora s kućištem automobila. Lijevi/bočni motor spojeni su zajedno, a oba se para spajaju na neki kabel za napajanje koji će kasnije biti spojen na PCB. Važna napomena prilikom povezivanja 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 iz 10xAA punjivih baterija. Zadnju sliku nacrtao sam kratkospojnicima u crvenim bojama koje je potrebno staviti.

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

Napajanje (Li-Po baterije od 7,2 V) Opcija 2/2
Napajanje (Li-Po baterije od 7,2 V) Opcija 2/2
Napajanje (Li-Po baterije od 7,2 V) Opcija 2/2
Napajanje (Li-Po baterije od 7,2 V) 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 izravno iz baterija 7,2 V za pogonske motore. Morao sam koristiti dva stupanjska modula

Opcija 2 s 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 ponovno pokrenuti.

Korak 10: Lemljenje

Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje

Stavio sam na PCB neke razmaknice za PWM modul. Nema se što napisati, samo pogledajte slike kako sve spojiti

Korak 11: Kamera

Fotoaparat
Fotoaparat

spajamo 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č fotoaparata 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 sustav app.remoteme.org koji vam pomaže u povezivanju i već ima skripte koje su nam potrebne

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

  • Pjevajte na https://app.remoteme.org nakon registracije Automatski ćete se prijaviti
  • otvorite karticu Token s lijeve strane, zatim kliknite "novi token" unesite neki naziv i kliknite U redu, Upravo smo stvorili novi token (slika na ekranu)
  • u ovom primjeru vrijednost tokena je: ~ 1_ & p@+BNnZ@A+x8 (vaša će biti drugačija;))

Korak 14: Konfiguracija RasbperryPi

RasbperryPi konfiguracija
RasbperryPi konfiguracija

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

git klon git: //github.com/remoteme/remoteme.git

cd remoteme

python3.5 install.py

  • Instalacijski program postavit će nam 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 ponovno 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đaja trebao bi se dodati novi Python skriptni uređaj, a njegov ID uređaja je 2. Na ovaj uređaj Id web stranica će slati poruke upravljačkom automobilu

Korak 18: Dodavanje web stranice kontrolnom automobilu

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 uređaj WebPage za upravljanje automobilom 1/2

Konfigurirajte uređaj WebPage za upravljanje automobilom 1/2
Konfigurirajte uređaj WebPage za upravljanje automobilom 1/2

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

Korak 20: Konfigurirajte uređaj WebPage za upravljanje automobilom 2/2

Konfigurirajte WebPage uređaj za upravljanje automobilom 2/2
Konfigurirajte WebPage uređaj za upravljanje automobilom 2/2

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

Korak 21: Otvorite Centar za upravljanje automobilom

Otvorite Centar za upravljanje automobilom
Otvorite Centar za upravljanje automobilom
Otvorite Centar za upravljanje automobilom
Otvorite Centar za upravljanje automobilom

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

Korak 22: Konfiguracija kamere 1/2

Konfiguracija kamere 1/2
Konfiguracija kamere 1/2

Kad pomičemo miša na video područje, kamera bi trebala promijeniti položaj i trebala bi raditi točno kao u FPS igrama. Vjerojatno 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 tipkovnici, 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 i 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 kabele (provjerite gornju sliku)

Ako ste lemili ove kabele, možete ih promijeniti na script.js, samo promijenite redoslijed brzine slanja 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 kako bi ispravno radio;). Kao što ste vjerojatno primijetili nakon udarca sa strelicom, automobil ne vozi punom brzinom kako bi se automobil brže kretao, samo brzo pustite strelicu prema gore kada je u maksimalnom položaju i ponovno pritisnite i držite

Korak 26: Kako to funkcionira

Web stranica šalje poruke poruke devetog bajta u 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 = zaustavljanje)
  • 1 bajt cijeli broj okretaja lijevog motora
  • 1 bajt cjelobrojni desni način rada motora (3 = unatrag, 1 = naprijed, 2 = zaustavljanje)
  • 1 bajt cijeli broj desne brzine motora

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

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

Možete to 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 upravljanje radnom površinom. 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 mobitela, samo skenirajte QR bilo koji url.

pojedinosti o QR -u ovdje

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

Korak 29: Dodavanje poslužitelja skretanja

Dodavanje poslužitelja skretanja
Dodavanje poslužitelja skretanja
Dodavanje poslužitelja skretanja
Dodavanje poslužitelja skretanja
Dodavanje poslužitelja skretanja
Dodavanje poslužitelja skretanja

Ponekad (kada ste iza NAT -a ili nekih postavki vatrozida) 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 poslužitelj tvrtke XIRSYS (besplatan je za razvojne programere) i pokazat ću kako konfigurirati poslužitelj skretanja pomoću sustava XIRSYS

Registar:

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širiti RaspberryPi deivces

kliknite datoteku webrtc_streamer.conf

kliknite otvoriti

i dodati podatke

turn_server = turn_username =

turn_credential =

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

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

Nakon ponovnog pokretanja programa RPi na svom mobilnom telefonu možete vidjeti pregled videa č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 točno na ovom mjestu - web stranica će postaviti nulti položaj odmah nakon što dodirnete zaslon, a pomicanjem palca (vožnja lijevo, položaj kamere desno) možete kontrolirati tvoj automobil

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 tamo možete pronaći dokumentaciju i vodiče

FB fanpage - Facebook fanpage najnovije informacije o remoteme.org

Youtube - neki video zapisi projekta, vodiči

Živjeli, Maciek

Preporučeni: