Mundarija:

Rubics Cube Solver Bot: 5 qadam (rasmlar bilan)
Rubics Cube Solver Bot: 5 qadam (rasmlar bilan)

Video: Rubics Cube Solver Bot: 5 qadam (rasmlar bilan)

Video: Rubics Cube Solver Bot: 5 qadam (rasmlar bilan)
Video: kubik rubik oll perm😃 SUBSCRIBE❤ #cubeday #shorts #shortvideo #status #subscribe #short 2024, Noyabr
Anonim
Rubics Cube Solver Bot
Rubics Cube Solver Bot

Rubik kubikini hal qiladigan avtonom robot yasash. Bu Robotics Club IIT Guwahati qoshidagi loyihadir.

U osongina topilishi mumkin bo'lgan oddiy materialdan tayyorlangan. Biz asosan ularni boshqarish uchun Servo dvigatellari va Arduino-dan, akril plitalardan, singan Mini chizgichdan, L-qisqichlardan va ikkita lentadan foydalanardik!

Kubni echish algoritmini olish uchun biz github -dan cubejs kutubxonasidan foydalandik.

1 -qadam: Ishlatilgan materiallar

Ishlatilgan materiallar
Ishlatilgan materiallar
  1. 6 Servo dvigatel
  2. Arduino Uno
  3. 3 hujayrali LiPo batareyasi
  4. Akril varaq (qalinligi 8 mm va 5 mm)
  5. Issiq qurol (
  6. Burg'ulash mashinasi
  7. Temir arra
  8. L qisqichlari
  9. Alyuminiy chiziqlar
  10. Mini chizgich/ metall tayoqlar
  11. Ikkita lenta
  12. Fevi Tez
  13. Nut boltlari
  14. Jumper simlari

2 -qadam: Mexanik tuzilmani tayyorlash

Mexanik tuzilmani tayyorlash
Mexanik tuzilmani tayyorlash
Mexanik tuzilmani tayyorlash
Mexanik tuzilmani tayyorlash

Asosiy ramka

  • Taxminan 50 sm * 50 sm qalinlikdagi 8 mm qalinlikdagi akril varaqni oling va har tomondan o'rtasini belgilang (bu sizning robotingizning asosi bo'ladi).
  • Singan chizgichni oling va undan 4 ta temir tayoqchani oling.. (bu tayoqlar slayderingiz uchun yo'l bo'lib xizmat qiladi).
  • Ikkita to'rtburchaklar akril bo'laklarga (har qanday o'lchamdagi) bir -biriga parallel ikkita tayoqchani mahkamlang va bu birikmaning ikkita juftini yasang.
  • Keyingi, slayderni tayyorlash uchun ikkita kichik bo'lak akrilni bir -birining ustiga to'rt burchakda joylashtiring va ularni murvat bilan mahkamlang. Sizga 4 ta bunday slayder kerak bo'ladi.
  • Slayderning ikkita bo'lagini mahkamlashdan oldin, ular orasiga ilgari bog'lab qo'yilgan parallel novdalarni o'tkazing, shunda ajratgichlar tayoqlarning tashqi yuzasiga tegadi.
  • Har bir juft parallel novda uchun ikkita slayder o'tadi.
  • Tayyor bo'lgach, novdalarni 90 graduslik xoch shaklida joylashtiring. Xochning har bir uchida bitta slayder borligiga ishonch hosil qiling.
  • Endi bu kesishgan yo'lni robotning tagiga bir oz balandlikda ulash kifoya. (Balandligi servo dvigatel balandligidan katta ekanligiga ishonch hosil qiling)

    Buning uchun siz L-qisqichli akril biriktirgichlardan foydalanishingiz mumkin, yoki boshqa usul etarli bo'ladi

Shundan so'ng sizning tuzilishingiz tasvirga o'xshash bo'lishi kerak.

Asosiy servolarni ulash

  • Ikkita tayanch servo shunday biriktirilishi kerakki, servo xoch qo'lining ostidadir va markazdan siljiydi.
  • Servo gorizontal holatda uzun boltlar yordamida teshilgan silikon gofretga biriktiriladi, bu esa o'z navbatida taglikka L-qisqich va ikki tomonlama lenta bilan biriktiriladi.

Bosish-tortish tayoqchalarini yasash

  • Servo burchagini nolga qo'ying va qulfni qulfini mos keladigan joyga mahkamlang.
  • Eng yaqin holatda slayderning masofasini taxmin qilish uchun kubni xochning o'rtasiga qo'ying va slayderlarni shu joylarga qo'ying.
  • Ikkita lenta yordamida har bir slayderning pastki qismidagi L shaklidagi alyuminiy chiziqlarni mahkamlang.
  • Endi har bir alyuminiy tasmasini o'z tekisligida joylashgan servo rokkaning yuqori yoki pastki qismidan masofasini o'lchash uchun bu sizning tortish tayog'ining uzunligi bo'ladi.
  • Uzunliklar aniqlangandan so'ng, itargichni alyuminiy tasmasini yoki biror narsani burg'ulash orqali aniqlash mumkin.

Yuqori servolarni o'rnatish

  • Sizning kubingiz qaysi balandlikda hal qilinishini hal qiling. Servo dvigatelning o'qi shu balandlikda bo'lishi kerak.
  • Vertikal holatda murvat yordamida to'rtta servo dvigatelni, ularning har biri teshilgan kremniy gofretga ulang.
  • Gofret endi L shaklidagi alyuminiy tasma ustiga o'rnatiladi, uning asosi slayderga to'g'ri balandlikda o'rnatiladi, shunda servo o'qi kubning o'rtasida joylashgan.

C-tirnoqlari

  • Tirnoqlar shunday bo'lishi kerakki, ular kubning bir tomoniga to'g'ri kelsin, yuqori va pastki qismlari uzunligi kubning yon tomonidan oshmasligi kerak.
  • Buning uchun etarlicha qalinlikdagi akril tasmasini oling va uni qizdiring. Eritgandan so'ng, u C shaklidagi qisqichni hosil qiladi, shunda u kubning bir chetiga yopiladi.
  • C-panjasining o'rtasini belgilang va bu qisqichni markazidagi servo rokchasiga mahkamlang.

Har bir qisqich bir xil balandlikda bo'lishi uchun kerak bo'lganda ozgina sozlashlarni amalga oshiring.

Bu sizning robotingizning mexanik tuzilishini yakunlaydi, kontaktlarning zanglashiga o'tishga imkon beradi.

3 -qadam: O'chirish ulanishlari

O'chirish ulanishlari
O'chirish ulanishlari

Botni boshqarish uchun biz Arduino, kuchlanish regulyatori va 3 hujayrali (12v) LiPo batareyasidan foydalandik.

Servo dvigatellari juda ko'p quvvat olganda, biz har bir dvigatel uchun bittadan 6 ta voltaj regulyatoridan foydalanganmiz.

Dvigatellarning signal kirishlari (uchtasining eng ochiq rangli simlari) Arduino -ning 3, 5, 6, 9, 10, 11 raqamli PWM pinlariga ulangan.

Voltaj regulyatori non paneliga ulangan va 12 voltli batareya bilan quvvatlangan. Chiqish (5V) manbai to'g'ridan -to'g'ri motorlarga etkazib berildi. Dvigatellar zamini ham non paneliga ulangan. Umumiy asos Arduino bilan ham bog'liq edi.

4 -qadam:

Image
Image

5 -qadam: Kod:

Berilgan ikkita fayl dvigatellarga Arduino yordamida muayyan qadamlar uchun buyruq berish uchun yozilgan kodni ko'rsatadi.

Birinchi fayl asosiy funktsiyani va boshqa o'zgaruvchan ta'riflarni o'z ichiga oladi. Ikkinchi fayl kubni yechishda ishlatiladigan har bir harakat uchun funktsiyalarni o'z ichiga oladi (masalan, "soat yo'nalishi bo'yicha yuqoriga burilish" uchun U; "o'ng tomon soat sohasi farqli o'laroq" va boshqalar).

Kubni echish algoritmini olish uchun biz github -dan cubejs kutubxonasidan foydalandik.

Algoritm to'g'ridan -to'g'ri Arduino kodi bilan to'ldirilgan "yuz harakatlarida" natijani beradi.

Tavsiya: