Mundarija:

Arduino boshqariladigan ikki oyoqli robot: 13 qadam (rasmlar bilan)
Arduino boshqariladigan ikki oyoqli robot: 13 qadam (rasmlar bilan)

Video: Arduino boshqariladigan ikki oyoqli robot: 13 qadam (rasmlar bilan)

Video: Arduino boshqariladigan ikki oyoqli robot: 13 qadam (rasmlar bilan)
Video: REAL RACING 3 LEAD FOOT EDITION 2024, Noyabr
Anonim
Image
Image
Arduino boshqariladigan ikki oyoqli robot
Arduino boshqariladigan ikki oyoqli robot
Arduino boshqariladigan ikki oyoqli robot
Arduino boshqariladigan ikki oyoqli robot

Fusion 360 loyihalari »

Menga har doim robotlar, ayniqsa odamlarning harakatlarini taqlid qilishga urinishlar qiziqardi. Bu qiziqish meni yurish va yugurishga taqlid qila oladigan robotli ikki oyoqli bo'lakni ishlab chiqishga harakat qildi. Ushbu yo'riqnomada men sizga ikki oyoqli robotning dizayni va yig'ilishini ko'rsataman.

Loyihani qurishda asosiy maqsad - bu tizimni iloji boricha mustahkam qilish edi, shuning uchun men turli xil yurish va yugurish mashqlarini sinab ko'rsam ham, uskunaning ishlamay qolishi haqida doim xavotir olmasdim. Bu menga uskunani o'z chegarasiga etkazishga imkon berdi. Ikkilamchi maqsad-bu sevimli mashg'ulotlari va 3D bosib chiqarishdan foydalanib, yanada arzonroq narxga ega bo'lib, uni yanada takomillashtirish va kengaytirish uchun joy qoldirdi. Bu ikkita maqsad birlashtirilgan, har xil tajribalarni o'tkazish uchun mustahkam poydevor yaratadi, bu esa ikki oyoqli odamni yanada aniq talablarga muvofiq ishlab chiqishga imkon beradi.

O'zingizning Arduino tomonidan boshqariladigan Robot Biped -ni yaratish uchun davom eting va agar sizga loyiha yoqsa, "Arduino tanlovida" ovoz bering.

1 -qadam: Dizayn jarayoni

Dizayn jarayoni
Dizayn jarayoni
Dizayn jarayoni
Dizayn jarayoni
Dizayn jarayoni
Dizayn jarayoni

Gumanoid oyoqlar Autodesk -da bepul Fusion 360 modellashtirish dasturidan foydalangan holda yaratilgan. Men servo dvigatellarni dizaynga import qilishdan boshladim va ularning atrofidagi oyoqlarini qurdim. Men servo dvigatelning miliga qarama -qarshi bo'lgan ikkinchi burilish nuqtasini ta'minlaydigan qavslar ishlab chiqdim. Dvigatelning har ikki uchida ikkita val mavjud bo'lsa, bu konstruktiv barqarorlikni beradi va oyoqlar yuk ko'targanda yuzaga kelishi mumkin bo'lgan burilishlarni yo'q qiladi. Aloqalar rulmanni ushlab turish uchun mo'ljallangan, qavslar esa mil uchun murvat ishlatgan. Bog'lamlar yong'oq yordamida vallarga o'rnatilgandan so'ng, rulman servo dvigatel milining qarama -qarshi tomonida silliq va mustahkam burilish nuqtasini ta'minlaydi.

Ikki oyoqli oyoqni loyihalashda yana bir maqsad - servo dvigatellar tomonidan berilgan momentdan maksimal darajada foydalanish uchun modelni iloji boricha ixcham saqlash edi. Havolalarning o'lchamlari umumiy uzunlikni minimallashtirishda katta harakat diapazoniga erishish uchun qilingan. Ularni juda qisqa qilib qo'yish qavslarning to'qnashuviga olib keladi, harakatlanish oralig'ini kamaytiradi va uni juda uzun qilib qo'ysa, aktuatorlarga keraksiz tork yuklaydi. Nihoyat, men Arduino va boshqa elektron komponentlar o'rnatiladigan robot korpusini loyihalashtirdim.

Eslatma: qismlar quyidagi bosqichlardan biriga kiritilgan.

2 -qadam: Arduino -ning roli

Arduinoning roli
Arduinoning roli

Ushbu loyihada Arduino Uno ishlatilgan. Arduino sinovdan o'tgan har xil yurish yo'llarini hisoblash uchun javobgardir va harakatlanuvchilarga tekis yurish harakatini yaratish uchun aniq burchaklarda aniq tezlik bilan harakat qilishni buyuradi. Arduino - ko'p qirraliligi tufayli loyihalarni ishlab chiqish uchun ajoyib tanlov. U ko'plab IO pinlarini ta'minlaydi, shuningdek, boshqa mikrokontroller va sensorlar bilan aloqa qilish uchun ketma -ket, I2C va SPI kabi interfeyslarni ta'minlaydi. Arduino shuningdek, tezkor prototip yaratish va sinovdan o'tkazish uchun ajoyib platformani taqdim etadi, shuningdek ishlab chiquvchilarga yaxshilanish va kengayish imkoniyatini beradi. Loyihaning boshqa versiyalarida harakatni qayta ishlash uchun inertial o'lchov birligi, masalan, yiqilishni aniqlash va notekis erlarda dinamik harakatlanish va to'siqlarni oldini olish uchun masofani o'lchash sensori bo'ladi.

Ushbu loyiha uchun Arduino IDE ishlatilgan. (Arduino shuningdek veb-ga asoslangan IDE-ni taqdim etadi)

Eslatma: Robot uchun dasturlarni quyidagi bosqichlardan biridan yuklab olish mumkin.

3 -qadam: kerakli materiallar

Kerakli materiallar
Kerakli materiallar
Kerakli materiallar
Kerakli materiallar
Kerakli materiallar
Kerakli materiallar
Kerakli materiallar
Kerakli materiallar

Bu erda o'zingizning Arduino -da ishlaydigan Bipedal robotini ishlab chiqarish uchun zarur bo'lgan barcha komponentlar va qismlar ro'yxati keltirilgan. Barcha qismlar odatda mavjud bo'lishi va topilishi oson bo'lishi kerak.

ELEKTRONIKA:

Arduino Uno x 1

Towerpro MG995 servo dvigateli x 6

Perfboard (o'lchamlari Arduino -ga o'xshash)

Erkak va urg'ochi bosh pimlari (har biri taxminan 20 ta)

Jumper simlari (10 dona)

MPU6050 IMU (ixtiyoriy)

Ultrasonik sensor (ixtiyoriy)

QURILMA:

Skeytbord rulmani (8x19x7 mm)

M4 yong'oq va murvat

3D -printerli filament (agar sizda 3D -printer bo'lmasa, mahalliy ish joyida 3D -printer bo'lishi kerak yoki bosma Internetda juda arzonga tushishi mumkin)

Arduino va 3D printerlarini hisobga olmaganda, loyihaning umumiy qiymati 20 dollarni tashkil qiladi.

4 -qadam: 3D bosilgan qismlar

3D bosilgan qismlar
3D bosilgan qismlar
3D bosilgan qismlar
3D bosilgan qismlar
3D bosilgan qismlar
3D bosilgan qismlar
3D bosilgan qismlar
3D bosilgan qismlar

Loyiha uchun zarur bo'lgan qismlar maxsus tayyorlangan bo'lishi kerak, shuning uchun ularni chop etish uchun 3D printer ishlatilgan. Bosmalar 40% to'ldirish, 2 perimetr, 0,4 mm nozul va qatlam balandligi 0,1 mm bo'lgan PLA bilan tanlangan. Quyida siz o'z versiyangizni chop etish uchun qismlar va STLlarning to'liq ro'yxatini topishingiz mumkin.

E'tibor bering: bu erdan qismlar ro'yxatdagi ismlardan foydalaniladi.

  • oyoq servo ushlagichi x 1
  • oyoq servo ushlagich oynasi x 1
  • tizza servo ushlagichi x 1
  • tizza servo ushlagich oynasi x 1
  • oyoq servo ushlagichi x 1
  • oyoq servo ushlagich oynasi x 1
  • rulman x 2
  • servo shox havolasi x 2
  • oyoq havolasi x 2
  • ko'prik x 1
  • elektron moslama x 1
  • elektronika oralig'i x 8 (ixtiyoriy)
  • servo shox bo'shlig'i x 12 (ixtiyoriy)

Hammasi bo'lib, ajratgichlarni hisobga olmaganda, 14 qismdan iborat. Umumiy bosib chiqarish vaqti taxminan 20 soat.

5 -qadam: Servo qavslarni tayyorlash

Servo qavslarni tayyorlash
Servo qavslarni tayyorlash
Servo qavslarni tayyorlash
Servo qavslarni tayyorlash
Servo qavslarni tayyorlash
Servo qavslarni tayyorlash

Barcha qismlar chop etilgandan so'ng siz servo va servo qavslarni o'rnatishni boshlashingiz mumkin. Avval rulmani tizza servo ushlagichiga kiriting. O'rnatish qulay bo'lishi kerak, lekin men rulmanni majburlash o'rniga teshikning ichki yuzasini biroz zımparalamoqchiman, bu qismni sindirish xavfini tug'diradi. Keyin M4 murvatini teshikdan o'tkazing va uni yong'oq yordamida torting. Keyin, oyoq halqasini ushlang va unga berilgan vintlar yordamida dumaloq servo shoxni mahkamlang. Oyoq bog'lamini servo dvigatelni ulash uchun ishlatadigan vintlar yordamida tizza servo ushlagichiga ulang. Dvigatelni mil ilgari mahkamlangan murvatning bir tomonida bo'lishi uchun tekislang. Nihoyat, servoni qolgan yong'oq va murvat bilan mahkamlang.

Kalça servo ushlagichi va oyoq servo ushlagichi bilan ham shunday qiling. Buning uchun sizda uchta servo dvigatel va ularga mos keladigan qavslar bo'lishi kerak.

Eslatma: Men bir oyog'imni qurish bo'yicha ko'rsatma beraman, ikkinchisi shunchaki aks ettirilgan.

6 -qadam: Bog'lanish qismlarini yaratish

Bog'lanish qismlarini yaratish
Bog'lanish qismlarini yaratish
Bog'lanish qismlarini yaratish
Bog'lanish qismlarini yaratish
Bog'lanish qismlarini yaratish
Bog'lanish qismlarini yaratish

Qavslar yig'ilgandan so'ng, havola qilishni boshlang. Rulman zanjirini o'rnatish uchun, rulman uchun teshiklarning ichki yuzasini yana bir oz zımpara qiling, so'ngra rulmanni har ikki tomonning teshigiga suring. Rulmanni bir tomoni tekis bo'lguncha itarib qo'yganingizga ishonch hosil qiling. Servo shoxini o'rnatish uchun ikkita dumaloq servo shoxni va beriladigan vintlarni oling. Shoxlarni 3D bosib chiqarishga joylashtiring va teshiklarni tekislang, shundan keyin 3D bosma tomondan vintni mahkamlab, shoxni 3D bosib chiqaring. Men bu vintlar uchun 3D bosilgan servo shox oralig'idan foydalanishni tavsiya qilaman. Havolalar o'rnatilgandan so'ng, siz oyoqni yig'ishni boshlashingiz mumkin.

7 -qadam: oyoqlarni yig'ish

Oyoqlarni yig'ish
Oyoqlarni yig'ish
Oyoqlarni yig'ish
Oyoqlarni yig'ish
Oyoqlarni yig'ish
Oyoqlarni yig'ish
Oyoqlarni yig'ish
Oyoqlarni yig'ish

Havolalar va qavslar yig'ilgandan so'ng, siz ularni robot oyog'ini qurish uchun birlashtira olasiz. Birinchidan, servo shox havolasidan foydalanib, kestirib servo qavs va tizza servo qavsini biriktiring. E'tibor bering: shoxni servoga mahkamlamang, chunki keyingi bosqichda sozlash bosqichi mavjud va agar shox servo dvigatelga mahkamlangan bo'lsa, bu noqulaylik tug'diradi.

Qarama -qarshi tomondan, rulman halqasini yong'oq yordamida chiqadigan murvatlarga mahkamlang. Nihoyat, chiqib ketuvchi boltni tizza servo ushlagichidagi rulman orqali kiritish orqali oyoq servo ushlagichini mahkamlang. Va servo milni boshqa tomondan tizza servo ushlagichiga ulangan servo shoxiga mahkamlang. Bu qiyin ish bo'lishi mumkin va men buning uchun ikkinchi qo'lni tavsiya qilaman.

Boshqa oyoq uchun qadamlarni takrorlang. Malumot sifatida har bir qadamga biriktirilgan rasmlardan foydalaning.

8 -qadam: Maxsus PCB va simlar

Maxsus PCB va simlar
Maxsus PCB va simlar
Maxsus PCB va simlar
Maxsus PCB va simlar
Maxsus PCB va simlar
Maxsus PCB va simlar

Bu ixtiyoriy qadam. Elektr simlarini yanada toza qilish uchun men maxsus taxta va bosh pimlari yordamida maxsus PCB yasashga qaror qildim. PCBda servo dvigatel simlarini to'g'ridan -to'g'ri ulash uchun portlar mavjud. Bundan tashqari, men inertial o'lchov birliklari yoki ultratovushli masofali sensorlar kabi boshqa datchiklarni kengaytirmoqchi va qo'shmoqchi bo'lsam, qo'shimcha portlarni qoldirdim. Shuningdek, u servo dvigatellarni quvvatlantirish uchun zarur bo'lgan tashqi quvvat manbai uchun portni o'z ichiga oladi. Arduino uchun USB va tashqi quvvat o'rtasida o'tish uchun o'tish moslamasi ishlatiladi. Arduino va tenglikni vintlardek va 3D bosilgan bo'shliqlar yordamida elektron moslamaning har ikki tomoniga o'rnating.

Eslatma: Arduino -ni kompyuterga USB orqali ulashdan oldin, o'tish simini ajratib qo'yganingizga ishonch hosil qiling. Buni qilmaslik Arduino -ga zarar etkazishi mumkin.

Agar siz tenglikni ishlatmaslikka qaror qilsangiz va uning o'rniga taxtani ishlatsangiz, servo ulanishlar:

  • Chap kestirib >> pin 9
  • O'ng kestirib >> pin 8
  • Chap tizzadan >> pin 7
  • O'ng tizza >> pin 6
  • Chap oyoq >> pin 5
  • O'ng oyoq >> pin 4

Agar siz PCB -ni yuqoridagi tartibda bajarishga qaror qilsangiz, O'XH portini yuqoriga qaratib, PCB portlarini o'ngdan chapga ishlating. PCBni Arduino -ga yuqoridagi pin raqamlari yordamida ulash uchun oddiy erkak va ayol o'tish simlaridan foydalaning. Shuningdek, topraklama pinini ulang va USB quvvatisiz ishlashga qaror qilganingizda, xuddi shu topraklama potentsialini va Vin pinini yarating.

9 -qadam: tanani yig'ish

Tanani yig'ish
Tanani yig'ish
Tanani yig'ish
Tanani yig'ish
Tanani yig'ish
Tanani yig'ish

Ikki oyoq va elektronika yig'ilgandan so'ng, robot korpusini yaratish uchun ularni birlashtiring. Ikki oyoqni bir -biriga bog'lash uchun ko'prik qismidan foydalaning. Kalça servo ushlagichida va servo dvigatelni ushlab turadigan yong'oq va murvatlarda bir xil o'rnatish teshiklaridan foydalaning. Nihoyat, elektron moslamani ko'prikka ulang. Ko'prik va elektron moslamadagi teshiklarni tekislang va bo'g'in qilish uchun M4 yong'oqlari va murvatlarini ishlating.

