Satura rādītājs:
- 1. darbība. Informācija par vietni App.remoteme.org
- 2. darbība: kas nepieciešams:
- 3. darbība. Savienojumi
- 4. solis: PCB
- 5. solis: PCB izejas
- 6. darbība: kā tas darbosies
- 7. solis: automašīnas salikšana - riteņi
- 8. solis: barošana (AA uzlādējamās baterijas) Opcija 1/2
- 9. solis. Jauda (7,2 V Li-Po baterijas) 2/2. Iespēja
- 10. solis: lodēšana
- 11. solis: kamera
- 12. solis: automašīnu detaļu salikšana kopā
- 13. darbība. App.remoteme.org konfigurācija
- 14. darbība: RasbperryPi konfigurācija
- 15. darbība. Savienojumu pārbaude
- 16. darbība: Python skripta pievienošana
- 17. darbība. Pārbaudiet, vai Python skripts tika pievienots veiksmīgi
- 18. darbība. Tīmekļa lapas pievienošana vadības automašīnai
- 19. darbība: konfigurējiet tīmekļa lapas ierīci, lai vadītu automašīnu 1/2
- 20. darbība. WebPage ierīces konfigurēšana automašīnas vadīšanai 2/2
- 21. darbība. Atveriet automašīnas vadības centru
- 22. darbība: kameras konfigurācija 1/2
- 23. darbība: kameras konfigurēšana 2/2
- 24. solis: braukšana 1/2
- 25. solis: braukšana 2/2
- 26. darbība. Kā tas darbojas
- 27. darbība: planšetdators, vadība mobilajās ierīcēs
- 28. darbība. Atveriet lapu mobilajā tālrunī
- 29. solis: Turn servera pievienošana
- 30. darbība: vadība mobilajā tālrunī
- 31. darbība. Kopsavilkums
Video: RasbperryPi automašīna ar FPV kameru. Vadība, izmantojot tīmekļa pārlūkprogrammu: 31 darbība (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Mēs uzbūvēsim 4wd automašīnu - stūres iekārta būs līdzīga kā tvertnē -, lai pagrieztu vienu riteņu pusi, tas griezīsies ar citu ātrumu nekā cits. Automašīnā kamera tiks novietota uz īpaša turētāja, kur varēsim mainīt kameras pozīciju. Robotu vadīs tīmekļa pārlūkprogramma (hroms vai Firefox galddatorā vai Firefox mobilajā tālrunī), pārlūkprogrammā, mēs iegūsim video ar kameru (tikai ar 200 ms latentumu), un no pārlūkprogrammas mēs varam kontrolēt automašīnas kustības un kameras stāvoklis. Lai atvieglotu saziņu, esmu izmantojis sistēmu app.remoteme.org, un tiek veikta arī šāda veida automašīnu vadība, tāpēc jums nav jāraksta savs kods, bet, protams, varat mainīt skriptus. jaunas iespējas utt.
Pirms strāvas pievienošanas PCB, lūdzu, vēlreiz pārbaudiet visus savienojumus
1. darbība. Informācija par vietni App.remoteme.org
Sistēmai ir trīs daļas
- tīmekļa lietojumprogramma - kad jūs mitināt savas kontroles tīmekļa lapas un tas saista visu saziņu
- programma rasbperryPi - programma, kas sūta video, pārvalda jūsu python skriptus
- bibliotēkas, kurās atrodamas klases, funkciju definīcijas
Remoteme.org ir ātra sistēma. Jūs savienojat visas savas ierīces kopā, varat tur mitināt savas tīmekļa lapas, skatīt savienotās ierīces. Sistēma Remoteme.org tika izveidota, lai palīdzētu jums sākt veidot savus projektus, neraizējoties par protokola sakariem, galvenā ideja ir nosūtīt binārus ziņojumus starp dažādām ierīcēm, piemēram, tīmekļa lapām, RasbeprryPI, arduino un skriptiem.
No otras puses, Remoteme.org sniedz jums pilnīgu kontroli pār jūsu failiem, varat to viegli mainīt, rakstot savu funkcionalitāti
Šajā apmācībā es jums parādīšu, kā izveidot lielisku projektu, nerakstot kodu.
Šīs apmācības beigās esmu ievietojis noderīgas saites, kas palīdzēs jums izprast sistēmu remoteme.org.
2. darbība: kas nepieciešams:
- Aveņu PI Zero W
- Īpaša kamera
- Adafruit 16 kanālu 12 bitu PWM/servo draiveris - I2C saskarne - PCA9685 vai tā klons
- Divi servo mehānismi, kas savietojami ar kameras turētāju
- Kameras turētājs
- Baterijas - apmācībā divas savienojuma iespējas
- H tilts TB6612FNG, lai kontrolētu riteņa ratu
- PCB ērgļa faili To ir viegli padarīt par termopārneses metodi DC-DC
- Step Down pārveidotāja modulis DC
- Robota futrālis
3. darbība. Savienojumi
Raspberry pi vadības servo mehānisms, izmantojot PWM moduli, un motora ātrums, izmantojot H tiltu, kas ir savienots ar RasbperryPi tapām, PWM ievadi H tiltam ģenerē tas pats modulis, kuru izmantoju servos (kuras daļas es minēju iepriekš, nav nepieciešami loģiskie pārveidotāji)
4. solis: PCB
Jūs varat lejupielādēt PCB ērgļa failus no šejienes. Ceļi ir tauki, tāpēc to ir viegli izgatavot ar termiskās pārneses metodi
5. solis: PCB izejas
- PWM ieeja piedziņas motoriem jāpievieno PWM moduļa 15. un 16. tapai (pārbaudiet zaļo taisnstūri PWM moduļa attēlā)
- Jaudas ieeja piedziņas motoriem (pārbaudiet, ar kādu maksimālo spriegumu var darboties jūsu motori)
- Jaudai RasbperryPi un PWM modulim - jābūt precīzi
- Piedziņas motora izejas (ir divas izejas, jo mēs savienosim pārī piedziņas motorus)
- Servo mehānismu jauda - arī jums ir jāpārbauda, kāds spriegums viņiem ir labs
- Džemperis ar pašreizējo jaudu no piektās ieejas darbinās arī dzinējus, tāpēc nav nepieciešams neko pievienot pie 2. ieejas
- Džemperis, ja tas ir pieejams
- Ļauj lodēt šeit kabeļus, jo mums nav nepieciešami loģiskie pārveidotāji
6. darbība: kā tas darbosies
Vietnē RasbperryPi ir python skripts, kas izmanto divas bibliotēkas
- importēt RPi. GPIO kā GPIO-tapām 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM apzīmējums), kas ir savienotas ar H tiltu
- importēt Adafruit_PCA9685 PWM modulim
RPI tapas ir savienotas šādi: 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) un H tilta vadības režīms (uz priekšu, atpakaļ, apstāšanās, īss pārtraukums). H tiltam nepieciešami arī divi PWM signāli, lai mēs varētu kontrolēt ātrumu vai motora rotāciju. Tā kā projektā mums jau ir PWM kontrolieris (izmantots servo), mēs to izmantosim arī, lai ģenerētu PWM H tiltam.
PWM modulis izmanto I2C sakaru protokolu. Esmu izmantojis darbu no kastes Adafruit_PCA9685. bibliotēka
7. solis: automašīnas salikšana - riteņi
Mēs sāksim no piedziņas motoru savienošanas ar automašīnas korpusu. Kreisās/sānu puses motori savienojas kopā un abi savienojas ar kādu strāvas kabeli, kas vēlāk tiks pievienots PCB. Svarīga piezīme, savienojot motoru riteņus katrā pusē, jāgriežas vienā virzienā.
8. solis: barošana (AA uzlādējamās baterijas) Opcija 1/2
Es uzrakstīšu divas jaudas iespējas Automašīna pirmā ir no 10xAA uzlādējamām baterijām.
9. solis. Jauda (7,2 V Li-Po baterijas) 2/2. Iespēja
Otra iespēja ir 7,2 LI-PO akumulators. Šajā gadījumā mēs saņēmām 3 spriegumus - 5v Rpi un modulim, 6V servos un tieši no akumulatoriem 7,2 volti piedziņas motoriem. Man bija jāizmanto divi atkāpšanās moduļi
2. variants ar LI-PO ir labāks:
- Baterijām ir lielāka ietilpība - automašīna brauks ilgāk
- Lielāks spriegums piedziņas motoriem - automašīna brauks ātrāk
- Mazāka varbūtība, ka pēc piedziņas motoru atrašanās vietas noteikšanas mums varētu būt milzīgs sprieguma kritums un RPI restartēšana.
10. solis: lodēšana
Esmu ievietojis PCB dažus starplikas PWM modulim. Nav ko rakstīt, vienkārši apskatiet attēlus, kā visu salodēt kopā
11. solis: kamera
mēs pievienojam kameru, šeit ir rakstīts, kā centrēt servo mehānismus pirms uzstādīšanas kameras turētājā, bet īsākais veids ir maigi manuāli pārbaudīt maksimālo rotācijas stāvokli un iestatīt servos centrālajā stāvoklī. Šos centrētos servo mehānismus mēs ievietojām kameras turētājā centrā (kamera ir vērsta taisni uz priekšu kā uz fotoattēlu)
12. solis: automašīnu detaļu salikšana kopā
PCB esmu izveidojis nelielu plexiglass galdu
13. darbība. App.remoteme.org konfigurācija
Esmu izmantojis bezmaksas sistēmu app.remoteme.org, kas palīdz jums izveidot savienojumus, un tai jau ir vajadzīgie skripti
Šajā pamācībā es tikai soli pa solim parādīšu, kas būtu jādara, lai brauktu ar automašīnu (šeit atradīsit sīkāku informāciju)
- Pēc reģistrēšanās dziediet vietnē https://app.remoteme.org. Jūs tiksiet automātiski pierakstīts
- kreisajā pusē atveriet cilni Token, pēc tam noklikšķiniet uz “new token”, norādiet nosaukumu un noklikšķiniet uz OK, mēs tikko izveidojām jaunu marķieri (attēls ekrānā)
- šajā piemērā marķiera vērtība ir: ~ 1_ & p@+BNnZ@A+x8 (jūsu būs atšķirīga;))
14. darbība: RasbperryPi konfigurācija
špakteles konsolē (šeit ir norādīts, kā iestatīt RPi, lai ieslēgtu kameras I2c sakarus)
git klons git: //github.com/remoteme/remoteme.git
cd tālvadība
python3.5 install.py
- Instalētājs uzdos mums dažus jautājumus par visām atbildēm [Y] un apstiprinās ar [enter]
- kad instalēšana prasīs marķieri, mēs ielīmēsim (shift+insert) no lietojumprogrammas nokopēto marķieri un Enter
- nosaukums, piemram, Rpi
- deviceId 1 Ievadiet
- pēc instalēšanas - palaidiet programmu
./runme.sh
15. darbība. Savienojumu pārbaude
Atgriezīsimies vietnē
Cilnē Ierīces mēs redzēsim mūsu savienotos RPi (zaļā saites ikona nozīmē, ka RPi ir savienots tieši tagad)
16. darbība: Python skripta pievienošana
Tagad mēs pievienosim python skriptu, kas jau ir veidnēs, tāpēc mums nekas nav jāprogrammē.
Cilnē Ierīces atveriet RasbperryPi izvēlni un izvēlieties "Pievienot ārēju skriptu".
Kad parādās jauns logs, sniedziet informāciju, kā parādīts iepriekš
Neaizmirstiet izvēlēties veidni "car4wd". Pēc šīm darbībām remoteme.org mūsu RasbperryPi pievienos python skriptu un restartēs to
17. darbība. Pārbaudiet, vai Python skripts tika pievienots veiksmīgi
Cilnē Ierīces jāpievieno jauna python skripta ierīce, un tās deviceId ir 2. Šajā ierīces ID tīmekļa lapā tiks nosūtīti ziņojumi automašīnas vadībai
18. darbība. Tīmekļa lapas pievienošana vadības automašīnai
cilnē Ierīces noklikšķiniet uz "Jauns" un pēc tam uz "Tīmekļa lapa". Mēs vienkārši pievienojam vēl vienu ierīci - webPage, kuru mēs izmantosim, lai kontrolētu savu automašīnu. Tā kā tīmekļa vietnē mēs izmantojām veidni "car4wdDesktop", faili jau ir gandrīz gatavi lietošanai
19. darbība: konfigurējiet tīmekļa lapas ierīci, lai vadītu automašīnu 1/2
Cilnē Ierīce izvērsiet WebPage un noklikšķiniet uz index.html, pēc tam - Atvērt
20. darbība. WebPage ierīces konfigurēšana automašīnas vadīšanai 2/2
Parādās logs, tad mums ir jāiesniedz mūsu python skripta deviceId mūsu gadījumā deviceId ir 2. Mainīsim attēlā redzamo vietu
21. darbība. Atveriet automašīnas vadības centru
Tagad ir pienācis laiks atvērt mūsu lapu un redzēt, kā tā darbojas. Cilnē Ierīce noklikšķiniet uz index.html un pēc tam uz "Atvērt jaunā cilnē" Lai iegūtu video priekšskatījumu, jums ir jāizmanto pārlūks Chrome vai Firefox, citu pārlūkprogramma pilnībā neatbalsta webRTC
22. darbība: kameras konfigurācija 1/2
Pārvietojot peli pie video zonas, kamerai vajadzētu mainīt pozīciju, un tai vajadzētu darboties tieši tāpat kā FPS spēlēs. Tas, iespējams, nepārvietosies pareizi
23. darbība: kameras konfigurēšana 2/2
Atveriet script.js (cilne Ierīces izvērsiet tīmekļa lapu, pēc tam noklikšķiniet uz script.js, pēc tam atveriet) un atrodiet vietu, ko parādīju ekrānā
manā gadījumā centrālā pozīcija ir 560 un 430, un kustību diapazons ir abām asīm 200
Jums ir jāeksperimentē ar šiem skaitļiem, lai iegūtu kameras pozīcijas centru un vienmērīgas kustības. Ja izmantojāt šo apmācību, vienkārši kopējiet ielīmētās dotās vērtības
24. solis: braukšana 1/2
Ja pie tastatūras nospiežat bultiņu uz augšu, mērinstrumentiem jāmaina pozīcijas un automašīnai jābrauc. Ja nospiežat bultiņu uz augšu un automašīna griežas, tad ekrāna vietās ir jāpievieno/jānoņem mīnuss.
Pēc šīs darbības pēc augšupvērstās bultiņas automašīnai jābrauc uz priekšu, un lejupvērstajai bultiņai jābrauc atpakaļ.
25. solis: braukšana 2/2
Tagad pagriezieties - nospiediet kreiso bultiņu, ja automašīna griežas pa labi. Jums ir jāpagriež kabeļi (pārbaudiet attēlu iepriekš)
Ja jūs lodējat šos kabeļus, varat to mainīt vietnē script.js. Vienkārši mainiet motora ātruma nosūtīšanas secību, pirms:
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));
pēc:
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));
un tagad jums ir jāspēlē ar mīnusiem, piemēram, vienu soli iepriekš, lai tas darbotos pareizi;). Kā jūs droši vien pamanījāt pēc nospiestas bultiņas, automašīna nebrauc ar pilnu ātrumu, lai padarītu automašīnu ātrāku, vienkārši atlaidiet augšupvērsto bultiņu, kad tā atrodas maksimālajā stāvoklī un vēlreiz nospiediet un turiet
26. darbība. Kā tas darbojas
Tīmekļa lapa sūta 9 baitu īsziņas uz python skriptu šādā formātā:
- 1 baits viens baits vesels skaitlis 1
- 2 baiti vesels skaitlis X kameras pozīcija
- 2 baiti vesels skaitlis Y kameras pozīcija
- 1 baits vesels skaitlis kreisais motora režīms (3 = atpakaļ, 1 = uz priekšu, 2 = apstāšanās)
- 1 baits vesels skaitlis kreisā motora apgriezienu skaits
- 1 baits vesels skaitlis labajā motora režīmā (3 = atpakaļ, 1 = uz priekšu, 2 = apstāties)
- 1 baits vesels skaitlis labais motora ātrums
ziņojuma sūtīšana tiek veikta failā script.js, izmantojot funkciju "sendNow ()"
vietnē RasbperryPi python.py saņem šo ziņojumu funkcijā "onUserMessage"
Jūs varat to pārbaudīt un nedaudz spēlēt, lai jūs zinātu, kas notiek.
klases funkciju apraksts šeit
27. darbība: planšetdators, vadība mobilajās ierīcēs
Mēs pievienojam jaunu tīmekļa vietni ārkārtīgi tāpat kā iepriekšējā reizē, bet tagad izvēlamies veidni "car4wdMobile"
Tālāk mēs konfigurējam visu vietnē script.js tāpat kā darbvirsmas vadības tīmekļa lapā. Ziņojuma formāts ir tieši tāds pats, tāpēc mums nav jāmaina skripts python.py.
28. darbība. Atveriet lapu mobilajā tālrunī
Tā vietā, lai pieteiktos savā kontā no mobilās ierīces, vienkārši skenējiet QR anonīmo URL.
sīkāka informācija par QR šeit
Ja jūsu mobilā vadība darbojas, ja RPi un mobilā ierīce izmanto vienu un to pašu wifi, bet nedarbojas, ja izmantojat mobilo internetu, tad jums ir jāpievieno pagrieziena serveris, kā to izdarīt, es esmu šeit rakstījis
29. solis: Turn servera pievienošana
Dažreiz (ja atrodaties aiz NAT vai dažiem ugunsmūra iestatījumiem) Jūs nevarat savienot savu robotu no cita tīkla, tad jūsu robots ir pievienots. Tā nav liela problēma, un tad jums ir jāpievieno pagrieziena serveris.
Esmu pārbaudījis XIRSYS uzņēmuma serveri (tas ir bezmaksas izstrādātājiem) un parādīšu, kā konfigurēt pagrieziena serveri, izmantojot XIRSYS sistēmu
reģistrēties:
global.xirsys.net/dashboard/signup
pēc tam noklikšķiniet uz "plus", lai pievienotu lietojumprogrammu
labajā pusē sadaļā "statiskā pagrieziena akreditācijas dati" jums ir visi nepieciešamie dati. Kopējiet to failā webrtc_streamer.conf, lai to izdarītu, dodieties uz vietni
paplašināt RaspberryPi deivces
noklikšķiniet uz faila webrtc_streamer.conf
noklikšķiniet uz atvērt
un pievienot informāciju
pagrieziena_serveris = pagrieziena_vārds =
turn_credential =
pēc rediģēšanas beigām ekrānā vajadzētu būt kaut kam līdzīgam.
pēc tam noklikšķiniet uz Saglabāt un restartējiet You Rpi, noklikšķinot uz izvēlnes RasbperryPi ierīcē un izvēlieties restartēt
Pēc RPi programmas restartēšanas Jūs varat redzēt video priekšskatījumu savā mobilajā tālrunī pat tad, ja izmantojat mobilo internetu.
30. darbība: vadība mobilajā tālrunī
1. aplī mēs novietojam kreiso īkšķi, pie 2. labās - nav jābūt tieši šajā vietā - tīmekļa lapa iestatīs nulles pozīciju tūlīt pēc skārienekrāna pieskāriena, un, pārvietojot īkšķus (braukšana pa kreisi, labās kameras pozīcija) Tava mašīna
31. darbība. Kopsavilkums
Es ceru, ka jums patika šī apmācība, kā jau iepriekš rakstīju šajā apmācībā, ir sīkāka informācija par to, kā tā darbojas zem pārsega.
dažas saites:
remoteme.org - vietnes remoteme.org mājas lapa Jūs atradīsit dokumentāciju un pamācības
FB fanpage - Facebook fanpage jaunākā informācija par remoteme.org
Youtube - daži projekta video, apmācības
Priekā, Maciek
Ieteicams:
ESP8266 RGB LED STRIP WIFI vadība - NODEMCU kā IR tālvadības pults LED joslai, kas tiek kontrolēta, izmantojot Wifi - RGB LED STRIP viedtālruņa vadība: 4 soļi
ESP8266 RGB LED STRIP WIFI vadība | NODEMCU kā IR tālvadības pults LED joslai, kas tiek kontrolēta, izmantojot Wifi | RGB LED STRIP viedtālruņa vadība: Sveiki, puiši, šajā apmācībā mēs iemācīsimies izmantot nodemcu vai esp8266 kā IR tālvadības pulti, lai kontrolētu RGB LED sloksni, un Nodemcu vadīs ar viedtālruni, izmantojot wifi. Tātad būtībā jūs varat kontrolēt RGB LED STRIP ar savu viedtālruni
Kā padarīt Firefox par visnoderīgāko tīmekļa pārlūkprogrammu: 8 soļi
Kā padarīt Firefox par visnoderīgāko tīmekļa pārlūkprogrammu: ja jūs jau neesat pārliecināts, ka Firefox ir labāks par visu, kas pieejams, šeit ir daži padomi un uzlabojumi, kas liks jums pārslēgties. Ja jūs izmantojat Firefox, iespējams, jūs joprojām nezinājāt par šiem
Izveidojiet tīmekļa pārlūkprogrammu programmā Visual Basic: 12 soļi
Izveidojiet tīmekļa pārlūkprogrammu programmā Visual Basic: Es iemācīšu jums izveidot tīmekļa pārlūkprogrammu programmā Visual Basic 2005
Padariet Firefox vairāk nekā tīmekļa pārlūkprogrammu: 5 soļi
Padariet Firefox par vairāk nekā tīmekļa pārlūkprogrammu: iemesls, kāpēc Firefox ir tik populārs, nav tāpēc, ka tajā jau ir labas pārlūkošanas iespējas, bet gan tam pieejamo papildinājumu dēļ pārlūks kļūst par jūsu paplašinājumu. Oho. Šis pēdējais teikums bija satriecošs, kā es to formulēju, vai ne? Li
Kā izveidot tīmekļa pārlūkprogrammu programmā "Visual Basic": 11 soļi
Kā izveidot tīmekļa pārlūkprogrammu programmā "Visual Basic": vispirms lejupielādējiet Microsoft Visual Basic. Jebkurš Visual Basic veids ir labs, taču atcerieties, ka daži no tiem maksā naudu. Es izmantoju Visual Basic bezmaksas versiju " Express Edition " bet, kā jau teicu, jebkura forma būs laba. http: //www.mic