FPV Kameralı RasbperryPi Avtomobil. Veb brauzeri ilə nəzarət: 31 addım (şəkillərlə)
FPV Kameralı RasbperryPi Avtomobil. Veb brauzeri ilə nəzarət: 31 addım (şəkillərlə)
Anonim
Image
Image

4WD avtomobil quracağıq - sükan tankdakı kimi olacaq - təkərlərin bir tərəfini çevirmək üçün digərindən fərqli sürətlə dönəcək. Avtomobilə kamera mövqeyini dəyişə biləcəyimiz xüsusi tutacaqda kamera yerləşdiriləcək. Robot veb brauzer tərəfindən idarə olunacaq (masaüstündə xrom və ya firefox və ya cib telefonunda firefox), brauzerdə Kamera videosu alacağıq (yalnız 200 ms gecikmə ilə) və brauzerdən avtomobilin hərəkətlərini idarə edə bilərik. kamera mövqeyi. Əlaqəni asanlaşdırmaq üçün app.remoteme.org sistemindən istifadə etdim, bu tip avtomobillərin idarə edilməsi də var, buna görə öz kodunuzu yazmağa ehtiyac yoxdur, ancaq əlbəttə skriptləri əlavə edə bilərsiniz. yeni imkanlar və s.

PCB -yə güc bağlamadan əvvəl, bütün əlaqələri iki dəfə yoxlayın

Addım 1: App.remoteme.org haqqında bəzi məlumatlar

Sistem üç hissədən ibarətdir

  • veb tətbiqi - nəzarət veb səhifələrinizə ev sahibliyi etdiyinizdə və bütün ünsiyyətləri əlaqələndirir
  • rasbperryPi proqramı - video göndərən, python skriptlərinizi idarə edən proqram
  • sinif, funksiya təriflərini tapdığınız kitabxanalar

Remoteme.org sistem sürətlidir Bütün cihazlarınızı bir -birinə bağlayırsınız, orada veb səhifələrinizi yerləşdirə bilərsiniz, əlaqəli cihazlarınızı görə bilərsiniz. Remoteme.org sistemi, layihələrinizi həyata keçirməyə başlamağınıza kömək etmək üçün hazırlanmışdır, protokol ünsiyyətindən narahat olmayın, əsas fikir müxtəlif veb səhifələr, RasbeprryPI, arduino və skriptlər arasında ikili mesajlar göndərməkdir.

Digər tərəfdən, Remoteme.org sizə fayllarınıza tam nəzarət edir, öz funksiyalarınızı yazaraq onu asanlıqla dəyişə bilərsiniz.

Bu təlimatda sizə heç bir kod yazmadan möhtəşəm bir layihənin necə düzəldiləcəyini göstərəcəyəm.

Bu təlimatın sonunda remoteme.org sistemini başa düşməyinizə kömək edəcək faydalı bağlantılar qoydum.

Addım 2: Nə lazımdır:

Nə lazımdır
Nə lazımdır
Nə lazımdır
Nə lazımdır
  • Moruq PI Zero W
  • Xüsusi kamera
  • Adafruit 16 Kanal 12 -bit PWM/Servo Sürücü - I2C interfeysi - PCA9685 və ya onun klonu
  • Kamera tutucusuna uyğun iki servo mexanizm
  • Kamera tutacağı
  • Batareyalar - Dərsdə iki əlaqə imkanı var
  • H körpüsü TB6612FNG, təkər sürətini idarə etmək üçün
  • PCB qartal faylları İstilik ötürmə metodu etmək çox asandır DC-DC
  • Aşağı Dönüştürücü Modulu DC
  • Robot korpusu

Addım 3: Bağlantılar

Əlaqələr
Əlaqələr

Raspberry pi nəzarət servo mexanizmi, PWM modulu və motor sürəti ilə RasbperryPi pinlərinə qoşulan H körpüsü ilə, H körpüsünə PWM girişi servolar üçün istifadə etdiyim eyni modul tərəfindən yaradılır (yuxarıda qeyd etdiyim hissələrin heç bir məntiqi çeviriciyə ehtiyacı yoxdur)

Addım 4: PCB

PCB
PCB
PCB
PCB

PCB kartal fayllarını buradan yükləyə bilərsiniz. Yollar yağdır, buna görə də onu istilik köçürmə üsulu ilə etmək asandır

Addım 5: PCB Çıxışları

PCB Çıxışları
PCB Çıxışları
PCB Çıxışları
PCB Çıxışları
  1. Sürücü mühərrikləri üçün PWM girişi PWM modulunun 15 -ci və 16 -cı pinlərinə qoşulmalıdır (PWM modulunun görüntüsündə yaşıl düzbucağı yoxlayın)
  2. Sürücü mühərrikləri üçün güc girişi (motorlarınızın hansı maksimum gərginliklə işləyə biləcəyini yoxlayın)
  3. RasbperryPi və PWM modulu üçün güc tam olmalıdır
  4. Sürücü motor çıxışları (sürücü mühərriklərini cütləşdirəcəyimiz üçün iki çıxış var)
  5. Servo Mexanizmlərinin gücü - Həm də onlar üçün hansı gərginliyin yaxşı olduğunu yoxlamaq lazımdır
  6. 5 -ci girişdən hazırkı güc, həm də mühərrikləri idarə edəcək, buna görə giriş 2 -yə heç bir şey bağlamağa ehtiyac yoxdur
  7. Tullanan varsa RasbperryPi 3 -cü girişdən güc alacaq - atlayıcını buraya qoymadan əvvəl əlaqələrin yaxşı olub olmadığını yoxlayın - RPi -ni yandırmaq istəmirsiniz
  8. Məntiq çeviricilərinə ehtiyacımız olmadığı üçün kabelləri burada lehimləməyə icazə verin

Addım 6: İşin necə getdiyini

RasbperryPi -də iki kitabxanadan istifadə edən python skript var

  • GPIO olaraq RPi. GPIO idxal edin-H körpüsünə bağlı olan 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 pinləri üçün (BCM işarəsi)
  • PWM modulu üçün Adafruit_PCA9685 idxal edin

Rpi pinləri 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) və H körpüsünün idarəetmə rejimi (irəli, geriyə, dayanma, qısa fasilə) aşağıdakı kimi bağlanır. H körpüsünün iki PWM siqnalına ehtiyacı var ki, sürəti və ya motorun fırlanmasını idarə edə bilək. Çünki layihədə artıq PWM nəzarətçimiz var (servo üçün istifadə olunur), bundan H körpüsü üçün PWM yaratmaq üçün də istifadə edəcəyik.

PWM modulu I2C rabitə protokolundan istifadə edir. Adafruit_PCA9685 qutusunda işləməkdən istifadə etdim. kitabxana

Addım 7: Avtomobilin Quraşdırılması - Təkərlər

Avtomobilin yığılması - Təkərlər
Avtomobilin yığılması - Təkərlər
Avtomobilin yığılması - Təkərlər
Avtomobilin yığılması - Təkərlər

Sürücü mühərriklərini avtomobil qutusuna bağlayaraq başlayacağıq. Sol/Yan motorlar bir -birinə bağlanır və hər iki cüt daha sonra PCB -yə bağlanacaq bəzi elektrik kabelinə qoşulur. Mühərriklərin hər iki tərəfindəki təkərləri birləşdirərkən eyni istiqamətdə dönməlidir.

Addım 8: Güc (AA Yenidən Batareyalar) Seçim 1/2

Güc (AA Şarj Batareyaları) Seçim 1/2
Güc (AA Şarj Batareyaları) Seçim 1/2
Güc (AA Şarj Batareyaları) Seçim 1/2
Güc (AA Şarj Batareyaları) Seçim 1/2
Güc (AA Şarj Batareyaları) Seçim 1/2
Güc (AA Şarj Batareyaları) Seçim 1/2
Güc (AA Şarj Batareyaları) Seçim 1/2
Güc (AA Şarj Batareyaları) Seçim 1/2

Gücün iki variantını yazacam Avtomobil birincisi 10xAA doldurma batareyalarından ibarətdir Nəhayət yerləşdirilməli olan qırmızı rəngli atlayıcılarla çəkdim.

Addım 9: Güc (Li-Po 7.2V Batareyalar) Seçim 2/2

Güc (Li-Po 7.2V Batareyalar) Seçim 2/2
Güc (Li-Po 7.2V Batareyalar) Seçim 2/2
Güc (Li-Po 7.2V Batareyalar) Seçim 2/2
Güc (Li-Po 7.2V Batareyalar) Seçim 2/2

Və ikinci seçim 7.2 LI-PO batareyadır. Bu vəziyyətdə 3 gərginlik əldə edirik - Rpi və modul üçün 5v, servo üçün 6V və birbaşa mühərriklər üçün 7.2 voltluq batareyalardan. İki pilləli aşağı moduldan istifadə etməli oldum

LI-PO ilə Seçim 2 daha yaxşıdır:

  • Batareyalar daha böyük tutuma malikdir - avtomobil daha uzun sürəcək
  • Sürücü mühərrikləri üçün daha böyük gərginlik - avtomobil daha sürətli sürəcək
  • Sürücü mühərrikləri tapmağa başladıqdan sonra böyük bir geriləmə düşə və RPI yenidən başlaya bilərik.

Addım 10: Lehimləmə

Lehimləmə
Lehimləmə
Lehimləmə
Lehimləmə
Lehimləmə
Lehimləmə
Lehimləmə
Lehimləmə

PCB -yə PWM modulu üçün bir neçə boşluq qoydum. Yazmaq üçün heç bir şey yoxdur, sadəcə hər şeyi bir -birinə necə lehim edəcəyinizə baxın

Addım 11: Kamera

Kamera
Kamera

Kameranı bağlayırıq, burada kamera tutucusuna quraşdırılmadan əvvəl servo mexanizmlərinin necə mərkəzləşdiriləcəyi yazılmışdır, lakin ən qısa yol maksimum fırlanma mövqeyini yumşaq bir şəkildə əl ilə yoxlamaq və servoları orta mövqedə təyin etməkdir. Kamera tutucusuna orta mövqedə qoyduğumuz bu mərkəzləşdirilmiş servo mexanizmlər (kamera fotoşəkildə olduğu kimi düz irəli baxır)

Addım 12: Avtomobil hissələrini bir araya gətirmək

Avtomobil hissələrini bir araya gətirmək
Avtomobil hissələrini bir araya gətirmək
Avtomobil hissələrini bir araya gətirmək
Avtomobil hissələrini bir araya gətirmək
Avtomobil hissələrini bir araya gətirmək
Avtomobil hissələrini bir araya gətirmək

PCB üçün kiçik bir pleksiglas masa hazırladım

Addım 13: App.remoteme.org Konfiqurasiyası

App.remoteme.org Konfiqurasiyası
App.remoteme.org Konfiqurasiyası

Pulsuz app.remoteme.org sistemindən istifadə etdim, bu əlaqə qurmağınıza kömək edir və artıq ehtiyac duyduğumuz skriptlərə malikdir

Bu təlimatda, maşın sürmək üçün nə edilməli olduğunu addım -addım göstərəcəyəm (burada daha ətraflı məlumat tapa bilərsiniz)

  • Qeydiyyatdan keçdikdən sonra https://app.remoteme.org saytında mahnı oxuyun
  • soldakı Token nişanını açın, sonra "yeni mö'cüzə" düyməsini basın və OK düyməsini basın, yeni bir möcüzə yaratdıq (ekrandakı şəkil)
  • bu nümunədə token dəyəri: ~ 1_ & p@+BNnZ@A+x8 (sizinki fərqli olacaq;))

Addım 14: RasbperryPi Konfiqurasiyası

RasbperryPi Konfiqurasiyası
RasbperryPi Konfiqurasiyası

macun konsolunda (burada kamera I2c ünsiyyətini açmaq üçün RPi -ni necə qurmalıyıq)

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

cd remoteme

python3.5 install.py

  • Quraşdırıcı, [Y] cavablarımıza görə bizə bəzi suallar verəcək və [enter] ilə təsdiqləyəcək
  • quraşdırma mö'cüzə istədikdə tətbiqdən kopyaladığımız (shift+insert) token yapışdırıb daxil edirik
  • məsələn Rpi adı
  • deviceId 1 daxil edin
  • quraşdırıldıqdan sonra proqramı işə salın

./runme.sh

Addım 15: Bağlantıların yoxlanılması

Bağlantıların yoxlanılması
Bağlantıların yoxlanılması

Https://app.remoteme.org saytına qayıdaq

Cihazlar sekmesinde, bağlı RPi -ni görəcəyik (yaşıl link işarəsi, RPi -nin hazırda bağlı olduğunu bildirir)

Addım 16: Python Script əlavə edin

Python Script əlavə edin
Python Script əlavə edin
Python Script əlavə edin
Python Script əlavə edin

İndi şablonlarda olan python skriptini əlavə edəcəyik, buna görə heç nə proqramlaşdırmağa ehtiyacımız yoxdur.

Cihazlar sekmesinde RasbperryPi menyusunu açın və "Xarici skript əlavə et" seçin.

Yeni bir pəncərə görünəndə yuxarıdakı şəkildəki kimi məlumat verin

"Car4wd" şablonunu seçməyi unutmayın. Bu addımlardan sonra remoteme.org, RasbperryPi -yə python skriptini əlavə edəcək və yenidən başlatacaq

Addım 17: Python Scriptinin uğurla əlavə edilib -edilmədiyini yoxlayın

Python Skriptinin Uğurla Əlavə Edildiyini Yoxlamaq
Python Skriptinin Uğurla Əlavə Edildiyini Yoxlamaq

Cihazlar sekmesinde yeni python skript cihazı əlavə edilməlidir və onun cihaz ID 2 -dir. Bu cihaza Id veb səhifəsi avtomobili idarə etmək üçün mesajlar göndərəcək

Addım 18: Nəzarət Maşına Veb səhifə əlavə edin

Nəzarət Maşına Veb səhifə əlavə edin
Nəzarət Maşına Veb səhifə əlavə edin

Cihazlar sekmesinde "Yeni" və sonra "Web Sayfası" na basın. Sadəcə başqa bir cihaz əlavə edirik - webPage -dən istifadə edərək avtomobilimizi idarə edirik. Veb səhifəsində "car4wdDesktop" şablonunu istifadə etdiyimiz üçün artıq istifadə üçün hazır olan sənədlər artıq mövcuddur

Addım 19: Web Səhifə Cihazını Maşına Nəzarət Edmək üçün 1/2 qurun

Veb Səhifə Cihazını Maşına Nəzarət Edin 1/2
Veb Səhifə Cihazını Maşına Nəzarət Edin 1/2

Cihaz sekmesinde Web Sayfasını genişləndirin və index.html və sonra Aç'ı basın

Addım 20: Veb Səhifə Cihazını Maşını 2/2 İdarə etmək üçün Konfiqurasiya edin

Veb səhifə cihazını avtomobilə nəzarət etmək üçün 2/2 konfiqurasiya edin
Veb səhifə cihazını avtomobilə nəzarət etmək üçün 2/2 konfiqurasiya edin

Pəncərə göründükdən sonra, bizim vəziyyətimizdə, cihazın idində python skriptimizin deviceId təmin etməliyik. Şəkildə göstərilən yeri dəyişək.

Addım 21: Avtomobil İdarəetmə Mərkəzini açın

Avtomobil İdarəetmə Mərkəzini açın
Avtomobil İdarəetmə Mərkəzini açın
Avtomobil İdarəetmə Mərkəzini açın
Avtomobil İdarəetmə Mərkəzini açın

Səhifəmizi açmağın və necə işlədiyini görməyin vaxtı gəldi. Cihaz sekmesinde index.html və sonra "Yeni sekmede Aç" düyməsini basın Videoya önizləmə əldə etmək üçün Chrome və ya Firefox brauzerindən istifadə etməlisiniz, digər brauzer webRTC -ni tam dəstəkləmir

Addım 22: Kamera Konfiqurasiyası 1/2

Kamera Konfiqurasiyası 1/2
Kamera Konfiqurasiyası 1/2

Siçanı video sahəsinə sürdükdə kamera mövqeyini dəyişməlidir və tam olaraq FPS oyunlarında olduğu kimi işləməlidir. Yəqin ki, düzgün hərəkət etməyəcək

Addım 23: Kamera Konfiqurasiyası 2/2

Kamera Konfiqurasiyası 2/2
Kamera Konfiqurasiyası 2/2

Script.js açın (cihazlar nişanı veb səhifəni genişləndirir, sonra script.js düyməsini basın və sonra açın) və ekranda göstərdiyim yeri tapın.

mənim vəziyyətimdə mərkəzi mövqe 560 və 430 və hərəkət aralığı hər iki ox üçün 200 -dir

Kameranın mövqe mərkəzini və hamar hərəkətləri əldə etmək üçün bu ədədlərlə təcrübə etməlisiniz, əgər bu dərsdən istifadə etmisinizsə, yalnız yapışdırılmış verilən dəyərləri kopyalayın

Addım 24: Sürücülük 1/2

Sürücülük 1/2
Sürücülük 1/2

Klaviaturadakı oxu yuxarı basarsanız, ölçü cihazları mövqelərini dəyişməli və maşın sürməlidir. "Yuxarı" oxuna basarsanız və avtomobil dönərsə, ekrandakı yerlərə eksi əlavə etməli/çıxarmalısınız.

Bu əməliyyatdan sonra "yuxarı" vurulduqdan sonra ox maşını irəli və aşağı ox avtomobili geri çəkməlidir.

Addım 25: Sürücülük 2/2

Sürücülük 2/2
Sürücülük 2/2

İndi dönür - avtomobil sağa dönürsə sol oxu vurun Kabelləri çevirməlisiniz (yuxarıdakı şəkilə baxın)

Bu kabelləri lehimləsəniz, onu script.js -də dəyişə bilərsiniz.

əvvəl:

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

sonra:

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

və indi düzgün işləməsi üçün bir addım kimi minuslarla oynamalısınız;) və yenidən basıb saxlayın

Addım 26: Necə işləyir

Veb səhifə, python skriptinə 9 baytlıq mesaj mesajlarını aşağıdakı formatda göndərir:

  • 1 bayt bir bayt tam ədəd 1
  • 2 bayt tam ədəd X kameranın mövqeyi
  • 2 bayt tamsayı Y kameranın mövqeyi
  • 1 bayt tamsayı sol motor rejimi (3 = geriyə, 1 = irəli, 2 = dayan)
  • 1 bayt tamsayı sol motor sürəti
  • 1 bayt tamsayı sağ motor rejimi (3 = geriyə, 1 = irəli, 2 = dayan)
  • 1 bayt tam ədəd sağ motor sürəti

mesaj göndərmək "sendNow ()" funksiyasındakı script.js faylında aparılır

RasbperryPi python.py bu mesajı "onUserMessage" funksiyasında alır

Bunu yoxlaya və bir az oynaya bilərsiniz ki, nə baş verdiyini biləsiniz.

sinif funksiyalarının təsviri burada

Addım 27: Tablet, Mobil Sükan

Tablet, Mobil Sükan
Tablet, Mobil Sükan

Yeni veb səhifəni əvvəlki vaxtda olduğu kimi əlavə edirik, amma indi "car4wdMobile" şablonunu seçirik.

Ardından, hər şeyi script.js -də masa üstü idarəetmə veb səhifəsində etdiyimiz kimi konfiqurasiya edirik Mesaj formatı tam eynidır, buna görə python.py skriptini dəyişdirmək məcburiyyətində deyilik.

Addım 28: Cib Telefonunda Səhifəni Açın

Səhifəni Cib Telefonunda Açın
Səhifəni Cib Telefonunda Açın
Səhifəni Cib Telefonunda Açın
Səhifəni Cib Telefonunda Açın

Mobil hesabdan hesabınıza daxil olmaq əvəzinə, QR hər hansı bir url tarayın.

QR detalları burada

Mobil nəzarətiniz RPi və mobil eyni Wi -Fi -da işləyərsə, ancaq İnternetdən istifadə etməsəniz, bura yazdığımı necə çevirmək lazım olduğunu əlavə etməlisiniz.

Addım 29: Turn Server əlavə edin

Dönüş serveri əlavə olunur
Dönüş serveri əlavə olunur
Dönüş serveri əlavə olunur
Dönüş serveri əlavə olunur
Dönüş serveri əlavə olunur
Dönüş serveri əlavə olunur

Bəzən (NAT və ya bəzi firewall parametrlərinin arxasında olduğunuzda) Robotunuzu başqa bir şəbəkədən qoşa bilmirsinizsə, robotunuz bağlıdır. Böyük bir problem deyil və sonra növbəli server əlavə etməlisiniz.

XIRSYS şirkətindən bir server sınadım (geliştirici üçün pulsuzdur) və XIRSYS sistemindən istifadə edərək növbəli serveri necə konfiqurasiya edəcəyimi göstərəcəyəm.

qeydiyyatdan keç:

global.xirsys.net/dashboard/signup

sonra tətbiq əlavə etmək üçün "artı" düyməsini basın

sağdakı "statik dönüş etimadnaməsi" altında, sizə lazım olan bütün məlumatlar var. Bunu etmək üçün onu webrtc_streamer.conf faylına kopyalayın

RaspberryPi deivcesini genişləndirin

webrtc_streamer.conf faylını vurun

aç basın

və məlumat əlavə edin

turn_server = turn_username =

turn_credential =

Redaktəni bitirdikdən sonra ekranda belə bir şey olmalıdır.

sonra RasbperryPi cihazındakı menyunu tıklayaraq Save və You Rpi'yi yenidən başladın və yenidən başladın seçin

RPi proqramı yenidən başladıqdan sonra mobil internetdən istifadə etsəniz belə cib telefonunuzda video önizləməyə baxa bilərsiniz.

Addım 30: Mobil Sükan

Mobil Sükan
Mobil Sükan

1 -ci dairədə sol baş barmağımızı, 2 sağa yerləşdiririk - tam olaraq bu nöqtədə olmamalısınız - veb səhifəsi toxunma ekranından dərhal sonra sıfır mövqeyi təyin edəcək və baş barmaqlarınızı hərəkət etdirərək (sol sürücülük, sağ kamera mövqeyi) İdarə edə bilərsiniz sənin maşının

Addım 31: Xülasə

Ümid edirəm bu təlimatı bəyənmisiniz, əvvəllər yazdığım kimi bu dərslikdə başlıq altında necə işlədiyi haqqında daha ətraflı məlumat verilmişdir.

bəzi bağlantılar:

remoteme.org - orada remoteme.org ana səhifəsi Sənədlər və dərsliklər tapa bilərsiniz

FB fanpage - Facebook fanpage remoteme.org haqqında ən yeni məlumatlar

Youtube - layihənin bəzi videoları, dərslər

Sağol, Maciek

Tövsiyə: