Mundarija:
- 1 -qadam: Loyiha ortidagi nazariya
- 2 -qadam: tenglikni loyihalash
- 3 -qadam: PCB yaratish
- 4 -qadam: qo'lni loyihalash
- 5 -qadam: qismlarni chop etish
- 6 -qadam: Hammasini bir joyga to'plash
- 7 -qadam: Arduino dasturlash
- 8 -qadam: Python -da dasturlash
- 9 -qadam: qismlar ro'yxati
- 10 -qadam: Yakuniy fikrlar
Video: Arduino va kompyuter boshqaradigan robot qo'l: 10 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Robot qurollari sanoatda keng qo'llaniladi. Bu montaj ishlari uchun bo'ladimi, payvandlash yoki hatto bittasi ISS (Xalqaro kosmik stantsiya) ga ulash uchun ishlatiladi, ular odamlarga ishda yordam beradi yoki odamni butunlay almashtiradi. Men qurgan qo'l - bu ob'ektlarni harakatlantirish uchun ishlatilishi kerak bo'lgan robotli qo'lning kichikroq ko'rinishi. U servolarni boshqarish uchun o'rnatilgan kutubxonaga ega bo'lgan arduino pro mini tomonidan boshqariladi. Servolarni PWM (Pulse Width Modulation) boshqaradi, uni dasturlash qiyin emas, lekin bu kutubxona ishni osonlashtiradi. Foydalanuvchi voltaj bo'linishi vazifasini bajaradigan potentsiometrlar yordamida yoki servo dvigatellarni boshqarish uchun 4 ta slayderdan foydalanadigan kompyuter dasturidan foydalanishi mumkin.
Ushbu loyiha uchun men o'z shaxsiy PCB -ni loyihalashim va yasashim, qo'lning 3D modellarini yaratishim va hamma narsani boshqaradigan kod yozishim kerak edi. Buning ustiga, men arduino -ga signallarni yuboradigan python -dagi qo'shimcha dasturni kodladim, u signalni dekodlay oladi va servolarni foydalanuvchi o'rnatgan joyga o'tkazadi.
1 -qadam: Loyiha ortidagi nazariya
Arduino shu tariqa ajoyibki, u bepul kutubxona bilan ishlaydi. Ushbu loyiha uchun men Servo.h kutubxonasidan foydalandim, bu servolarni boshqarishni ancha osonlashtiradi.
Servo dvigatel PWM -Pulse Width Modulation tomonidan boshqariladi, ya'ni servo -ni boshqarish uchun siz qisqa kuchlanish pulslarini qilishingiz kerak. Servo bu signalning uzunligini dekodlashi va belgilangan joyga aylanishi mumkin. Va bu erda men yuqorida aytib o'tilgan kutubxonadan foydalanardim. Men signalning uzunligini mustaqil hisoblashim shart emas edi, lekin men kutubxonaning parametrlarini gradus bo'yicha o'tkazadigan funktsiyalarni ishlatardim va u signal beradi.
Servolarni boshqarish uchun men kuchlanish bo'luvchi vazifasini bajaruvchi potansiometrlardan foydalanardim. Arduino platalarida men loyiha uchun ishlatgan bir nechta analog/raqamli konvertorlar mavjud. Asosan, arduino potentsiometrdagi o'rta pimdagi kuchlanishni kuzatadi va agar u bir tomonga burilsa, 0 volt (qiymat = 0), ikkinchi tomondan 5 volt (qiymat = 1023). Keyin bu qiymat 0 - 1023 dan 0 - 180 oralig'ida o'lchanadi va keyin yuqorida aytib o'tilgan funktsiyaga o'tkaziladi.
Yana bir mavzu - arduino bilan ketma -ket muloqot, men uni qisqacha yoritaman. Asosan, kompyuterda yozilgan dastur, foydalanuvchi tanlagan qiymatni yuboradi, arduino uni dekodlay oladi va servolarni belgilangan joyga o'tkazadi
2 -qadam: tenglikni loyihalash
Men 2 ta tenglikni yaratdim - bittasi asosiy boshqaruv uchun, bu erda arduino va pinlar, ikkinchisida esa potentsiometrlar. 2 ta tenglikni paydo bo'lishining sababi shundaki, men robot qo'lni xavfsiz masofadan boshqarishni xohlardim. Ikkala davr ham berilgan uzunlikdagi kabel orqali ulanadi - mening holimda 80 sm.
Quvvat manbai uchun men tashqi adapterni tanladim, chunki men ishlatgan servolar arduino etkazib bera olmagandan ko'ra ko'proq quvvat sarflaydi. Ko'rib turganingizdek, men hali aytmagan ba'zi kondansatörler bor. Ular filtrlash uchun ishlatiladigan kondansatörlerdir. Siz bilganingizdek, servo motor qisqa impulslar bilan boshqariladi. Bu impulslar kuchlanish pasayishi va potentsiometrlarning 0-5 voltsli diapazoni endi kichikroq diapazonga ega bo'lishi mumkin. Bu shuni anglatadiki, o'rta pimdagi kuchlanish o'zgaradi va arduino bu qiymatni oladi va servo dvigatel o'rnini o'zgartiradi. Bu abadiy davom etishi mumkin va bu ba'zi kondansatkichlar bilan parallel ravishda bartaraf etilishi mumkin bo'lgan istalmagan tebranishlarni keltirib chiqaradi.
3 -qadam: PCB yaratish
PCB yaratish uchun sizga buni o'qishni taklif qilaman.
Men "Glossy paper on Iron" usulini qo'lladim va u juda yaxshi chiqdi.
Keyin men PCB qismlarini lehimladim. Ko'ryapsizmi, men kelajakda kerak bo'lganda arduino soketidan foydalanganman.
4 -qadam: qo'lni loyihalash
Bu loyihani amalga oshirishning eng qiyin qismi emas edi.
Butun sozlash 8 qismdan iborat bo'lib, ularda 4 ta harakatlanmaydigan qism - potentsiometrlar uchun quti va arduino joylashgan taglik - qolgan to'rttasi qo'lning o'zi. Men juda tafsilotlarni aytmayman, faqat dizayn juda intuitiv va qaysidir ma'noda sodda. Bu mening shaxsiy PCB va servo qismlarim ro'yxatiga kirgizish uchun mo'ljallangan.
5 -qadam: qismlarni chop etish
Uning qismlari Prusa printerida chop etildi. Ba'zi yuzlarni biroz maydalash va teshiklarni burg'ulash kerak edi. Qo'llab -quvvatlovchi ustunlarni ham olib tashlash kerak.
6 -qadam: Hammasini bir joyga to'plash
Sarlavhada aytilganidek, men bularning barchasini birlashtirdim.
Avval simlarni potansiometrlarga, keyin esa PCBga lehimladim. Potentsiometrlar teshiklarga juda mos tushdi va men qutini pastki qismida bosilgan ustunlarga tenglikni teng ravishda yopishtirdim. Siz taxtada va qutiga teshik ochishingiz mumkin, lekin men uni yopishtirish etarli ekanligini bilib oldim. Keyin men qutining ikkala qismini yopib qo'ydim va ularni o'zim yaratgan teshiklarga mos keladigan 4 vint bilan mahkamladim.
Keyingi qadam sifatida men ikkala taxtani ulash uchun tekis lenta kabelini yasadim.
Asosiy qutiga men ulagichning VCC pinidan, keyin VC kartasiga va GND dan GND ga ulagichning simlarini lehimladim. Keyin men ulagichni joyiga issiq yopishtirdim va ustunlarga taxtani o'rnatdim. Ulagich teshikka to'g'ri joylashadi, shuning uchun issiq elim kerak emas.
Keyin vintlar yordamida pastki servo qutining pastki qismiga biriktirdim.
Shundan so'ng, men qutining yuqori qismini pastki qismiga qo'ydim va potentsiometr qutisidagi kabi 4 vint bilan mahkamladim.
Keyingi qism biroz murakkabroq edi, lekin men qo'lning qolgan qismini turli xil yong'oqlar va prokladkalar bilan birlashtirishga muvaffaq bo'ldim va bu men kutgandek qattiq emas edi, chunki men qismlar orasidagi tolerantlikni yaratdim, shuning uchun ular bilan ishlash osonroq.
Va oxirgi qadam sifatida men qutilarning pastki qismiga lenta qo'ydim, aks holda ular siljiydi.
7 -qadam: Arduino dasturlash
Men ilgari loyiha orqasida dastur qanday ishlashini aytib o'tgan edim, lekin men uni yanada ko'proq buzaman.
Shunday qilib, boshida biz ba'zi o'zgaruvchilarni aniqlashimiz kerak. Ko'pincha u 4 marta ko'chiriladi, chunki bizda 4 ta servo bor va menimcha, dasturni biroz qisqartirish uchun murakkabroq mantiq qilishning hojati yo'q.
Keyinchalik, servo pimlari aniqlangan bo'sh joy sozlamalari mavjud.
So'ngra, void loop - cheksiz tsiklli dasturning bir qismi. Bu qismda dastur potentsiometr o'lchagichidan qiymatni oladi va chiqishga qo'yadi. Ammo bitta muammo borki, potentsiometrning qiymati biroz sakraydi, shuning uchun men oxirgi 5 qiymatning o'rtacha qiymatini tashkil etadigan filtrni qo'shishim kerak edi va keyin u chiqishga kirishadi. Bu keraksiz chayqalishni oldini oladi.
Dasturning oxirgi qismi ketma -ket port ma'lumotlarini o'qiydi va yuborilgan ma'lumotlarga asoslanib nima qilish kerakligini hal qiladi.
Kodni to'liq tushunish uchun sizga arduino rasmiy veb -saytlariga kirishni taklif qilaman.
8 -qadam: Python -da dasturlash
Loyihaning bu qismi kerak emas, lekin menimcha, bu loyihaga ko'proq qiymat beradi.
Python bir nechta bepul kutubxonalarni taklif qiladi, lekin men bu loyihada faqat tkinter va seriallardan foydalanaman. Tkinter GUI (Grafik foydalanuvchi interfeysi) uchun ishlatiladi va uning nomi aytilganidek ketma -ket aloqa uchun ishlatiladi.
Bu kod minimal qiymati 0 va maksimal 180 bo'lgan 4 ta slayder bilan GUIni yaratadi. Siz uchun bu daraja va har bir slayder bitta servoni boshqarish uchun dasturlashtirilgan bo'lishi mumkin. Bu dastur juda oddiy - bu qiymatni oladi va uni arduino -ga yuboradi. Lekin uni yuborish usuli qiziq. Agar siz birinchi servo qiymatini 123 darajaga o'zgartirishni tanlasangiz, u 1123 arduino qiymatiga yuboriladi. Har bir yuborilgan raqamning birinchi raqami qaysi servo boshqarilishini bildiradi. Arduino -da bu kodni ochadigan va to'g'ri servo harakatlanadigan kod mavjud.
9 -qadam: qismlar ro'yxati
- Arduino Pro Mini 1 dona
- Servo FS5106B 1 dona
- Servo Futaba S3003 2 dona
- Pin sarlavhasi 2x5 1 dona
- Pin sarlavhasi 1x3 6 dona
- Kondensator 220uF 3 dona
- Micro Servo FS90 1 dona
- AWP-10 ulagichi 2 dona
- Ulagich FC681492 1 dona
- P-B100G1 kalitini 1 dona
- Soket 2x14 1 dona
- TTL-232R-5v-konvertor 1 dona
- Potentsiometr B200K 4 dona
- va boshqa ko'plab vintlar, prokladkalar va yong'oqlar
10 -qadam: Yakuniy fikrlar
Buni o'qiganingiz uchun tashakkur va umid qilamanki, men sizga hech bo'lmaganda turtki berdim. Bu mening birinchi yirik loyiham, uni men Internetdan va birinchi ko'rsatmali postlardan nusxa ko'chirmasdan qildim. Bilaman, qo'lni yangilash mumkin, lekin hozircha men bundan mamnunman. Barcha qismlar va manba kodlari bepul, siz uni ishlatishingiz va xohlaganingizcha o'zgartirishingiz mumkin. Agar sizda biron bir savol bo'lsa, ularni sharhlar bo'limida so'rang. Siz videoni ham ko'rishingiz mumkin, ular unchalik sifatli emas, lekin ular loyihaning funksionalligini ko'rsatadi.
Tavsiya:
Bir stakan kompyuter (kompyuter qutisi): 9 qadam
Kompyuter chashkasi (kompyuter qutisi): Mening poyabzalimning o'limi Mening shaxsiy kompyuterim poyabzal qutisida baxtli yashadi. Biroq, bir kuni poyabzal qutisi baxtsiz hodisadan vafot etdi. Shunday qilib, men studiyamning sxemasiga muvofiq tezda yangi shassi yasash va shaxsiy kompyuterimni biroz yangilash uchun qo'limdagi akril plitalardan foydalanishga qaror qildim
Qanday qilib Arduino yordamida odamni boshqaradigan robot qilish mumkin: 3 qadam
Qanday qilib Arduino yordamida odamni ergashtiradigan robot qilish mumkin: odam robotga ergashadi va odamga ergashadi
Robot: Windows Phone boshqaradigan mobil telefonning ikki yo'li.: 6 qadam (rasmlar bilan)
Robot: Windows Phone tomonidan boshqariladigan ikki yo'lli mobil telefonlar ro'yxati: Ro'yxat: Arduino Uno L 293 (ko'prik) HC SR-04 (Sonar moduli) HC 05 (Bluetooth moduli) Tg9 (Micro Servo) tishli qutisi bo'lgan dvigatel (ikkita) 6 AA) Kontaktli linzalarni ushlab turuvchi simlar (erkak va ayol pinlari) Kabelni issiq yopishtiruvchi (tayoq
Evdu-Arduino o'rnatilgan platformasi yordamida hisoblarni halqa bilan boshqaradigan aqlli basketbol o'yini: 13 qadam
"Evive-Arduino" o'rnatilgan platformasidan foydalangan holda hisoblarni halqa bilan boshqaradigan aqlli basketbol arja o'yini: O'yinlarning eng qiziqarli qismi- bu arkad o'yinlari. Shunday qilib, nima uchun biz o'zimizni uyda qilmasligimiz haqida o'yladik! Mana, biz hozirgacha o'ynagan eng qiziqarli DIY o'yini - DIY Arja Basketbol O'yini! Bu nafaqat
GiggleBot yordamida Lidar boshqaradigan robot yarating: 8 qadam
GiggleBot yordamida Lidar boshqaradigan robot yarating: Ushbu qo'llanmada biz GiggleBotni labirint qiyinchiliklarini engishga undaymiz. Biz GiggleBot -ga servo o'rnatamiz, unga masofa sensori o'rnatamiz. Yugurish paytida servo oldinga va orqaga aylanadi, shunda masofa sensori