Mundarija:
- 1 -qadam: Sizga nima kerak …
- 2 -qadam: taxtani lehimlash
- 3 -qadam: Arduino -ni sozlash
- 4 -qadam: Python -ni sozlash
- 5 -qadam: Sehr qaerda
Video: Python-GUI va Arduino bilan xizmat ko'rsatuvchi karta: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Samolyotlarning prototipini yasash yoki qurishda siz tez -tez muammoga duch kelasiz, siz servo harakatini tekshirishingiz yoki servolarni o'rta holatiga qo'yishingiz kerak.
Agar siz butun RC-tizimni yoki testni tuzishni xohlamasangiz, servoni qanchalik uzoqqa surishingiz yoki o'rtadagi pozitsiyani qaerga qo'yishingiz mumkin, demak, bu taxta siz uchun! Bu sizga servolarni belgilangan joylarga ko'chirishga yoki orqaga va orqaga sayohat qilishga imkon beradi.
Bu ajablanarli darajada yaxshi ishlaydi, hatto 6 ta servo bilan ham, bir pozitsiyadan ikkinchisiga poygada.
Bundan tashqari, Python-GUI va Arduino o'rtasidagi Serial yordamida aloqa haqida bilish yaxshi loyihadir.
1 -qadam: Sizga nima kerak …
Ushbu loyiha uchun sizga quyidagilar kerak bo'ladi:
Uskuna
- Arduino nano kabel bilan. Men klondan foydalandim va Python kodi aslida CH340-klonli chipni kutadi
- Prototip taxtasi. 7x5 sm etarli
- Ba'zi 2, 54 mm sarlavhalar va pinlar
- 1-6 servo
- Servo uchun quvvat manbai (men 4 ta batareyali akkumulyatordan foydalanardim)
Dasturiy ta'minot
- Python 3:
- CH340 chiplari uchun USB drayveri: CH340 drayverlari uchun haydovchilar uchun google
- Arduino IDE:
2 -qadam: taxtani lehimlash
Lehimlash, rasmdagi Fritzingga ko'ra, to'g'ridan -to'g'ri oldinga siljiydi. Servolarni 3-pinli qatorlarga osongina ulashingiz mumkinligiga ishonch hosil qiling.
- 3-qatorli qatorlar Arduino nanosining 3, 5, 6, 9, 10 va 11 raqamli pinlariga biriktirilgan.
- Qizil sim Arduino 5V-piniga ulangan
- Qora sim Arduino GND-piniga ulangan
- 3-pinli qatorlar ostidagi pinlar odatiy RC-qabul qilgich quvvat manbasini ulash uchun mo'ljallangan, siz xohlaganingizcha ulagichlarni qo'shishingiz mumkin, masalan, vintli terminallar, XT-ulagichlari, JST yoki… yoki…
Shaxsan menga Arduino -ni joylashtirish uchun ayol boshli qatorlar yoqadi, lekin bu sizga bog'liq.
Shuni esda tutingki, qisqa tutashgan ayol sarlavhalar o'tish moslamasi bo'lib, sinov uchun Arduino 5V manbasidan foydalangan holda servo etkazib berishga imkon beradi. Agar siz uni haddan tashqari zo'riqtirsangiz, Arduino qayta tiklanadi va kerakli tezlikni yo'qotadi. Boshqa quvvat manbaiga ulanishdan oldin ularni olib tashlash kerak.
3 -qadam: Arduino -ni sozlash
Arduino IDE -ni o'rnating va biriktirilgan eskiz bilan Arduino nano -ni yoqing.
4 -qadam: Python -ni sozlash
Python 3 -ni yuklab olingandan so'ng uni o'rnating. "PATH" o'zgaruvchisini yaratish variantini tekshirganingizga ishonch hosil qiling.
Pip yordamida yana ikkita paketni o'rnatishingiz kerak. Buning uchun "Windows" tugmachasini bosing, "cmd" kiriting va "Enter" tugmasini bosing. Buyruq satriga quyidagi buyruqlarni kiriting:
- pip ketma -ket o'rnatish
- piip -ni o'rnatish
- pip tkinter -ni o'rnating
Ko'rib turganingizdek, menga ketma -ket modullar ham kerak, bu eng samarali emas, chunki pyserial ketma -ket o'rnini bosishi kerak. Shunga qaramay, u ishlaydi va men endi o'rganishni boshlayman;).
Python-skriptni IDE-da oching yoki ishga tushirmang yoki to'g'ridan-to'g'ri terminaldan ishga tushiring.
Ochiladigan menyuda siz ikkita rejimdan birini tanlashingiz mumkin: "To'g'ridan-to'g'ri o'tish" va "stol tennisi":
- To'g'ridan-to'g'ri o'ting: birinchi ustunga mikrosaniyalarda Servo pozitsiyasini kiriting va servo belgilangan joyga o'tishi uchun "Ishga tushirish" tugmasini bosing.
- Ping Pong: Ikkinchi va uchinchi ustunga pastki chegarani va yuqori chegarani kiriting. Bu pastki va yuqori pozitsiya, ular orasida servo orqaga va orqaga o'tadi. "Ping -Pong vaqti" ustunida servo yuqori yoki pastki holatga kelganda kutib turadigan vaqtni millisekundlarda ko'rsatishingiz mumkin. "Ishga tushirish" tugmasini bosing va servo oldinga va orqaga siljiy boshlaydi, "To'xtatish" tugmasini bosing va servo to'xtaydi.
5 -qadam: Sehr qaerda
Oxir -oqibat, men Python va Arduino o'rtasida ketma -ket aloqa o'rnatmoqchi bo'lganlar uchun kodning ba'zi tafsilotlarini ko'rsatmoqchiman.
Endi Python dasturida nima bo'ladi?
Birinchidan, dastur ushbu satrda COM-portlarga biriktirilgan narsani tekshiradi va ro'yxatga saqlaydi:
self. COMPortsList = ro'yxat (serial.tools.list_ports.comports ())
Keyin u taniqli CH340-chipini topguncha ro'yxatni aylanib o'tib, uni saqlaydi va keyin ketma-ket ulanish o'rnatiladi. E'tibor bering, for-loop birinchi CH340 topilishi bilan uziladi.
for in in. COMPortsList: if "CH340" in p [1]: # Arduino Clone self qidiryapsiz. COMPort = p [0] boshqa tanaffus: pass. Ser = serial. Serial (self. COMPort, 57600)
Ketma-ket ulanish COM-porti bilan, 57600 bod tezligi bilan o'rnatiladi.
Va Arduino kodi nima qiladi? Xo'sh, Arduino-da faqat bitta COM-port borligi sababli, ketma-ket ulanish faqat bitta chiziqdan iborat:
Serial.begin (57600);
Endi biz muloqot qilish uchun ikkala portdan ham foydalanishimiz mumkin. Bunday holda, faqat Python -dan Arduino -ga xabarlar. Xabarlar bu erga Python -dan yuboriladi. Ketma -ket ulanish standart sifatida baytlarni uzatadi. Bu ma'lumot yuborishning eng tezkor usuli va men bilganimdek, hali ham keng tarqalgan. Shunday qilib, servo sonining intsi (shuning uchun Arduino qaysi servo harakatlanishini biladi) va mikrosaniyadagi pozitsiya baytga aylanadi.
Buyruq = struct.pack ('> B', self. Place) # "self. Place" int o'zgaruvchisi baytga aylanadi.
self. Ser.write (Buyruq) # Baytni Serial-Port buyrug'iga yozish = int (self. ServoPos.get ()) // 10 # Kirishni maydondan o'qish va int Command = struct.pack (' > B ', Buyruq) # intni baytda aylantirish. Ser.write (Buyruq) # Seriyani portga bayt yozish
Shuningdek, ma'lumotlarni tahlil qilish vaqt talab etadi (masalan, to'rt xil bayt "1", "2", "3" va "0" ni to'rt xil belgilar sifatida emas, balki int 1230 sifatida talqin qilish) va buni Arduino -da qilmagan ma'qul.
Arduino tomonida yuborilgan ma'lumotlar quyidagicha qabul qilinadi:
if (Serial.available ()> 1) {// Agar ketma -ket ma'lumotlar mavjud bo'lsa, u holda tsikl kiritiladi c = Serial.read (); // Birinchi bayt (servo soni) Micros = Serial.read () o'zgaruvchisiga saqlanadi; // Servo pozitsiyasi bu erda saqlanadi Micros = Micros * 10; }
Tavsiya:
Drone baliq ovlash uchun masofadan turib xizmat ko'rsatuvchi tomchi: 7 qadam
Dronli baliq ovlash uchun masofadan boshqaruvchi tomchi: bu erda men o'zim yotqizgan qismlardan ajoyib tez yig'ilgan servo tomizgichni qanday qurganman, uchuvchisiz baliq ovlash sizning droningiz bilan tasodifiy narsalarni tashlab yuborish uchun mos bo'lardi, masalan, do'stlar bilan suhbatlashish va suv tushirish. ularga shar
DuvelBot - ESP32 -CAM pivoga xizmat ko'rsatuvchi robot: 4 qadam (rasmlar bilan)
DuvelBot - ESP32 -CAM pivoga xizmat ko'rsatuvchi robot: Og'ir ish kunidan so'ng, divanda sevimli pivoni ichishga hech narsa yaqin kelmaydi. Mening holimda, bu belgiyalik sarg'ish "Duvel". Ammo, yiqilishdan so'ng, biz eng jiddiy muammoga duch kelmoqdamiz: muzlatgichning davomi
Savdo karta mashinasi uchun karta ajratuvchi (yangilanish 2019-01-10): 12 qadam (rasmlar bilan)
Savdo kartalari uchun karta saralash mashinasi (yangilanish 2019-01-10): savdo kartasi uchun karta tartiblagichi O'zgarish jurnalini oxirgi bosqichda topish mumkin. Orqa fon Men o'z loyihamning motivatsiyasini Kartani oziqlantiruvchi maqolasida allaqachon tushuntirganman. Qisqasi, bolalarim bilan men katta miqdordagi savdo kartasini yig'dik
Sharp Optonica RP-114H-ni qanday ta'mirlash / xizmat ko'rsatish: 11 qadam (rasmlar bilan)
Sharp Optonica RP-114H-ni qanday ta'mirlash / xizmat ko'rsatish kerak: Shunday qilib, men vertikal aylanuvchi, Optonica RP-114H-ni ta'mirlash va texnik xizmat ko'rsatishni tugatdim. pichirlash turi, shuning uchun u umuman xizmat ko'rsatilmagan va
O'z-o'ziga xizmat ko'rsatuvchi CD sotuvchisi axlatdan: 8 qadam
O'z-o'ziga xizmat ko'rsatuvchi kompakt disk sotuvchisi: Musiqachilar: o'z-o'ziga xizmat ko'rsatadigan CD-displey bilan o'z konsertlaringizda ko'proq kompakt-disklarni soting! Meniki axlat qutisi uchun mo'ljallangan narsalardan yasalgan: halogen chiroq va simli ilgaklar. Agar sizda 40 dollar bo'lsa, to'g'ri o'qishni bas qiling. hozir va borib " CD sotuvchisi " Jeff Kartakdan: ht