Mündəricat:
- Addım 1: Ehtiyacınız olan…
- Addım 2: Lövhənin lehimlənməsi
- Addım 3: Arduino qurmaq
- Addım 4: Python qurmaq
- Addım 5: Sehrin Harada Olduğu
Video: Python-GUI və Arduino ilə Servodriver-Board: 5 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Prototip hazırlayarkən və ya model təyyarələr hazırlayarkən, tez -tez servo səyahətini yoxlamaq və ya servoları orta vəziyyətə qoymaq problemi ilə qarşılaşırsınız.
Bütün RC sisteminizi və ya testinizi qurmaq istəmirsinizsə, servoyu nə qədər itələyə bilərsiniz və ya orta mövqeyin olduğu yerdə, bu lövhə sizin üçündür! Bu servo müəyyən mövqelərə hərəkət və ya geri və geri səyahət imkan verir.
Döngədə bir mövqedən digərinə irəliləyən 6 servo ilə belə təəccüblü dərəcədə yaxşı işləyir.
Python-GUI ilə Arduino arasında Serial istifadə edərək ünsiyyət qurmağı öyrənmək də gözəl bir layihədir.
Addım 1: Ehtiyacınız olan…
Bu layihə üçün aşağıdakılara ehtiyacınız olacaq:
Avadanlıq
- Arduino nano kabel ilə. Bir klon istifadə etdim və Python kodu əslində bir klonun CH340 çipini gözləyir
- Prototip lövhəsi. 7x5 sm kifayətdir
- Təxminən 2, 54 mm başlıqlar və sancaqlar
- 1-6 servo
- Servo üçün enerji təchizatı (4 batareyalı batterpack istifadə etdim)
Proqram təminatı
- Python 3:
- CH340 çipləri üçün USB Sürücü: CH340 sürücüləri üçün sürücülər üçün yalnız google
- Arduino IDE:
Addım 2: Lövhənin lehimlənməsi
Lehimləmə, şəkildəki Fritzingə görə əslində düz irəlidir. Sadəcə servoları 3 pinli satırlara asanlıqla bağlaya biləcəyinizə əmin olun.
- 3 pinli satır, Arduino nanonun rəqəmsal pin 3, 5, 6, 9, 10 və 11-ə yapışdırılır.
- Qırmızı tel Arduinonun 5V-pininə bərkidilir
- Qara tel Arduinonun GND pininə qoşulur
- 3 pinli satırların altındakı cüt pin, tipik bir RC qəbuledici enerji təchizatı bağlamaq üçün nəzərdə tutulmuşdur, vidalanan terminallar, XT-Konnektorlar, JST və ya… və ya…
Şəxsən mən Arduino -nu yerləşdirmək üçün bir sıra qadın başlıqları sevirəm, amma bu sizə bağlıdır.
Diqqət yetirin ki, qısaldılmış qadın başlıqlar test məqsədləri üçün Arduinonun 5V mənbəyindən istifadə edərək servo təmin etməyə imkan verən bir tullanandır. Çox gərginləşdirsəniz, Arduino düzgün tempi sıfırlayacaq və itirəcək. Başqa bir enerji təchizatı bağlamadan əvvəl çıxarılmalıdır.
Addım 3: Arduino qurmaq
Arduino IDE -ni quraşdırın və əlavə edilmiş eskizlə Arduino nanosunu yandırın.
Addım 4: Python qurmaq
Yüklədikdən sonra Python 3 qurun. Bir "PATH" dəyişən yaratmaq seçimini yoxladığınızdan əmin olun.
Pip istifadə edərək daha iki paket qurmalısınız. Bunun üçün "Windows" düyməsini basın, "cmd" yazın və "enter" düyməsini basın. Əmr əmrinə aşağıdakı əmrləri yazın:
- pip quraşdırma seriyası
- piip pyserial quraşdırın
- pip tkinter quraşdırın
Gördüyünüz kimi, seriyalı modullara ehtiyacım var və çox güman ki, ən səmərəli deyil, çünki pyserial serialı əvəz etməlidir. Buna baxmayaraq işləyir və öyrənməyə yeni başlayıram;).
Python-Script-i IDE-də açın və işə salın və ya birbaşa terminaldan işləyin.
Açılan menyuda "Düz Get" və "Ping Pong" iki rejim arasında seçim edə bilərsiniz:
- Düz gedin: İlk sütuna mikrosaniyələrdə bir Servo-Mövqe daxil edin və servonun göstərilən mövqeyə keçməsini təmin etmək üçün "Başlat" düyməsini basın.
- Ping Pong: İkinci və üçüncü sütunda aşağı və yuxarı sərhəd daxil edin. Bunlar servonun geri -geri gedəcəyi aşağı və yuxarı mövqedir. "Ping Pong Time" sütununda, servonun yuxarı və ya aşağı mövqeyə çatdıqda gözləyəcəyi bir saatı milisaniyələrlə göstərə bilərsiniz. "Başlat" düyməsini vurun və servo geri və irəli hərəkət etməyə başlayacaq, "Dur" düyməsini basın və servo dayanacaq.
Addım 5: Sehrin Harada Olduğu
Son olaraq, Python və Arduino arasında bir az ardıcıl ünsiyyət qurmaq istəyənlər üçün koddakı bəzi detalları qeyd etmək istəyirəm.
İndi Python proqramında nə baş verir?
Hər şeydən əvvəl, proqram bu sətirdəki COM portlarına nə əlavə olunduğunu yoxlayır və siyahıya saxlayır:
self. COMPortsList = siyahı (serial.tools.list_ports.comports ())
Daha sonra bədnam bir CH340 çipi tapana qədər siyahıdan keçir, onu saxlayır və sonra for-loopdan sonra serial əlaqəsi qurur. Qeyd edək ki, ilk CH340 tapılan kimi for-loop pozulur.
p in self. COMPortsList: əgər p [1] -də "CH340" varsa: # Arduino Clone self axtarıram. COMPort = p [0] fasilə başqa: self. Ser = serial. Serial keçir (self. COMPort, 57600)
Seriya bağlantısı 57600 baud dərəcəsi olan COM portu ilə qurulur.
Və Arduino kodu nə edir? Yaxşı, Arduinonun yalnız bir COM portu olduğu üçün serial bağlantısı yalnız bir xəttdir:
Serial.begin (57600);
İndi ünsiyyət qurmaq üçün hər iki limanı istifadə edə bilərik. Bu vəziyyətdə, yalnız Python -dan Arduino -ya mesajlar. Mesajlar bura Python -dan göndərilir. Serial əlaqə baytları standart olaraq ötürür. Bu da məlumat göndərməyin ən sürətli yoludur və bildiyimə görə hələ də olduqca geniş yayılmışdır. Beləliklə, servo sayına görə ints (Arduino hansı servonun hərəkət edəcəyini bilir) və mikrosaniyələrdəki mövqe bir bayta çevrilir.
Command = struct.pack ('> B', self. Place) # int-dəyişən "self. Place" bir bayta çevrilir
self. Ser.write (Command) # Baytın Serial-Port Command-a yazılması = int (self. ServoPos.get ()) // 10 # Sahədən Girişin oxunması və int Command = struct.pack (' > B ', Əmr) # int-ni baytda çevir. Ser.write (Command) # Serial-Portda bayt yazmaq
Ayrıca, məlumatların təhlili vaxt aparır (məsələn, "1", "2", "3" və "0" ın dörd fərqli simvol kimi deyil, int 1230 kimi şərh edilməsi) və bunu Arduinoda etməmək daha yaxşıdır.
Arduino tərəfində göndərilən məlumatlar aşağıdakı kimi alınır:
if (Serial.available ()> 1) {// Serial məlumatlar varsa, o zaman loop daxil edilir c = Serial.read (); // İlk bayt (servo sayı) Micros = Serial.read () dəyişəninə qeyd olunur; // Servo mövqeyi burada saxlanılır Micros = Micros * 10; }
Tövsiyə:
Arduino ilə SI4732 / SI4735 (FM / RDS, AM və SSB) ilə Bütün Band Alıcı: 3 addım
SI4732 / SI4735 (FM / RDS, AM və SSB) ilə Bütün Band Alıcı Arduino ilə: Bütün bant qəbuledici bir layihədir. Si4734 Arduino Kitabxanasından istifadə edir. Bu kitabxanada 20 -dən çox nümunə var. RDS, yerli AM (MW) stansiyası, SW və həvəskar radio stansiyaları (SSB) ilə FM dinləyə bilərsiniz. Bütün sənədlər burada
Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım
Arduino Uno ilə Akustik Levitasiya Adım Adım (8 addım): ultrasəs səs ötürücüləri L298N Dc dişi qadın adapteri kişi dc pinli Arduino UNOBreadboard Bu necə işləyir: Əvvəlcə Arduino Uno-ya kod yükləyirsiniz (rəqəmsal ilə təchiz edilmiş bir mikro nəzarətçidir) və kodu çevirmək üçün analog portlar (C ++)
Android və ya iPhone -dan Bluetooth ilə idarə olunan Arduino ilə Neopixel Ws 2812 LED Şeridi: 4 addım
Android və ya Iphone -dan Bluetooth tərəfindən idarə olunan Arduino ilə Neopixel Ws 2812 LED Şeridi: Salam uşaqlar bu təlimatlarda, Bluetooth bağlantısı istifadə edərək Android telefonunuzdan və ya iphone -dan bir neopixel LED şeridi və ya ws2812 LED şeridini necə idarə etməyi müzakirə etdim. Arduino ilə birlikdə evinizə neopixel LED şeridi əlavə edin
ESP32 ilə PWM - Arduino IDE ilə ESP 32 -də PWM ilə LED Karartma: 6 addım
ESP32 ilə PWM | Arduino IDE ilə ESP 32 -də PWM ilə LED Karartma: Bu təlimatlarda Arduino IDE istifadə edərək ESP32 ilə PWM siqnallarının necə yaradılacağını görəcəyik. PWM əsasən hər hansı bir MCU -dan analoq çıxışı yaratmaq üçün istifadə olunur və bu analog çıxış 0V ilə 3.3V arasında ola bilər (esp32 vəziyyətində) & dan
Uzun Mesafe, 1.8km, Arduino-dan Arduino ilə HC-12 ilə Simsiz Əlaqə: 6 Addım (Şəkillərlə)
Uzun məsafə, 1.8km, Arduino-dan Arduino-ya HC-12 ilə Simsiz Əlaqə: Bu təlimatda Arduinos arasında 1.8km-ə qədər açıq havada necə ünsiyyət qurmağı öyrənəcəksiniz. HC-12 simsiz serial portudur. çox faydalı, son dərəcə güclü və istifadəsi asan olan ünsiyyət modulu. Əvvəlcə sızlayacaqsınız