Yordam uchun biriktirilgan rasmlarga qarang. Shu bilan siz robotning apparat tuzilishini yakunladingiz. Keling, dasturiy ta'minotga o'tamiz va robotni hayotga qaytaramiz.

10 -qadam: Ichki sozlash

Boshlang'ich sozlash
Boshlang'ich sozlash
Boshlang'ich sozlash
Boshlang'ich sozlash
Boshlang'ich sozlash
Boshlang'ich sozlash

Loyihani qurishda men ko'rgan narsa shundaki, servo dvigatellar va shoxlar bir -biriga mos kelmasligi uchun ular parallel bo'lishi kerak. Shu sababli, har bir servo dvigatelning "markaziy pozitsiyasi" oyoqlari bilan tekislanishi uchun qo'lda sozlanishi kerak. Bunga erishish uchun servo shoxlarini har bir servodan olib tashlang va initial_setup.ino eskizini ishga tushiring. Dvigatellar markaziy holatiga kelgandan so'ng, shoxlarni qayta tiklang, shunda oyoqlari tekis va oyoqlari erga mukammal parallel bo'ladi. Agar shunday bo'lsa, omadingiz bor. Agar qo'shni yorliqda joylashgan constants.h faylini ochmasangiz va servo ofset qiymatlarini o'zgartiring (1-6-qatorlar), oyoqlari to'liq tekislangan va oyoq tekis bo'lguncha. Qadriyatlar bilan o'ynang, shunda siz o'zingiz uchun zarur bo'lgan narsalar haqida tasavvurga ega bo'lasiz.

Konstantalar o'rnatilgach, bu qiymatlarga e'tibor bering, chunki ular keyinchalik kerak bo'ladi.

Yordam uchun rasmlarga qarang.

11 -qadam: Kinematika haqida bir oz

Kinematika haqida bir oz
Kinematika haqida bir oz
Kinematika haqida bir oz
Kinematika haqida bir oz
Kinematika haqida bir oz
Kinematika haqida bir oz

Ikki oyoqli odamni yugurish va yurish kabi foydali harakatlarni bajarishga majbur qilish uchun har xil yurishlarni harakat yo'llari shaklida dasturlash kerak. Harakat yo'llari - bu oxirgi efektor (bu holda oyoqlar) bo'ylab harakatlanadigan yo'llar. Bunga erishishning ikki yo'li bor:

  1. Har xil dvigatellarning bo'g'in burchaklarini qo'pol kuch bilan oziqlantirish usullaridan biri bo'ladi. Bu yondashuv ko'p vaqt talab qiladigan, zerikarli va xatolarga to'la bo'lishi mumkin, chunki hukm faqat ingl. Buning o'rniga, kerakli natijalarga erishishning yanada oqilona usuli bor.
  2. Ikkinchi yondashuv, barcha bo'g'in burchaklari o'rniga, oxirgi effektor koordinatalarini oziqlantirish bilan bog'liq. Bu teskari kinematika deb nomlanadi. Foydalanuvchi koordinatalarni kiritadi va qo'shma burchaklar oxirgi effektorni belgilangan koordinatalarga joylashtirish uchun moslashadi. Ushbu usulni qora quti deb hisoblash mumkin, u koordinatalarni kiritadi va bo'g'in burchaklarini chiqaradi. Ushbu qora qutining trigonometrik tenglamalari qanday ishlab chiqilganligi bilan qiziquvchilar uchun yuqoridagi diagramaga qarang. Qiziqmaganlar uchun tenglamalar allaqachon dasturlashtirilgan va ularni x, z kirishini oluvchi va dvigatellarga mos keladigan uchta burchakni chiqaradigan pos funktsiyasi yordamida ishlatish mumkin.

Ushbu funktsiyalarni o'z ichiga olgan dasturni keyingi bosqichda topish mumkin.

12 -qadam: Arduino dasturlash

Arduino dasturlash
Arduino dasturlash
Arduino dasturlash
Arduino dasturlash

Arduino -ni dasturlashdan oldin, faylga ozgina o'zgartirish kiritish kerak. Eslatib o'taman, men sizdan yozuv olib tashlashni so'ragan edim. Bir xil konstantalarni constants.h faylida o'rnatilgan qiymatlarga o'zgartiring.

Eslatma: Agar siz ushbu yo'riqnomada ko'rsatilgan dizaynlardan foydalansangiz, hech narsani o'zgartira olmaysiz. Agar sizlardan ba'zilari o'z dizaynlarini yaratgan bo'lsa, siz ofset bilan birga yana bir nechta qiymatlarni o'zgartirishingiz kerak bo'ladi. Doimiy l1 kestirib, tizza orasidagi masofani o'lchaydi. Doimiy l2 tizza va to'piq orasidagi masofani o'lchaydi. Agar siz o'zingizning modelingizni yaratgan bo'lsangiz, bu uzunliklarni o'lchang va doimiylarni o'zgartiring. Oxirgi ikkita sobit yurish uchun ishlatiladi. StepClearance doimiyligi, qadamdan keyin oldinga siljish paytida oyoqning qanchalik baland ko'tarilishini o'lchaydi va stepHeight doimiyligi, qadamlar qo'yilganda, erdan kestirib balandlikka qadar bo'lgan balandlikni o'lchaydi.

Barcha doimiylar sizning ehtiyojingizga qarab o'zgartirilgach, siz asosiy dasturni yuklashingiz mumkin. Asosiy dastur robotni yurish holatiga qo'yadi va oldinga qadam qo'yishni boshlaydi. Funktsiyalarni har xil yurish, tezlik va qadam uzunligini o'rganishga bo'lgan ehtiyojingizga qarab o'zgartirish mumkin.

13 -qadam: Yakuniy natijalar: tajriba o'tkazish vaqti

Yakuniy natijalar: tajriba o'tkazish vaqti
Yakuniy natijalar: tajriba o'tkazish vaqti
Yakuniy natijalar: tajriba o'tkazish vaqti
Yakuniy natijalar: tajriba o'tkazish vaqti
Yakuniy natijalar: tajriba o'tkazish vaqti
Yakuniy natijalar: tajriba o'tkazish vaqti

Ikki oyoqli odam cho'zilmasdan uzunligi 10 sm dan 2 sm gacha bo'lgan qadamlarni bosishi mumkin. Yurish muvozanatini saqlagan holda tezlikni ham o'zgartirish mumkin. Arduino kuchi bilan birlashtirilgan bu ikki oyoqli yurish va to'pni tepish paytida sakrash yoki muvozanat kabi boshqa maqsadlar bilan tajriba o'tkazish uchun mustahkam platforma beradi. Men sizga o'z yurishlaringizni yaratish va har xil yurishlar robotning ishlashiga qanday ta'sir qilishini aniqlash uchun oyoqlarning harakatlanish yo'llarini o'zgartirishga harakat qilishni maslahat beraman. Tizimga uning funktsional imkoniyatlarini oshirish uchun IMU va masofa sensori kabi sensorlar, notekis yuzalarda dinamik harakatlanish bilan tajriba o'tkazish uchun oyoqlarga kuch sensorlar qo'shilishi mumkin.

Umid qilamanki, sizga bu ko'rsatma yoqdi va o'zingizni yaratish uchun ilhom etarli. Agar sizga loyiha yoqqan bo'lsa, uni "Arduino tanlovi" da ovoz berish orqali qo'llab -quvvatlang.

Baxtli qilish!

Arduino musobaqasi 2020
Arduino musobaqasi 2020
Arduino musobaqasi 2020
Arduino musobaqasi 2020

2020 yilgi Arduino tanlovining birinchi sovrini

Tavsiya: