Mundarija:

Arduino va kompyuter boshqaradigan robot qo'l: 10 qadam
Arduino va kompyuter boshqaradigan robot qo'l: 10 qadam

Video: Arduino va kompyuter boshqaradigan robot qo'l: 10 qadam

Video: Arduino va kompyuter boshqaradigan robot qo'l: 10 qadam
Video: Kattalar uchun o’yinchoq 2024, Noyabr
Anonim
Image
Image
Loyiha ortidagi nazariya
Loyiha ortidagi nazariya

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

Loyiha ortidagi nazariya
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

PCB dizayni
PCB dizayni
PCB dizayni
PCB dizayni
PCB dizayni
PCB dizayni

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 ishlab chiqarish
PCB ishlab chiqarish
PCB ishlab chiqarish
PCB ishlab chiqarish
PCB ishlab chiqarish
PCB ishlab chiqarish

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

Qo'lni loyihalash
Qo'lni loyihalash
Qo'lni loyihalash
Qo'lni loyihalash
Qo'lni loyihalash
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

Qismlarni chop etish
Qismlarni chop etish
Qismlarni chop etish
Qismlarni chop etish
Qismlarni chop etish
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

Hammasini bir joyga to'plash
Hammasini bir joyga to'plash
Hammasini bir joyga to'plash
Hammasini bir joyga to'plash
Hammasini bir joyga to'plash
Hammasini bir joyga to'plash
Hammasini bir joyga to'plash
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

Arduino dasturlash
Arduino dasturlash
Arduino dasturlash
Arduino dasturlash
Arduino dasturlash
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

Python dasturlash
Python dasturlash
Python dasturlash
Python dasturlash
Python dasturlash
Python 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

Bo'limlar ro'yxati
Bo'limlar 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: