Mündəricat:

UChip - 2.4 GHz Radio Tx -Rx ilə Uzaqdan İdarəetmə Motorlarına və/və ya Servoslarına Sadə Eskiz: 3 Addım
UChip - 2.4 GHz Radio Tx -Rx ilə Uzaqdan İdarəetmə Motorlarına və/və ya Servoslarına Sadə Eskiz: 3 Addım

Video: UChip - 2.4 GHz Radio Tx -Rx ilə Uzaqdan İdarəetmə Motorlarına və/və ya Servoslarına Sadə Eskiz: 3 Addım

Video: UChip - 2.4 GHz Radio Tx -Rx ilə Uzaqdan İdarəetmə Motorlarına və/və ya Servoslarına Sadə Eskiz: 3 Addım
Video: BathyCat RC Survey bathylogger bl200 single beam Echo sounder sonar for bathymetric survey. 2024, Iyul
Anonim
Image
Image
UChip - 2.4 GHz Radio Tx -Rx ilə Uzaqdan İdarəetmə Motorlarına və/və ya Servoslarına Sadə Eskiz!
UChip - 2.4 GHz Radio Tx -Rx ilə Uzaqdan İdarəetmə Motorlarına və/və ya Servoslarına Sadə Eskiz!
UChip - 2.4 GHz Radio Tx -Rx ilə Uzaqdan İdarəetmə Motorlarına və/və ya Servoslarına Sadə Eskiz!
UChip - 2.4 GHz Radio Tx -Rx ilə Uzaqdan İdarəetmə Motorlarına və/və ya Servoslarına Sadə Eskiz!

RC dünyasını çox sevirəm. Kiçik bir qayıq, avtomobil və ya pilotsuz uçan aparat olmasına baxmayaraq, RC oyuncağından istifadə etməklə qeyri -adi bir şeyə nəzarət etdiyiniz hissini verirsiniz!

Ancaq oyuncaqlarınızı fərdiləşdirmək və istədiklərinizi etməyə məcbur etmək asan deyil. Ümumiyyətlə, standart ötürücü parametrlərini və ya xüsusi olaraq açar və düymələrin birləşməsini istifadə etmək məcburiyyətindəsiniz.

Hər şeyi həqiqətən istədiyiniz kimi idarə etmək olduqca çətindir, çünki RC dünyasından ən yaxşı şəkildə istifadə etmək üçün aparat səviyyəli proqramlaşdırma haqqında kifayət qədər dərin bilik tələb olunur.

Bir çox platforma və qurğular sınadım, amma RC oyuncağımda real bir fərdiləşdirmə etməzdən əvvəl kodla kifayət qədər rahat olmaq üçün hər zaman böyük səy sərf etdi.

Arduino IDE -dən istifadə edərək yükləyə biləcəyim və Radio RX -dən (qəbuledicidən) gələn dəyərləri istədiyiniz Motor/Servo idarəetməsinə çevirməyimə imkan verən sadə bir eskiz çatışmırdı.

Buna görə də, uChip və Arduino IDE ilə bir az oynadıqdan sonra yaratdığım budur: 2.4GHz Radio Tx-Rx vasitəsi ilə uzaqdan idarə olunan motorlara və/və ya servolara sadə bir eskiz!

Hesab materialları

1 x uChip: Arduino IDE uyğun lövhə

1 xTx-Rx Radio sistemi: cPPM qəbuledicisi olan hər hansı bir radio sistemi yaxşıdır (mənim kombinatım köhnə Spectrum DX7 Tx + Orange R614XN cPPM Rx), Tx və Rx-i bağlamaq üçün düzgün bağlama proseduruna əməl etdiyinizə əmin olun.

1 x Batareya: mühərriklər və servolarla işləyərkən yüksək axınlı cərəyan batareyaları lazımdır.

Motorlar/Servolar: ehtiyaclarınıza uyğun olaraq

Motorları/Servoları idarə etmək üçün elektron komponentlər: sadə rezistorlar, MOSFETlər və Diodlar sürücülük məqsədini yerinə yetirməyə imkan verir.

Addım 1: Kabel çəkmə

Kablolama
Kablolama
Kablolama
Kablolama
Kablolama
Kablolama
Kablolama
Kablolama

Şematikada göstərildiyi kimi komponentləri bir -birinə bağlayın.

Rx birbaşa uChipand -a bağlıdır və heç bir xarici komponent tələb etmir. Fərqli bir alıcıdan istifadə edirsinizsə, səviyyə dəyişdiriciyə ehtiyacınız olub olmadığını yoxlayın. CPM siqnalını uChip PIN_9 -a bağladığınızdan əmin olun (kodu başqa bir SAMD21 lövhəsinə uyğunlaşdırmaq istəsəniz PORTA19).

Qalan naqillər motoru və/və ya servoyu idarə etmək üçün lazımdır. Əlavə edilmiş sxem, uChip -i induktiv yükləri idarə edərkən baş verən sıçrayışlardan/aşmalardan qorumaq üçün əsas dövrəni təmsil edir. UChip təhlükəsizliyini qorumağın əsas komponenti, VEXT (uChip pin 16) və GND (uChip pin 8) ilə paralel olaraq qoymalı olduğunuz 5.1V (sxemdə D1) gücündə Zener diodudur. Alternativ olaraq, Zener diodunu istifadə etmək əvəzinə, əks sıçrayışların uChip komponentlərinə zərər verməsinin qarşısını alan D2, C1 və C2 ilə təmsil olunan əlavə dövrə seçə bilərsiniz.

Sxemanı təkrarlayaraq idarəetmə pinlərini dəyişdirərək ehtiyac duyduğunuz qədər çox motor/servo idarə edə bilərsiniz (güc pinlərindən (PIN_8 və PIN_16) və cPPM pinindən (PIN_9) başqa hər hansı bir pin istifadə edə bilərsiniz). Nəzərə alın ki, Zener diyotu (və ya isteğe bağlı devre üçün komponentlər) ilə təmsil olunan yalnız bir qoruyucu dövrə ehtiyacınız olsa da, motor/servo sürücülüklə əlaqəli elektrik komponentləri, mühərriklərin sayı qədər təkrarlanmalıdır. idarə etmək istədiyiniz servolar.

Ən azı 2 mühərrik və 2 servo idarə etmək istədiyim üçün təsvir olunan sxemləri tətbiq edən və şəkildən görə biləcəyiniz kiçik bir PCB hazırladım. Bununla birlikdə, ilk prototip uçan tellərdən istifadə edərək bir proto-lövhədə hazırlanmışdır.

Beləliklə, bu sadə layihəni həyata keçirmək üçün heç bir lehimləmə/PCB dizayn bacarıqlarına ehtiyacınız yoxdur:)

Addım 2: Proqramlaşdırma

Proqramlaşdırma
Proqramlaşdırma

Budur sehr! İşlərin maraqlı olduğu yer budur.

Əvvəlki sxemdə təsvir olunan dövrəni qurmusunuzsa, "DriveMotorAndServo.ino" eskizini yükləyə bilərsiniz və hər şey işləməlidir.

Kodu nəzərdən keçirin və necə işlədiyini yoxlayın.

Başlanğıcda müəyyən etmək üçün istifadə edilən az #define var:

- Rx -in nömrə kanalları (Orange 614XN ilə 6Ch)

- motorların/servoların bağlandığı sancaqlar

- Servo və mühərriklər üçün istifadə olunan maksimum və min

- Radio kanalları diapazonu üçün istifadə olunan maksimum və min

Daha sonra, mühərriklərin/servo dəyişənlərinin elan edildiyi dəyişənlərin bəyannaməsi bölməsi var.

Əvvəlki sxemdə göstərildiyi kimi birdən çox motor və bir servo idarə edirsinizsə, eskizi dəyişdirməlisiniz və əlavə motorları/servoları idarə edən kodu əlavə etməlisiniz. İstifadə etdiyiniz qədər Servo, servo_value və motor_value əlavə etməlisiniz.

Dəyişənlərin bəyannaməsi bölməsində, cPPM siqnalının Capture Compare üçün istifadə olunan bəzi uçucu dəyişənlər də var. BU DEYİŞMƏYİ DƏYİŞMƏYİN!

Bundan sonra etməli olduğunuz şey loop () funksiyasındadır. Burada, daxil olan kanalların dəyərindən nəyin istifadə olunacağına qərar verə bilərsiniz.

Mənim vəziyyətimdə daxil olan dəyəri birbaşa motora və servoya bağladım, ancaq ehtiyaclarınıza uyğun olaraq dəyişdirə bilərsiniz. Bu dərslikdə əlaqəli olan video və şəkillərdə 2 motor və 2 servo bağladım, ancaq 3, 4, 5,… maksimum pulsuz pinlərə qədər ola bilər (uChip vəziyyətində 13).

Çıxarılan kanal dəyərini "indeksi" 0 -dan NUM_CH - 1 -ə qədər olan ch [index] massivində tapa bilərsiniz. 1. Hər bir kanal radiounuzdakı çubuq/açar/düyməyə uyğundur. Nə olduğunu başa düşmək sizə aiddir:)

Nəhayət, baş verənləri başa düşməyi asanlaşdırmaq üçün bəzi debug funksiyalarını tətbiq etdim. Kanalların dəyərini yerli SerialUSB -də çap etmək üçün #define DEBUG -u şərh edin/şərh edin.

İPUCU: loop () funksiyasının altında daha çox kod var. Kodun bu hissəsi, uChip güc sancaqlarını təyin etmək, çəkmə müqayisə xüsusiyyətindən yaranan fasilələri idarə etmək, taymerləri və ayıklama məqsədini təyin etmək üçün lazımdır. Reyestrlərlə oynayacaq qədər cəsarətli hiss edirsinizsə, onu dəyişdirməkdən çekinmeyin!

Düzəliş: Yenilənmiş eskiz, Xəritəçəkmə funksiyasında bir səhv düzəldildi.

Addım 3: Oyna, Sür, Yarış, Uç

Image
Image

Tx və Rx sistemini düzgün bağladığınızdan əmin olun. Batareyanı bağlayaraq işə salın. Hər şeyin işlədiyini yoxlayın. İstədiyiniz kimi hər bir kanalın funksiyalarını genişləndirə və ya funksiyasını dəyişə bilərsiniz, çünki indi gələcək RC modelinizə tam nəzarət edirsiniz.

İndi xüsusi RC modelinizi qurun!

P. S.: bağlamaq olduqca darıxdırıcı ola biləcəyi üçün, tezliklə Tx-Rx sisteminizi əl ilə etmədən bağlamağa imkan verən bir eskiz buraxmağı planlaşdırıram. Yeniliklər üçün bizi izləyin!

Tövsiyə: