Mündəricat:

Arduino əsaslı Servo Servo Nəzarətçisi: 6 addım
Arduino əsaslı Servo Servo Nəzarətçisi: 6 addım

Video: Arduino əsaslı Servo Servo Nəzarətçisi: 6 addım

Video: Arduino əsaslı Servo Servo Nəzarətçisi: 6 addım
Video: RemoteXY IoT Cloud ilə dünyanın istənilən yerindən ESP32-ni necə izləmək və idarə etmək olar 2024, Noyabr
Anonim
Arduino əsaslı Servo Servo Nəzarətçisi
Arduino əsaslı Servo Servo Nəzarətçisi
Arduino əsaslı Servo Servo Nəzarətçisi
Arduino əsaslı Servo Servo Nəzarətçisi

Bu Arduino -ya əsaslanan bir çox servo üçün sadə bir serial nəzarətçisidir. (mənim də ilk təlimatçım:))

Bu işin çox hissəsi, proqramın arduino ilə danışmasını təmin etmək və məlumatların ötürülməsi üçün protokol hazırlamaqdır. Avadanlıq baxımından istifadə etdiyim hər şey iki servo idi (burada Parallax standart servo.) Bir Sparkfun Arduino ProtoShield və ATMEGA328 ilə Arduino Duemilanove, lakin bu hissələrin əksəriyyəti oxşar elementlərlə əvəz edilə bilər. Bu layihəni RC sisteminin bir hissəsi olaraq düşündüm, amma ünsiyyət qurmaq çox vaxt aldı. Hər hansı bir irəliləyiş, fikir və ya səhv varsa, şərh etməkdən çekinmeyin. EDIT: Bunu bir müddət əvvəl yazmışam, bu yaxınlarda nəşr etməliyəm.

Addım 1: Ehtiyacınız ola biləcək şeylər …

Ehtiyacınız ola biləcək şeylər…
Ehtiyacınız ola biləcək şeylər…
Ehtiyacınız ola biləcək şeylər…
Ehtiyacınız ola biləcək şeylər…

Bunu qurmaq üçün bəzi şeylərə ehtiyacınız olacaq. 1. Arduino lövhəsi (seçdiyiniz) 2. iki (və ya bir) servo 3. keçid telləri 4. Visual Studio 2008 Express - keçid (isteğe bağlı) 5. Arduino IDE - bağlantı Bağışlayın Linux və Apple azarkeşləri, proqramım yalnız işləyir Hələlik windows, ancaq kodu dəyişdirmədən arduino -ya əl ilə ardıcıl əmrlər göndərə bilərsiniz.

Addım 2: Hardware qoşun

Avadanlığı qoşun
Avadanlığı qoşun

Bu mərhələdə çox mürəkkəb bir şey yoxdur. Sadəcə bir servoyu pin 9 -a, digərini isə pin 10 -a bağlayın.

Addım 3: Arduino proqramlaşdırın

Arduino proqramlaşdırın
Arduino proqramlaşdırın

İndi eskizi arduino üzərinə yükləyə bilərsiniz.

İşdə kodun sadə bir dağılımı: #include Servo myservo; // servo idarə etmək üçün servo obyekti yaradın Servo myservo1; int incomingByte = 0, datacount = 0, counter = 0, ready = 0; // daxil olan serial məlumatların char məlumatları üçün [10]; const char verify [8] = "ma11hew"; char əmri [3]; void setup () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // serial portunu açır, məlumat sürətini təyin edir Serial.println ("Salam Arduino burada!"); // seriyalı portu təyin etməyə kömək etmək üçün əlavə edildi Bu, yalnız seriyalı portu və servoları qurur. int i; for (i = 0; i <180; i ++) {myservo.write (i); gecikmə (15); } myservo.write (5); for (i = 0; i <180; i ++) {myservo1.write (i); gecikmə (15); } myservo1.write (5); } Servoların düzgün işlədiyini yoxlamaq üçün sadə süpürmə hərəkəti. void loop () {ready = 0; sayğac = 0; while (1 == 1) {if (Serial.read ()! = [counter] yoxla)) {break; } if (counter == 6) {gecikmə (20); əmr [0] = Serial.read (); əmr [1] = Serial.read (); // əgər (Serial.read () == ((əmr [1] * 12) % 8)) // {hazır = 1; //} Serial.println ("xilas edilmiş əmr"); } sayğac ++; gecikmə (2); } bu, seriya tamponunun düzgün avtorizasiya xəttini yoxlayır, sonra komanda üçün iki bayt tutur. şərh, müvəqqəti bir yoxlama məbləğinə icazə verərsə, ancaq əl ilə əlaqəni çətinləşdirər. hazır 0 -a təyin edilə bilər, buna görə də əmrlər təhrif olunmayacaq, məsələn, zədələnmiş məlumatlar. // əgər əmrləri axtarın (hazır == 1) {əgər (əmr [0] == 'T') {əmr [0] = 0; Serial.print ("pin 9 -da qaz tənzimlənməsi:"); Serial.println (xəritə (əmr [1], 32, 126, 2, 180), DEC); myservo.write (xəritə (əmr [1], 32, 126, 2, 180)); } if (command [0] == 'S') {command [0] = 0; Serial.print ("pin 10 -da qaz tənzimlənməsi:"); Serial.println (xəritə (əmr [1], 32, 126, 2, 180), DEC); myservo1.write (xəritə (əmr [1], 32, 126, 2, 180)); }}} kodun qalan hissəsi, uyğun gəlsə, növbəti baytı alır və servoya göndərən etibarlı əmrləri (T və ya S.) əmrini axtarmaqdır. xəritədə daha çox (əmr [1], 32, 126, 2, 180) sonra… buradakı kod sizə lazım ola biləcək hər şey üçün genişləndirilə bilər (məsələn, işıqlar, mühərriklər, İR və s.) dəyişikliklər.

