Kazalo:
- 1. korak: Nekaj informacij o App.remoteme.org
- 2. korak: Kaj je potrebno:
- 3. korak: Povezave
- 4. korak: PCB
- 5. korak: Izhodi iz tiskanega vezja
- 6. korak: Kako bo delovalo
- 7. korak: Sestavljanje avtomobila - kolesa
- 8. korak: Napajanje (baterije za polnjenje AA) Možnost 1/2
- 9. korak: Napajanje (Li-Po 7.2V baterije) Možnost 2/2
- 10. korak: Spajkanje
- 11. korak: Kamera
- Korak 12: Sestavljanje avtomobilskih delov
- Korak: Konfiguracija aplikacije App.remoteme.org
- Korak 14: Konfiguracija RasbperryPi
- Korak: Preverite povezave
- Korak 16: Dodajanje skripta Python
- 17. korak: Preverite, ali je bil Python Script uspešno dodan
- 18. korak: Dodajanje spletne strani v nadzor avtomobila
- Korak 19: Konfigurirajte napravo WebPage za nadzor avtomobila 1/2
- 20. korak: Konfigurirajte napravo WebPage za nadzor avtomobila 2/2
- 21. korak: Odprite Center za nadzor avtomobila
- Korak: Konfiguracija kamere 1/2
- 23. korak: Konfiguracija kamere 2/2
- 24. korak: Vožnja 1/2
- Korak 25: Vožnja 2/2
- Korak 26: Kako deluje
- Korak 27: Tablični računalnik, mobilno krmiljenje
- Korak: Odprite stran na mobilnem telefonu
- Korak 29: Dodajanje strežnika Turn
- 30. korak: mobilno krmiljenje
- 31. korak: Povzetek
Video: Avto RasbperryPi s FPV kamero. Nadzor s spletnim brskalnikom: 31 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Izdelali bomo štirikolesni avtomobil - krmiljenje bo podobno kot v rezervoarju - za obračanje ene strani koles se bo vrtelo z različno hitrostjo kot druga. Pri avtu bo kamera nameščena na posebnem nosilcu, kjer lahko spremenimo položaj kamere. Robota bo nadzoroval spletni brskalnik (chrome ali firefox na namizju ali firefox na mobilnem telefonu), v brskalniku bomo dobili video posnetek s kamero (z le 200 ms zakasnitve), iz brskalnika pa lahko nadzorujemo gibanje avtomobila in položaj kamere. Za lažjo komunikacijo sem uporabil sistem app.remoteme.org, za tovrstne avtomobile pa je pripravljeno tudi upravljanje, zato vam ni treba pisati lastne kode, seveda pa lahko spremenite skripte nove možnosti itd.
Preden priključite napajanje na tiskano vezje, dvakrat preverite vse povezave
1. korak: Nekaj informacij o App.remoteme.org
Sistem ima tri dele
- webapplication - ko gostite svoje nadzorne spletne strani in povezujejo vso komunikacijo
- rasbperryPi program - program, ki pošilja videoposnetke, upravlja vaše python skripte
- knjižnice, kjer najdete razrede, definicije funkcij
Remoteme.org je sistemsko hiter. Povežete vse svoje naprave skupaj, tam lahko gostite svoje spletne strani, si ogledate povezane naprave. Sistem Remoteme.org je bil ustvarjen, da vam pomaga začeti ustvarjati svoje projekte, ne da bi skrbeli za komunikacijo po protokolih, glavna ideja je pošiljanje binarnih sporočil med različnimi napravami, kot so spletne strani, RasbeprryPI, arduino in skripti.
Po drugi strani vam Remoteme.org daje popoln nadzor nad vašimi datotekami. Lahko ga preprosto spremenite tako, da napišete svojo lastno funkcionalnost
Na tej vadnici vam bom pokazal, kako narediti neverjeten projekt skoraj brez pisanja kode.
Na koncu te vadnice sem dal uporabne povezave, ki vam bodo pomagale razumeti sistem remoteme.org.
2. korak: Kaj je potrebno:
- Malina PI Zero W
- Namenska kamera
- 16 -kanalni 12 -bitni PWM/servo gonilnik Adafruit - vmesnik I2C - PCA9685 ali njegov klon
- Dva servo mehanizma, združljiva z držalom kamere
- Držalo za fotoaparat
- Baterije - V vadnici dve možnosti povezave
- H most TB6612FNG, za krmiljenje kolesca
- Datoteke PCB eagle Enostaven je način toplotnega prenosa DC-DC
- Step Down pretvorniški modul DC
- Ohišje robota
3. korak: Povezave
Servo mehanizem za krmiljenje Raspberry pi preko PWM modula in hitrosti motorja s H mostom, ki je povezan z zatiči RasbperryPi, vhod PWM na H most se ustvari z istim modulom, ki sem ga uporabil za servomotorje (ki jih omenjam zgoraj, niso potrebni nobeni logični pretvorniki)
4. korak: PCB
Od tu lahko prenesete datoteke PCB eagle. Poti so debele, zato jih je enostavno narediti s toplotno metodo prenosa
5. korak: Izhodi iz tiskanega vezja
- Vhod PWM za pogonske motorje je treba povezati s 15 -im in 16 -im zatičem modula PWM (zeleni pravokotnik preverite na sliki modula PWM)
- Vhodna moč pogonskih motorjev (preverite, s kakšno največjo napetostjo lahko delujejo vaši motorji)
- Napajanje za modul RasbperryPi in PWM - mora biti natančno
- Izhodi pogonskih motorjev (obstajata dva izhoda, ker bomo združili pogonske motorje)
- Moč servo mehanizmov - prav tako morate preveriti, katera napetost je zanje dobra
- Skakalnik, ki ima trenutno moč s 5. vhoda, bo poganjal tudi motorje, zato ni treba ničesar priključiti na vhod 2
- Mostiček, če je prisoten RasbperryPi bo napajal iz tretjega vhoda - preden postavite mostiček sem, preverite, ali so povezave v redu - ne želite zapisati svojega RPi
- Tu lahko spajkamo kable, saj ne potrebujemo logičnih pretvornikov
6. korak: Kako bo delovalo
V RasbperryPi obstaja skript python, ki uporablja dve knjižnici
- uvoz RPi. GPIO kot GPIO-za zatiče 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (zapis BCM), ki so povezani s H mostom
- uvozite Adafruit_PCA9685 za PWM modul
Zatiči Rpi so povezani na naslednji način: 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) in način upravljanja mostu H (naprej, nazaj, zaustavitev, kratek premor). H most potrebuje tudi dva signala PWM, da lahko nadzorujemo hitrost ali vrtenje motorja. Ker pri projektu že imamo krmilnik PWM (uporabljen za servo), ga bomo uporabili tudi za generiranje PWM za H most.
Modul PWM uporablja komunikacijski protokol I2C. Uporabil sem že pripravljen Adafruit_PCA9685. knjižnica
7. korak: Sestavljanje avtomobila - kolesa
Začeli bomo s priključitvijo pogonskih motorjev na ohišje avtomobila. Levi/stranski motor se povežeta skupaj in oba para povežeta z napajalnim kablom, ki bo kasneje priključen na tiskano vezje. Pomembno opozorilo pri priključitvi motornih koles na vsaki strani se mora vrteti v isto smer.
8. korak: Napajanje (baterije za polnjenje AA) Možnost 1/2
Napisal bom dve možnosti napajanja Avto prvi je iz 10xAA polnilnih baterij Nazadnje sem narisal skakalce rdečih barv, ki jih je treba postaviti.
9. korak: Napajanje (Li-Po 7.2V baterije) Možnost 2/2
Druga možnost je baterija 7,2 LI-PO. V tem primeru imamo 3 napetosti - 5 V za Rpi in modul, 6 V za servomotorje in neposredno iz baterij 7,2 V za pogonske motorje. Moral sem uporabiti dva koraka navzdol
Druga možnost z LI-PO je boljša:
- Baterije imajo večjo kapaciteto - avto bo vozil dlje
- Večja napetost pogonskih motorjev - avto bo vozil hitreje
- Manjša verjetnost, da bi po zagonu motorjev lahko prišlo do velikega padca napetosti in ponovnega zagona RPI.
10. korak: Spajkanje
Na PCB sem dal nekaj distančnikov za PWM modul. Ni kaj pisati, samo poglejte slike, kako vse skupaj spajkati
11. korak: Kamera
povežemo kamero, tukaj je napisano, kako centrirati servo mehanizme pred namestitvijo v držalo kamere, vendar je najkrajša pot, da nežno ročno preverite največji položaj vrtenja in nastavite servomotorje v srednji položaj. Te centrirane servo mehanizme vstavimo v nosilec fotoaparata v srednjem položaju (kamera kaže naravnost kot na fotografiji)
Korak 12: Sestavljanje avtomobilskih delov
Za tiskano vezje sem naredil majhno mizo iz pleksi stekla
Korak: Konfiguracija aplikacije App.remoteme.org
Uporabil sem brezplačen sistem app.remoteme.org, ki vam pomaga pri vzpostavljanju povezav in že ima skripte, ki jih potrebujemo
Na tem navodilu bom le korak za korakom pokazal, kaj je treba narediti za vožnjo avtomobila (tukaj boste našli več podrobnosti)
- Pojdite na https://app.remoteme.org po prijavi Samodejno boste prijavljeni
- odprite zavihek Žeton na levi, nato kliknite »nov žeton«, vnesite ime in kliknite V redu. Pravkar smo ustvarili nov žeton (slika na zaslonu)
- v tem primeru je vrednost žetona: ~ 1_ & p@+BNnZ@A+x8 (vaša bo drugačna;))
Korak 14: Konfiguracija RasbperryPi
na konzoli kit (tukaj, kako nastaviti RPi, vklopite komunikacijo kamere I2c)
git clone git: //github.com/remoteme/remoteme.git
cd daljinski upravljalnik
python3.5 install.py
- Namestitveni program nam bo zastavil nekaj vprašanj za vse odgovore [Y] in potrdil z [enter]
- ko bo namestitev zahtevala žeton, prilepimo (shift+insert) žeton, kopiran iz aplikacije, in Enter
- ime na primer Rpi
- deviceId 1 Vnesite
- po namestitvi - zaženite program
./runme.sh
Korak: Preverite povezave
Vrnimo se na
Na zavihku naprave bomo videli naš povezani RPi (zelena ikona povezave pomeni, da je RPi trenutno povezan)
Korak 16: Dodajanje skripta Python
Zdaj bomo dodali skript python, ki je že pri predlogih, zato nam ni treba ničesar programirati.
Na zavihku naprave odprite meni RasbperryPi in izberite »Dodaj zunanji skript«.
Ko se prikaže novo okno, vnesite podatke, kot je na zgornji sliki
Ne pozabite izbrati predloge "car4wd". Po teh korakih bo remoteme.org v naš RasbperryPi dodal skript python in ga znova zagnal
17. korak: Preverite, ali je bil Python Script uspešno dodan
Na zavihku naprave je treba dodati novo skriptno napravo python in njen ID naprave je 2. V to spletno stran ID naprave bodo poslana sporočila za nadzor avtomobila
18. korak: Dodajanje spletne strani v nadzor avtomobila
na zavihku naprave kliknite »Novo« in nato »Spletna stran«. Dodamo samo še eno napravo - spletno stran, ki jo bomo uporabili za nadzor našega avtomobila. Ker smo na spletni strani uporabili predlogo "car4wdDesktop", so datoteke že skoraj pripravljene za uporabo
Korak 19: Konfigurirajte napravo WebPage za nadzor avtomobila 1/2
Razširite spletno stran na zavihku naprave in kliknite index.html in nato Odpri
20. korak: Konfigurirajte napravo WebPage za nadzor avtomobila 2/2
Odpre se okno, ki ga moramo v našem primeru vnesti deviceId našega python skripta
21. korak: Odprite Center za nadzor avtomobila
Zdaj je čas, da odpremo našo stran in pogledamo, kako deluje. Na zavihku naprave kliknite index.html in nato "Odpri na novem zavihku" Za predogled videa Uporabiti morate brskalnik chrome ali firefox, drugi brskalnik ne podpira v celoti webRTC
Korak: Konfiguracija kamere 1/2
Ko premikamo miško na video območju, bi morala kamera spremeniti položaj in bi morala delovati tako kot v igrah FPS. Verjetno se ne bo pravilno premaknilo
23. korak: Konfiguracija kamere 2/2
Odprite script.js (zavihek naprave razširite spletno stran, kliknite na script.js, nato odprite) in poiščite mesto, ki sem ga prikazal na zaslonu
v mojem primeru je srednji položaj 560 in 430, obseg gibov pa za obe osi 200
S temi številkami morate eksperimentirati, da dobite središče položaja kamere in gladke premike. Če ste uporabili to vadnico, samo kopirajte prilepljene vrednosti
24. korak: Vožnja 1/2
Če pritisnete puščico navzgor na tipkovnici, morajo merilniki spremeniti položaj in avto naj vozi. Če pritisnete puščico navzgor in se avto obrne, morate na mestih na zaslonu dodati/odstraniti minus.
Po tem postopku po pritisku puščice navzgor mora avto voziti naprej in puščica navzdol mora voziti nazaj.
Korak 25: Vožnja 2/2
Zdaj zavijte - pritisnite puščico levo, če avto zavije desno Morate prevrniti kable (preverite zgornjo sliko)
Če ste spajkali te kable, jih lahko spremenite na script.js, samo spremenite vrstni red pošiljanja hitrosti motorjev, prej:
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));
in zdaj se morate z minusi, kot je en korak prej, za pravilno delovanje;). Kot ste verjetno opazili po puščici navzgor, avto ne vozi s polno hitrostjo, da bi se avto hitreje gibal, samo hitro spustite puščico navzgor, ko je v največjem položaju in ponovno pritisnite in pridržite
Korak 26: Kako deluje
Spletna stran pošilja sporočila z devetimi bajti v skript python v obliki:
- 1 bajt enobajtno celo število 1
- 2 -bajtni položaj cele kamere X
- 2 -bajtni celi Y položaj kamere
- 1 -bajtni celoštevni način levega motorja (3 = nazaj, 1 = naprej, 2 = zaustavitev)
- 1 bajt celo število hitrosti levega motorja
- 1 -bajtni celoštevilčni način desnega motorja (3 = nazaj, 1 = naprej, 2 = ustavitev)
- 1 bajtova cela številka desne hitrosti motorja
pošiljanje sporočila poteka v datoteki script.js pri funkciji "sendNow ()"
na RasbperryPi python.py dobi to sporočilo v funkciji "onUserMessage"
Lahko preverite in se malo igrate, da boste vedeli, kaj se dogaja.
opis funkcij razreda tukaj
Korak 27: Tablični računalnik, mobilno krmiljenje
Skrbno dodajamo novo spletno stran, tako kot prejšnjič, zdaj pa izbiramo predlogo "car4wdMobile"
Nato v script.js konfiguriramo vse, kar smo naredili za spletno stran za nadzor namizja. Oblika sporočila je popolnoma enaka, zato nam ni treba spreminjati skripta python.py.
Korak: Odprite stran na mobilnem telefonu
Namesto da se prijavite v svoj račun z mobilnega telefona, samo preglejte QR poljuben URL.
podrobnosti o QR tukaj
Če vaš mobilni nadzor deluje, ko sta RPi in mobile na istem wifiju, vendar ne deluje, če uporabljate mobilni internet, morate dodati strežnik turn, kako to storiti, sem napisal tukaj
Korak 29: Dodajanje strežnika Turn
Včasih (ko ste za NAT ali nekaterimi nastavitvami požarnega zidu) ne morete povezati svojega robota iz drugega omrežja, potem je vaš robot povezan. To ni velika težava in potem morate dodati turn server.
Preizkusil sem strežnik podjetja XIRSYS (brezplačen je za uporabo razvijalcev) in pokazal bom, kako konfigurirati strežnik turn s sistemom XIRSYS
registracija:
global.xirsys.net/dashboard/signup
nato kliknite "plus", da dodate aplikacijo
na desni strani pod "poverilnice statičnega zavoja" imate vse potrebne podatke. Kopirajte ga v datoteko webrtc_streamer.conf in pojdite na
razširite razdelke RaspberryPi
kliknite datoteko webrtc_streamer.conf
kliknite odpri
in dodajte podatke
turn_server = turn_username =
turn_credential =
Ko končate urejanje, bi morali imeti na zaslonu nekaj podobnega.
nato kliknite Shrani in znova zaženite svoj Rpi, tako da v napravi RasbperryPi kliknete meni in izberete ponovni zagon
Po ponovnem zagonu programa RPi si lahko v mobilnem telefonu ogledate predogled videa, tudi če uporabljate mobilni internet.
30. korak: mobilno krmiljenje
pri krogu 1 postavimo levi palec, pri 2 desnem - ni nujno, da je točno na tej točki - spletna stran bo nastavila ničelni položaj tik po dotiku zaslona in s premikanjem palcev (vožnja v levo, položaj desne kamere) lahko nadzorujete tvoj avto
31. korak: Povzetek
Upam, da vam je bila ta vadnica všeč, kot sem že napisala v tej vadnici, je več podrobnosti o tem, kako deluje pod pokrovom.
nekaj povezav:
remoteme.org - domača stran remoteme.org tam najdete dokumentacijo in vaje
FB fanpage - Facebook fanpage najnovejše informacije o remoteme.org
Youtube - nekaj video posnetkov projekta, vaje
Na zdravje, Maciek
Priporočena:
Robotski avto z Bluetooth, kamero in aplikacijo MIT Inventor 2: 12 korakov (s slikami)
Robotski avto z Bluetooth, kamero in aplikacijo MIT Inventor2: Ste si kdaj želeli zgraditi svoj avtomobil? No … to je tvoja priložnost !! V tem navodilu vas bom seznanil s tem, kako narediti avtomobil robota, ki ga upravlja Bluetooth in MIT App Inventor2. Zavedajte se, da sem novinec in da je to moj prvi instuc
Upravljanje 7-segmentnega LED zaslona s spletnim strežnikom ESP8266: 8 korakov (s slikami)
Nadzor 7-segmentnega LED zaslona z uporabo spletnega strežnika ESP8266: Moj projekt ima Nodemcu ESP8266, ki nadzira 7-segmentni prikaz prek strežnika http z uporabo obrazca html
Malinkov rezervoar s spletnim vmesnikom in pretakanjem videa: 8 korakov (s slikami)
Malinkov rezervoar s spletnim vmesnikom in pretakanjem videoposnetkov: videli bomo, kako sem uresničil majhen WiFi tank, ki omogoča daljinsko upravljanje spleta in pretakanje videa. To je vadnica, ki zahteva osnovno znanje o elektronskem in programskem programiranju. Zato sem se odločil
Naredite vohunsko kamero z eno spletno kamero: 6 korakov
Naredite vohunsko kamero z eno spletno kamero: Pozdravljeni, moje ime je Sebastian in to je moj prvi Instructable, moja angleščina je slaba, zato jo bo prevajalec uporabil tako, da bo pustila najboljše, kar je mogoče, če pa mod ali admin to lahko popravi iz že hvala vi zelo! Dobro za ta projekt bomo
Posnemite neverjetne makro slike s katero koli kamero s kamero telefona Še posebej z iPhonom: 6 korakov
Posnemite neverjetne makro slike s katero koli kamero na telefonu s kamero … Še posebej z iPhonom: Ste si kdaj želeli narediti eno od tistih neverjetnih fotografij od blizu … tisto, na kateri piše … WOW!? … s kamero telefona s kamero !? V bistvu je to dodatek za povečanje katere koli kamere telefona s kamero, ki poveča vašo obstoječo lečo kamere, da posname