Mündəricat:
- Addım 1: Komponentlər
- Addım 2: Elektrik Şeması
- Addım 3: Fiziki Tikinti
- Addım 4: ESP8266 Modulu
- Addım 5: Arduino
- Addım 6: MySQL verilənlər bazası
- Addım 7: Qırmızı Node
- Addım 8: MQTT Broker
- Addım 9: Hobbi Elektronikası
Video: UCL Gömülü - B0B Linefollower: 9 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Bu B0B* dir.
B0B, radio nəzarətli ümumi bir avtomobildir, müvəqqəti olaraq bir xətt izləyən robotun əsasını təşkil edir.
Ondan əvvəlki bir çox Line-robotlar kimi, döşəmə ilə ziddiyyətli bir material arasında bir keçidin səbəb olduğu bir xətdə qalmaq üçün əlindən gələni edəcək, bizim vəziyyətimizdə bant.
Bir çox digər Line-robotlardan fərqli olaraq, B0B də məlumat toplayır və WiFi vasitəsilə göndərir.
Bir hobbi layihəsi üçün tamamilə aşırsınızsa, maraqlı ola biləcəyiniz bir çox mövzunu əhatə edir. Bu bələdçi onun doğumunu, funksiyalarını və necə onun kimi edə biləcəyinizi izah edir.
İstədiyimiz kimi işləmədiyimiz üçün müxtəlif elektronikaya qəzəblənməyimizi və bu çətinlikləri aradan qaldırmaq üçün atdığımız addımları da əhatə edir (sizə baxıram ESP 8266-01).
Layihənin işləməsi üçün 2 kod var. Birinci kod Arduino -nu proqramçı olaraq istifadə etdiyimiz ESP8266 modulu üçündür, ikinci kod isə Arduino -da işləyəcək.
Addım 1: Komponentlər
Bu layihə üçün sizə lazım olacaq:
Avadanlıq:
• 1x radio nəzarətçi avtomobili, (ESC və sükan servosu olmalıdır).
Əsasən əlimizdə olanı olduğu üçün bir Traxxas 1/16 E-Revo VXL istifadə edirdik və bir Arduino ilə idarə edə biləcəyimizə əmin idik. Həm də çox az miqdarda əlavə aparat alacağı üçün, bunun 1/16 E-Revo üçün bir problem olmayacağına əmin olduq.
Bununla birlikdə, radio idarə olunan avtomobillərin çoxu (asanlıqla sökülə bilən) əvəzinə istifadə edilə bilər və proses çox oxşar olacaq.
• Bir ton bant.
Rəng zəmini mümkün qədər ziddiyyət təşkil etməlidir. Test mühitimizdə qaranlıq bir mərtəbədə ağ lentdən istifadə edirdik.
• 1x Arduino Mega 2560.
Kiçik Arduino çox güman ki, yaxşıdır, amma sancaqlar üçün sıxılacaqsınız.
• 1x böyük çörək lövhəsi.
Biri kifayətdir, amma istifadəçi xətası riskini azaltmaq üçün digər gərginlik elektrik xətlərini ayırmaq üçün daha kiçik bir xəttimiz də var idi.
• 1x TCRT5000 IR analoq sensoru (toqquşmanın qarşısını almaq üçün istifadə olunur).
Tam marka/modelin Arduino ilə uyğun olub -olmaması və məsafəni ölçməsinin əhəmiyyəti yoxdur. "Məsafə", "maneə" sensoru kimi açar sözlər axtarın. Texniki cəhətdən rəqəmsal sensor kiçik kod dəyişikliyi ilə də işləyə bilərdi, amma biz analoqdan istifadə edirik.
• 1x və ya 2x Cazibə qüvvəsi: Analog Boz Ölçü Sensoru v2
Biri xətt izləyicisi üçün bir zərurətdir. Dəqiq model, əks olunan işığın intensivliyinə baxdıqda və analoq siqnal çıxardıqca fərq etməz. "Otaq" aşkarlamasının ikincisi gözlənildiyi kimi işləmədi və buraxıla bilər və ya daha yaxşı təsir üçün RGB rəng sensoru kimi bir alternativ tapıla bilər. Bunu hələ sınamamışıq.
• 1 x ESP 8266-01.
ESP 8266 -nın bir çox versiyası mövcuddur. Yalnız 8266-01 ilə təcrübəmiz var və ESP kodunun fərqli bir versiya ilə işləyəcəyinə zəmanət verə bilmərik.
• 1 x ESP8266-01 Wi-Fi qalxanı.
Texniki olaraq isteğe bağlıdır, ancaq bunu istifadə etməsəniz, Wi-Fi modulu ilə əlaqəli hər şey daha mürəkkəb olacaq. Bələdçi, buna sahib olduğunuzu güman edəcək (əgər yoxsa, ESP-01-in Arduino-ya düzgün bir şəkildə bağlanması üçün təlimatları İnternetdə tapın), çünki bu səhv etmək modulu zədələyə bilər və yəqin ki.
• Avtomobilin özü üçün batareyalar və əlavə elektronikaya enerji verən batareyalar.
Hər şeyə paralel olaraq bir cüt AH tutumu, 7.4V Lipo batareyaları istifadə etdik. Seçdiyiniz avtomobil ilə normal olaraq istifadə edəcəyiniz batareyaları istifadə etməlisiniz. 5V -dən yuxarı, lakin 20V -dən aşağı olsanız, tutum nominal gərginlikdən daha vacibdir.
• Bir çox keçid kabelləri.
Bunların dəqiq sayını saymaqdan imtina etdim. Kifayət qədər olduğunuzu düşünürsünüzsə, yəqin ki, etməyəcəksiniz.
• Nəhayət, hər şeyi bağlamaq üçün Arduino, sensorlar, çörək taxtası və Wi-Fi modulunu seçdiyiniz avtomobilə bağlamalı olacaqsınız. Nəticəniz, əsas olaraq istifadə etdiyinizə və hansı materialların mövcudluğuna görə dəyişəcək.
İstifadə etdik:
• Fermuar bağları.
• Bəzi super yapışqan.
• Uyğun bir diametrə sahib olduğumuz kiçik hurda kağız/qatran borusu.
• Ölçüləri kəsilmiş bir şəkil çərçivəsindən köhnə mason arxa plitə.
• Bir az daha bant.
• Seçdiyiniz radio nəzarətli avtomobilinizdə işləmək üçün lazım olan bütün vasitələr.
Əsasən çoxlu bitləri olan kiçik bir tornavida dəsti istifadə edirdik, amma bəzən maşınla birlikdə gələn alət dəstini çıxarmaq məcburiyyətində qaldıq.
Proqram təminatı:
• Qırmızı düyün
Məlumat toplamağın vacib bir hissəsidir.
• MQTT serveri.
Aracımızla Node-red arasındakı orta adam. Əvvəlcə test üçün test.mosquitto.org istifadə etdik
Daha sonra istifadə etdik:
• CloudMQTT.com
Bu, qurulması bir az daha mürəkkəb olmağından daha çox etibarlı idi.
• WampServer.
Məlumat toplamağın son hissəsi. Xüsusilə, topladığımız məlumatları saxlamaq üçün SQL verilənlər bazasından istifadə edəcəyik.
Addım 2: Elektrik Şeması
Addım 3: Fiziki Tikinti
Çözümümüz, fiziki montaj üçün birbaşa irəli bir yanaşmaya malikdir.
Orijinal alıcı və su keçirməyən korpusu, ehtiyac olmadığı üçün RC avtomobilindən çıxarıldı.
Xətti izləmə sensoru üçün ön təkərlər arasında uyğun bir yer olduğunu gördük, buna görə ön sürüşmə lövhəsinin üstündəki bir zipti döngə edərək yerində saxladıq.
Toqquşma əleyhinə istifadə etdiyimiz sensor bir növ ön tamponun arxasına bağlanmışdır. Hələ də təsirlərdən qorunur və sürtünmə qabiliyyətinə uyğundur. Həmişə bir qədər yuxarıya doğru bucaqla gözləməklə bitir. Bu mükəmməldir.
Masonit lövhə, (köhnə şəkil çərçivəsindən arxa plaka), üstündə kəsilmiş və altına yapışdırılmış kiçik kağız/qatran borulardan ibarətdir. Bunlar bədən dirəkləri üçün dayaqlar ilə hizalanır və sadəcə hər şeyi etibarlı şəkildə tutaraq üstündə oturur. Borunu lövhəyə yapışdıran yapışqanın tutulduğunu və həddindən artıq əyilmədiyini düşünsək, bu yerində qalacaq. Plitənin təkərlərin və tamponların qoruyucu sferasında olduğunu da qeyd etmək lazımdır. Arduino Mega və iki çörək taxtası lövhəyə ya ikiqat yan lentlə, ya da yapışqanla bağlanmış bir yapışqan bantla yapışdırılmışdır.
WiFi modulunun təhlükəsizliyi üçün heç bir xüsusi tədbir görülməmişdir. Bu bizim deyil, buna görə də yapışdırmaq və ya lentə çəkmək lazımsız hesab edildi, çünki çox yüngül hərəkət etməyəcək və tellər yerində saxlamaq üçün kifayətdir.
Nəhayət, arxa təkərlərdən biri ilə süspansiyon komponentlərinə bağlanan 'otaqları' aşkar etmək üçün bir sensorumuz var. Əməliyyat zamanı bu, avtomobilin hərəkət etmək üçün istifadə etdiyi işarədən uzaq olmalıdır.
Addım 4: ESP8266 Modulu
WiFi modulu, ESP8266, iki fərqli pin qurğusu tələb edir. Modulu yeni bir proqramla yandırarkən və Arduino Mega 2560 -ı proqramçı olaraq istifadə edərkən bir qurğudan istifadə edilməlidir. Digər quraşdırma, modul istifadə edildikdə və MQTT Brokerinə məlumat göndərərkəndir.
Kodu ESP8266 moduluna yükləmək üçün Arduino IDE -dən istifadə edərək bir lövhə meneceri və əlavə lövhə meneceri quraşdırmalısınız.
İdarə heyətinin altında esp8266 lövhə menecerini quraşdırın. "Esp" axtararaq asanlıqla tapılacaq. 2.5.0 versiyasını yükləməyiniz çox vacibdir, köhnə deyil, daha yeni deyil.
Əlavə lövhə meneceri URL -lərinin parametrləri altında bu sətirdən kopyalayın:
arduino.esp8266.com/stable/package_esp8266c…
ESP8266 moduluna hər hansı bir şey yükləyə bilmək üçün modulu yandırmaq üçün xüsusi bir pin qurğusundan istifadə etməlisiniz. Modulda işləyən mövcud kodda hər dəfə dəyişiklik etmək istədiyiniz zaman bunu etmək lazımdır. Modulu yandırmadan əvvəl idarəetmə menecerindən düzgün ESP8266 modulunu seçməyi unutmayın. Bu layihədə ümumi ESP8266 lövhəsini seçdik. Modulun yanıb -sönməsi üçün pin quruluşu bu seqmentdəki ilk şəkildə tapılmışdır.
ESP8266 modulunu yandırdıqdan sonra pin quruluşunu dəyişdirməlisiniz. Quraşdırmanı asanlaşdırmaq üçün adapterdən də istifadə edə bilərsiniz. Bu layihədə modul işləyəndə bir adapterə sahib olmağı seçdik. Adapter ilə pin qurğusu bu seqmentin ikinci şəkilində tapılmışdır.
ESP8266 moduluna yandırılacaq kod, bu vəziyyətdə bir istifadəçi adı və şifrə ilə bir WiFi və MQTT Brokerinə bağlantı qurur, ancaq kodun şərhlərində göstərilən lazımi dəyişiklikləri etməsəniz edilə bilər. Bu layihə üçün Brokerimiz işləmək üçün istifadəçi adı və şifrə tələb edir. Modul, qoşulduğu serial portundan gələn mesajları oxuyur. Arduino kodunun yaratdığı hər yeni sətri oxuyacaq, mesajı deşifr edəcək və mesajı yenidən yaradacaq. Bundan sonra, kodda göstərilən MQTT Brokerinə mesaj göndərir. ESP8266 Modulunun kodu:
Addım 5: Arduino
WiFi modulunu konfiqurasiya etdikdən sonra, RC avtomobilində motor və servo idarə etmək üçün istifadə olunacaq proqrama baxırıq. Avtomobil, bu layihədəki "Xətt Dedektoru" olaraq da bilinən mərkəzi sensordan gələn boz rəngli məlumatlara görə reaksiya verəcək. Aydındır ki, Xətt Dedektorundan alınan məlumatları işıq və qaranlıq arasındakı dəyişikliyə və ya bu layihədə ağ və qara rəngə bərabər olan əvvəlcədən təyin edilmiş bir dəyərin yanında saxlamağı hədəfləyir. Beləliklə, dəyər çox fərqli olarsa, servoya verilən uyğun çıxış, avtomobili xəttin əvvəlcədən təyin edilmiş dəyərinə yaxınlaşdıracaq.
Proqramda RC avtomobili üçün başlanğıc və dayandırma düymələri kimi işləyən iki düymə var. Texniki olaraq "dayandır" düyməsi, RC avtomobilinin dayanmasına səbəb olan mühərrikə göndərilən bir PWM dəyərinə bərabər olan "silahlanma" düyməsidir. Başlat düyməsi, RC avtomobilinin çətinliklə irəliləməsinə bərabər olan bir PWM dəyəri göndərir, çünki çox sürət alarsa çox sürətlə sürər.
Qarşıdakı yolun açıq olub-olmadığını müəyyən etmək üçün RC avtomobilinin ön hissəsinə bir toqquşma qarşısını alan detektor əlavə edilir. Bloklandığı təqdirdə, RC avtomobili maneə yox olana qədər aradan qalxacaq. Dedektordan gələn analoq siqnal, bir şeyin yolu maneə törətdiyini və ya dayandırmadığını müəyyən etmək üçün istifadə olunur və dayandıqca irəli də irəliləmək üçün bir meyar edilir.
RC avtomobilinin hansı otağa daxil olduğunu aşkar etmək üçün ikincil boz ölçülü sensor "Room Detector" istifadə olunur. Xətt Dedektoru kimi oxşar bir prinsip üzərində işləyir, ancaq işıq və qaranlıq arasındakı dəyişikliyi yox, Otaq Detektorundan görünən dəyərdən asılı olaraq fərqli otaqlara uyğun olan müəyyən bir aralığdakı dəyərləri axtarır.
Nəhayət, proqram WiFi modulunun oxunması və sonra MQTT Brokerinə göndərilməsi üçün sensorlardan bir məlumat xətti yaradır. Məlumat xətti simli olaraq yaradılır və WiFi modulunun qoşulduğu müvafiq seriyaya yazılır. Serialın yazılmasının yalnız WiFi modulunun daxil olan mesajı oxuya biləcəyi qədər tez -tez baş verməsi vacibdir, ancaq bu kodda heç bir gecikmədən istifadə etməməyi unutmayın, çünki bu RC avtomobilinin xətti izləmə qabiliyyətinə mane olacaq. Bunun əvəzinə "millis" istifadə edin, çünki proqram gecikmədən işləməyə imkan verəcək, ancaq Arduino açıldıqdan sonra müəyyən bir millis keçdikdən sonra gecikmənin olduğu kimi kodu bloklamadan seriala bir mesaj yazacaq.
Arduino Mega 2560 kodu:
Addım 6: MySQL verilənlər bazası
WampServer, PHP və MySQL verilənlər bazası ilə tətbiqlər yaratmağımıza imkan verən Windows üçün bir veb inkişaf mühitidir. PhpMyAdmin, məlumat bazalarımızı asan bir şəkildə idarə etməyə imkan verir.
Başlamaq üçün https://www.wampserver.com/en/ ünvanına daxil olun.
Bu layihədə Windows üçün 3.17 x64 bit versiyasını istifadə edirik. Quraşdırıldıqdan sonra bütün xidmətlərin işlədiyinə əmin olun ki, bu da kiçik nişanın qırmızı və ya narıncı əvəzinə yaşıllaşdığını bildirir. Simge yaşıldırsa, MySQL verilənlər bazanızı idarə etmək üçün PhpMyAdmin -ə daxil ola bilərsiniz.
PhpMyAdmin istifadə edərək MySQL -ə daxil olun və yeni bir verilənlər bazası yaradın. Xatırlaya biləcəyiniz uyğun bir şey adlandırın, bu layihədə "line_follow_log" adlanırdı. Verilənlər bazasını yaratdıqdan sonra verilənlər bazasında bir cədvəl yaratmalısınız. Sütunların sayına uyğun olduğundan əmin olun. Layihədə 4 sütundan istifadə edirik. Bir sütun zaman damgası üçündür və son üçü avtomobildəki məlumatları saxlamaq üçün istifadə olunur. Hər bir sütun üçün uyğun bir məlumat növü istifadə edin. Zaman damgası sütunu üçün "uzun mətn", qalanları üçün "orta mətn" istifadə etdik.
PhpMyAdmin və MySQL -də etməlisiniz. Verilənlər bazanızı və Node-Red haqqında bölmə cədvəlini xatırlayın.
Addım 7: Qırmızı Node
Məlumat toplamaq üçün Node-red-də olduqca sadə bir axın istifadə edəcəyik. MQTT serverimizə qoşulur və MYSQL verilənlər bazamıza yazır.
Bunu etmək üçün müxtəlif funksiyaların işləməsi üçün bir neçə palitraya ehtiyacımız var və bunun işləməsi üçün bəzi faktiki kodlara ehtiyacımız var.
Əvvəlcə ilk şeylər. Aşağıdakı paletlərə ehtiyacımız olacaq.
Düyün-qırmızı-töhfə-mqtt-broker: Bu, MQTT brokerimizlə əlaqəmizdir.
Düyün-qırmızı-tablosuna: Göstərilən lövhəmiz, toplanan məlumatları əyani şəkildə əks etdirməlidir.
Node-red-node-mysql: SQL verilənlər bazası ilə əlaqəmiz.
Bu, Node-red üçün tam hüquqlu bir bələdçi olmaq demək deyil, ancaq Node-red axınının nə etdiyini izah edəcəyəm.
Erkən, təsadüfən görünən MQTT serverimizlə bağlı problemlərimiz var idi, bu da dəyişikliklərin faydalı olub -olmadığı və nəticəni görə bilmədiyimiz zaman məlum olmadığı üçün əsəbiləşdirici bir cəhd etdi. Belə ki, 'Server öldü?' Aşağıdakı blok onu "yox" olaraq MQTT serverimizə daxil edir. Ölü deyilsə, Debug pəncərəsində 'Xeyr' görünəcək. Bu yalnız yoxlamaq üçün deyil, Node-red-in MQTT serverinə yenidən qoşulmağa cəhd etməsi üçün edilir.
'Test string', MQTT brokerinə kostyum simli göndərir. Bu sətri Arduinodan əldə edəcəyimizə bənzər şəkildə formatladıq. Layihənin işləməsinə, məlumatların toplanmasına ehtiyac olmadan mesajların kodlarını açan şəbəkəni konfiqurasiya etmək daha asan olardı.
İş sahəsindəki son axını iki hissəyə bölmək olar. Alt filial sadəcə gələn mesajları oxuyur, onları ayıklama pəncərəsinə göndərir və SQL serverində saxlayır.
Həqiqi 'sehrin' olduğu yerdə bir funksiya qovşağını izləyən geniş açar şəbəkə.
Davam edən funksiya gələn simli oxuyur, hər nöqtəli nöqtəyə bölür və hər bir çıxışda bölmələri ötürür. Aşağıdakı açarlar iki fərqli daxil olan məlumatdan birini axtarır. Xüsusi bir məlumat parçası hər zaman bir çıxışdan ötürülür, digər variant isə ikinci çıxışla ayrılır. Bunun ardınca keçid bloklarının ikinci qrupu var. Yalnız müəyyən bir girişlə aktivləşəcək və başqa bir şey çıxaracaqlar.
Məsələn, 'maneə', digərləri kimi ikili seçimdir, ya sürmək aydındır, ya da deyil. Beləliklə, 0 və ya 1 alacaq. A 0 'aydın' filialına, 1 'maneə törədilən' şöbəyə göndəriləcək. 'Təmiz', 'maneə törədilmiş' açarları, aktivləşdirildikdə sırasıyla xüsusi, aydın və ya maneə törədən bir şey çıxaracaq. Yaşıl davam edən bloklar ayıklama pəncərəsində, mavi panelimizə yazacaq.
'Status' və 'Location' filialları eyni şəkildə işləyir.
Addım 8: MQTT Broker
Broker, müştərilərdən gələn mesajları uyğun gələn müştərilərə yönləndirən bir serverdir. MQTT Broker, müştərilərin bir brokerə bir şəbəkə vasitəsi ilə qoşulmaq üçün MQTT Kitabxanasından istifadə etdiyi yerdir.
Bu layihə üçün "Cute Cat" versiyasına pulsuz abunə olmaqla CloudMQTT xidmətindən istifadə edərək bir MQTT Broker yaratdıq. Bunun məhdudiyyəti var, amma bu layihədəki məhdudiyyəti aşmayacağıq. WiFi modulu brokerə və brokerə qoşula bilər, sonra mesajları uyğun bir təyinat müştərisinə yönəldir. Bu vəziyyətdə müştəri Node-Red-dir. CloudMQTT xidməti, serverləri üçün bir istifadəçi adı və şifrə qurur, buna görə də daha yüksək təhlükəsizliyə zəmanət verilir. Əsasən, yalnız istifadəçi adı və şifrəsi olanların bu xüsusi CloudMQTT xidmətinə daxil ola biləcəyi deməkdir. İstifadəçi adı və şifrə, ESP8266 kodunda Node-Red kimi bir əlaqə qurarkən çox vacibdir.
Brokerin aldığı mesajların davam edən statistikası, abunə planınızın yönləndirdiyi məlumatları nə qədər yaxşı idarə etdiyini görmək üçün istifadə edilə bilən xoş bir xüsusiyyətdir.
Gözəl bir xüsusiyyət, Brokerdən WiFi moduluna mesaj göndərmək imkanıdır, ancaq bu layihədəki mesajlardan istifadə etməmişik.
Addım 9: Hobbi Elektronikası
Başlamazdan əvvəl keçmiş bir layihədən bilirdik ki, sükan idarəetmə servosu PWM siqnallı bir Arduinodan idarə oluna bilər, oxşar naqillərə malikdir və eyni stok radio qəbuledicisində fərqli kanallara qoşularaq Elektron Sürət Nəzarəti (ESC İndi mühərriki idarə edən, eyni şəkildə Arduinodan PWM ilə idarə edilə bilər.
Bu nəzəriyyəni yoxlamaq üçün kiçik bir Arduino eskizini qururuq. Eskiz potensiometrdən analoq girişi oxuyur, dəyəri 0, 1024 -dən 0, 255 -ə qədər təkrarlayır və nəticədə əldə olunan dəyəri kiçik bir qutuda R/C avtomobili olarkən analogWrite () istifadə edərək PWM pininə çıxarır. təkərlər çıxarılıb.
Tencere sayğacının aralığını araşdırdıqdan sonra, ESC 'oyandı' kimi göründü və yuxarı və aşağı tənzimləyə bildik, Arduinonun dəyərlərini serial bağlantısına yazdırdıq ki, onları izləyə bilək.
ESC, müəyyən bir eşik altındakı dəyərləri sevməyən kimi görünürdü, bu halda 128. 191 siqnalını neytral qaz, 255 -i isə maksimum qaz idi.
Avtomobilin sürətini dəyişməyimizə ehtiyac yox idi və onu ən aşağı sürətlə hərəkət etdirə bilərik. 192, mühərriki döndərəcək ən aşağı dəyər idi, lakin biz hələ hər şeyi yığmamışıq və bu çıxışın son montajdan sonra avtomobili hərəkət etdirmək üçün yetərli olub -olmayacağından əmin deyilik, lakin bir az daha böyük bir dəyərə girmək mənasız olmalıdır.
Potansiyometrdən keçmək və koda sabit bir dəyər daxil etmək heç bir nəticə vermədi. Təchizat ESC sadəcə yanıb -söndü və mühərriki döndərmədi, təlimata uyğun olaraq 'qaz tənzimləməsini tənzimləyin'.
Arduinonun istifadə etdiyi PWM tezliyinin dəyişdirilməsi ilə bağlı qəzəbli problemlərin aradan qaldırılması, müxtəlif dəyərlərin atılması, fərqli tellərin istifadəsi və hətta sınaqların aparılması daha qəribəliklərlə nəticələndi.
Fasiləli bir problem kimi görünürdü, bəzən işləyərdi, digər vaxt isə heç bir şey etməkdən imtina edərdi. Sadəcə yanıb -sönməyə davam etdi. Orijinal nəzarətçi və alıcı ilə edilən test, ESC -nin hələ də nəzərdə tutulduğu kimi işlədiyini təsdiqlədi və bu da problemləri daha da qəribə etdi. Daha yüksək dəyərlər, göz ardı etdi və yanıb -sönməyə davam etdi, daha aşağı dəyərlər olan ESC xoşbəxt yaşıl rəngə döndü, amma yenə də dönmədi.
Potansiyometr, ya da ötürücü və qəbuledici qurğudan və sabit dəyərlər verən versiyadan nə ilə fərqlənirdi?
Bəzən nəzərdə tutulduğu kimi işləmək və gözlənildiyi kimi işləmək, Venn diaqramında çox da üst -üstə düşmür. Bu vəziyyətdə, bir oyuncaq olaraq, model açıldıqda, barmaqlarını çıxarmaq və ya sındırmaq, təkərlərə və ya sürücü qatarına saç tutmaq şansı olmamalıdır. neytral mövqedən başqa bir mövqe.
'Qaz tənzimləməsini tənzimləyin', bunun mənası budur. ESC heç bir şey etməyəcəyini almadan əvvəl işə salındıqda neytral bir siqnal gözləyir. Normalda ESC açıldıqda ötürücü həmişə neytral vəziyyətdə olardı və oradan xoşbəxt bir şəkildə sürər. Belə olmadığı təqdirdə, model yerə möhkəm oturduqda və operator özünü yarışa hazır hiss edəndə ən az bir dəfə neytral vəziyyətə qayıdır.
Potansiyometrdən istifadə edərkən, biz silsilələri "silirik" və sonra işə başlayacaqdı. Potensialiometr neytral mövqeyi keçəndə sadəcə silahlandı və sonra işə başladı.
Daha aşağı diapazonlar yenə də ESC -dən narazı qaldı. Bu, PWM vəzifə dövrlərinin məhsuludur.
İstər dizaynla, istərsə də texniki səbəbdən, həm sükan servosu, həm də ESC 50% -lik iş dövrünün altındakı siqnallara məhəl qoymur. Bu, qəbuledicinin/ötürücünün işini dayandırması və ya gücünün tükənməsi halında ola bilər, model neytral vəziyyətə qayıdır və tam tərs qazla məsafəyə qalxmaz. Eyni şəkildə, servo yalnız 180 dərəcə dönür və tam aralığa ehtiyac yoxdur.
Əlindəki bu yeni biliklə yeni bir Arduino eskizi yaradıldı. İlkin versiya Serial monitoruna daxil edilmiş sətirləri qəbul edir, onu tamsayıya çevirir və servo kitabxanadan istifadə edərək PWM pininə köçürür ()*yazır. Seriya monitoruna yeni bir dəyər daxil edilərsə, write () dəyəri yenilənir.
Test zamanı, Traxxas ESC stoku Mtroniks G2 Micro ilə əvəz olundu, lakin dəqiq dəyərlər bir qədər fərqli ola bilsə də eyni şəkildə işləməlidir.
Bu kitabxana ESC -ni servo kimi qəbul edir, görünür bu yaxşıdır. Servo.h kitabxanasındakı write () funksiyası 0 ilə 180 arasında dəyişir, gözlənilən silahlanma siqnalının ortada olması gözlənilir.
G2 Micro qolları 90 -a yaxın dəyərlər aralığında bir yazma () işarəsindədir, lakin silahlı olmağı 'xatırlamaq' kimi göründüyünü təyin etmək çətindir.
Traxxas VXL-s3-ün 91 () yazma dəyərinə sahib olacağı gözlənilir.
Quraşdırma siqnalından sonra, ya ESC, PWM siqnallarını istehsal etmək üçün çağırılan Arduino funksiyalarından asılı olmayaraq məmnuniyyətlə qəbul edir və motoru buna uyğun olaraq idarə edir.
Funksiyalardan danışarkən; standart analogWrite (), habelə Servo.h kitabxanasındakı write () və writeMicroseconds () hamısı bir -birinin əvəzinə istifadə edilə bilər, nə etdiyini və nəhayət vəzifə dövründən başqa heç bir şeyin vacib olmadığını unutmayın. WriteMicroseconds () istifadə oluna bilər, əgər daha çox zərrəlilik tələb olunarsa, burada aralığın 1000 -dən 2000 -ə qədər olduğunu, silahlanmanın və ya 'neytralın' 1500 olmasını gözləyin. Standart analogWrite () ilə istifadə edilə bilən aralığın gözlənildiyi gözlənilir. 128 -dən 255 -ə qədər ola bilər, 191 ətrafında neytraldır.
Tövsiyə:
Gömülü Dolab .: 4 addım
Gömülü Dolab: Xoşbəxt bir aurada, əşyaları içəridə saxlamaq böyük bir həyəcan sıçramasına bənzər bir şeydir. 'Lock of Lock' adı, təbiətinə görə hər yerdə olan gündəlik məqalələrimin təsirli bir hissəsidir, amma nə edir? Sadəcə
Evive-Arduino Gömülü Platformasından istifadə edərək Sayı Sayma Çemberləri olan Ağıllı Basketbol Arcade Oyunu: 13 Addım
Evive-Arduino Gömülü Platformasından istifadə edərək Sayı Sayma Çemberləri olan Ağıllı Basketbol Arcade Oyunu: Oradakı bütün oyunların içərisində ən əyləncəli oyun oyunlarıdır. Beləliklə, düşündük ki, niyə evdə özümüz etməyək! Budur, indiyə qədər oynadığınız ən əyləncəli DIY oyunu - DIY Arcade Basketbol Oyunu! Yalnız bu deyil
UCL - Gömülü - Seç və Yerləşdir: 4 Addım
UCL - Gömülü - Seç və Yerləşdir: Bu təlimat 2D seçim və yerləşdirmə vahidinin necə hazırlandığına və necə kodlaşdırılacağına baxmayaraq gedəcək
UCL - Gömülü // Günəş Panelləri üçün İkili Eksenli İşıq İzləyicisi: 7 addım
UCL - Gömülü // Günəş Panelləri üçün İkili Eksenli İşıq İzləyicisi: Birləşdirilmiş layihə və fərdi 3D faylları
UCL Gömülü "tyverialarm": 7 addım
UCL Gömülü "tyverialarm": fortepller jeg om min tyverialarm