Addım 4: Proqramı Qurun

Proqramı Qurun
Proqramı Qurun

Bunu qurmağın iki yolu var … nsis yükləyicisi: Aşağıdakı özünü çıxaran yükləyicini yükləyin və işə salın. Quraşdırma zamanı mənbələri quraşdırmaq imkanınız olacaq. quraşdırıcı ikili paketi, əsas c ++ dll -lərini quraşdırır, belə ki, artıq əyani c ++ quraşdırılmadan kompüterdə işləyə bilər. Quraşdırma başa çatdıqdan sonra onu masaüstündən və ya başlanğıc menyusundan işə sala bilərsiniz. zip yolu (təsdiqlənməmiş): Yükləyin və işləyin, işləməlidir. ola bilər. (Zip arxivi, mənbələr olmadan quraşdırıcı tərəfindən yaradılan eyni qovluq quruluşuna malikdir. Bunu sınamaq üçün vizual studiyası olmayan bir maşınım yoxdur, buna görə də işləməyə bilər.)

Addım 5: İnterfeys Proqramından istifadə edin

İnterfeys proqramından istifadə edin
İnterfeys proqramından istifadə edin
İnterfeys proqramından istifadə edin
İnterfeys proqramından istifadə edin

Proqramdan istifadə etmək üçün əvvəlcə arduino eskizində müəyyən edilmiş ötürmə sürətini seçin. Dəyişdirilməmiş eskiz 38400 baud olaraq təyin olunur, lakin daha yavaş bir radio bağlantısı kimi şeylər üçün ehtiyaclarınıza uyğun olaraq dəyişdirilə bilər. Qeyd: 38400 -dən yüksək olan baud dərəcələri çox sabit olmadı, bunun səbəbi məlumatların işlənmədən əvvəl uartın dolmasıdır. Sonra istifadə etmək üçün COM portunu seçin. Proqram COM4 -ə çevrildiyindən əmin olun, əks halda proqram çökəcək. Nəhayət, aç düyməsini basın. Hər şey yaxşı olarsa, proqram seçilmiş serial portunu seçilmiş baud sürətində açacaq. Əks təqdirdə, işlənməmiş bir istisna ilə proqram yıxılacaq. portun düzgün olduğundan əmin olun və yenidən cəhd edin. Arduinoya birbaşa əmrlər göndərmək üçün mətn qutularından istifadə edin. "Xəritə (əmr [1], 32, 126, 2, 180)", ASCII -də arduino tərəfindən oxunan, 94 mümkün olan bütün əmrləri, * boşluqdan * -ə qədər ölçür, servo üçün 2 ilə 180 arasında. ASCII 32 -dən (boşluq) az və ya 126 -dan yuxarı olan (~) hər hansı bir bayt 63 (?) Varsayılan olaraq, yol çubuqları birbaşa əmrlər üçün qızdırıcı interfeysi təmin edir. hər addım ardıcıl olaraq arduinoya ardıcıl bir əmr göndərir.

Addım 6: Yaradıcı olun

Yaradıcı olun!
Yaradıcı olun!
Yaradıcı olun!
Yaradıcı olun!

Bununla etmək üçün gözəl şeylər düşünün. Bəzi fikirlər: 1. Bir avtomobil üçün uzaqdan qaz. 2. 3D kamera montajı 3. sualtı gəzən Əylən!

Tövsiyə: