Satura rādītājs:

RasbperryPi automašīna ar FPV kameru. Vadība, izmantojot tīmekļa pārlūkprogrammu: 31 darbība (ar attēliem)
RasbperryPi automašīna ar FPV kameru. Vadība, izmantojot tīmekļa pārlūkprogrammu: 31 darbība (ar attēliem)

Video: RasbperryPi automašīna ar FPV kameru. Vadība, izmantojot tīmekļa pārlūkprogrammu: 31 darbība (ar attēliem)

Video: RasbperryPi automašīna ar FPV kameru. Vadība, izmantojot tīmekļa pārlūkprogrammu: 31 darbība (ar attēliem)
Video: No Distance Limit Rc Car FPV Driving. Remote Control car,4G LTE cellular network for communication 2024, Novembris
Anonim
Image
Image

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:

Kas nepieciešams
Kas nepieciešams
Kas nepieciešams
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

Savienojumi
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

PCB
PCB
PCB
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

PCB izejas
PCB izejas
PCB izejas
PCB izejas
  1. 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ā)
  2. Jaudas ieeja piedziņas motoriem (pārbaudiet, ar kādu maksimālo spriegumu var darboties jūsu motori)
  3. Jaudai RasbperryPi un PWM modulim - jābūt precīzi
  4. Piedziņas motora izejas (ir divas izejas, jo mēs savienosim pārī piedziņas motorus)
  5. Servo mehānismu jauda - arī jums ir jāpārbauda, kāds spriegums viņiem ir labs
  6. 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
  7. Džemperis, ja tas ir pieejams
  8. Ļ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

Automašīnu montāža - riteņi
Automašīnu montāža - riteņi
Automašīnu montāža - riteņi
Automašīnu montāža - 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

Barošana (AA uzlādējamās baterijas) Opcija 1/2
Barošana (AA uzlādējamās baterijas) Opcija 1/2
Barošana (AA uzlādējamās baterijas) Opcija 1/2
Barošana (AA uzlādējamās baterijas) Opcija 1/2
Barošana (AA uzlādējamās baterijas) Opcija 1/2
Barošana (AA uzlādējamās baterijas) Opcija 1/2
Barošana (AA uzlādējamās baterijas) Opcija 1/2
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

Jauda (Li-Po 7.2V akumulatori) 2. variants
Jauda (Li-Po 7.2V akumulatori) 2. variants
Jauda (Li-Po 7.2V akumulatori) 2. variants
Jauda (Li-Po 7.2V akumulatori) 2. variants

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

Lodēšana
Lodēšana
Lodēšana
Lodēšana
Lodēšana
Lodēšana
Lodēšana
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

Kamera
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ā

Automašīnu detaļu salikšana kopā
Automašīnu detaļu salikšana kopā
Automašīnu detaļu salikšana kopā
Automašīnu detaļu salikšana kopā
Automašīnu detaļu salikšana kopā
Automašīnu detaļu salikšana kopā

PCB esmu izveidojis nelielu plexiglass galdu

13. darbība. App.remoteme.org konfigurācija

App.remoteme.org konfigurācija
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

RasbperryPi konfigurācija
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

Savienojumu pārbaude
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

Python skripta pievienošana
Python skripta pievienošana
Python skripta pievienošana
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

Pārbaude, vai Python skripts tika pievienots veiksmīgi
Pārbaude, 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

Tīmekļa lapas pievienošana vadības automašīnai
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

Konfigurējiet WebPage ierīci, lai vadītu automašīnu 1/2
Konfigurējiet WebPage 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

Konfigurējiet WebPage ierīci, lai vadītu automašīnu 2/2
Konfigurējiet WebPage ierīci, lai vadītu automašīnu 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

Atveriet automašīnas vadības centru
Atveriet automašīnas vadības centru
Atveriet automašīnas vadības centru
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

Kameras konfigurācija 1/2
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

Kameras konfigurācija 2/2
Kameras konfigurācija 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

Braukšana 1/2
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

Braukšana 2/2
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

Planšetdators, mobilā stūre
Planšetdators, mobilā stūre

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ī

Atveriet lapu mobilajā tālrunī
Atveriet lapu mobilajā tālrunī
Atveriet lapu mobilajā tālrunī
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

Turn servera pievienošana
Turn servera pievienošana
Turn servera pievienošana
Turn servera pievienošana
Turn servera pievienošana
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ī

Mobilā stūre
Mobilā stūre

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: