Mundarija:

DIY o'quv mikro: bit robot: 8 qadam (rasmlar bilan)
DIY o'quv mikro: bit robot: 8 qadam (rasmlar bilan)

Video: DIY o'quv mikro: bit robot: 8 qadam (rasmlar bilan)

Video: DIY o'quv mikro: bit robot: 8 qadam (rasmlar bilan)
Video: “Cambridge” unversitetini tamomlagan o’zbek yigiti bilan suhbat | Husniddin Ochildiyev 2024, Iyul
Anonim
DIY ta'lim mikro: bit robot
DIY ta'lim mikro: bit robot
DIY ta'lim mikro: bit robot
DIY ta'lim mikro: bit robot

Bu ko'rsatma sizga nisbatan arzon, qobiliyatli va arzon robotni qanday yasashni ko'rsatib beradi. Bu robotni ishlab chiqishdan maqsadim, ko'pchilik odamlar uchun mumkin bo'lgan narsani taklif qilish edi, ular kompyuter fanini qiziqarli tarzda o'rgatishlari yoki bu haqda bilib olishlari kerak edi.

Agar siz ushbu robotni yaratgan bo'lsangiz, siz uning turli xil sensorlari va aktuatorlaridan bahramand bo'lishingiz mumkin, lekin siz ishlab chiqargan versiyangizga qarab ancha rivojlangan ishlarni bajarishingiz mumkin (men ikkita versiyani taqdim etaman). Bu robot yordamida siz mikro: bitga ko'zlar (180 ° ko'rish!) Va oyoqlarni (aniq harakat bilan!) Berasiz, micro: bit sizga LED matritsa, radioaloqa, bluetooth aloqasi, akselerometr kabi ajoyib imkoniyatlarni taqdim etadi., kompaslar, lekin MicroPython yoki chizishga o'xshash vizual dasturlash tili bilan hamma narsaga kirish (aslida C ++ va javascriptda ham, lekin men o'qishga unchalik mos bo'lmaganlarni topaman).

Men o'quvchilar va ishlab chiqaruvchilarni mobil robototexnika, elektronika, dizayn va yog'ochni kesish haqida ko'proq ma'lumotga ega bo'lishga o'rgatish uchun men ham bu ko'rsatma ustida ishlayman. Buning uchun men hamma narsani iloji boricha modulli qilib yaratdim. Masalan, men erkin yig'ish va demontaj qilish, yangilanishlarni va disk raskadrovka qilishni osonlashtirish uchun hech qanday elim ishlatmayman. Men nima bo'layotganini asta -sekin tushunishingiz, ishlarning kerakli darajada ishlayotganini tekshirishingiz va ishlaydigan robot bilan oxirigacha etib borishingiz uchun qadamlarni iloji boricha bosqichma -bosqich bajaraman.

1 -qadam: qismlarni yig'ish

Parchalarni yig'ish
Parchalarni yig'ish

Ushbu loyiha uchun sizga kerak bo'lgan minimal:

  • 5 mm qalinlikdagi MDF yog'och va skelet uchun lazerli kesuvchi
  • 1x18650 lityum batareya, energiya uchun 1x batareya qalqoni va uzuvchi
  • 1xMicro: Bit karta va 1xMicro: miya uchun bit kengaytmasi (garchi ikkalasini ham Arduino osongina almashtirsa bo'ladi)
  • 2x28BYJ-5V pog'onali dvigatellar, 2xA4988 qadamli dvigatellar va 2x ishlab chiqarish platasi, haydovchilarni oyoqlarga o'rnatish uchun.
  • Ko'zlar uchun 1x TOF10120 va 1x Mini 9g Servo dvigatel Ba'zi kabellar va vintlardek
  • 1x universal g'ildirak, balandligi = 15 mm

Ulardan faqat uchtasi standart emas, shuning uchun ularni topish uchun havolalar: bu erda ishlatilgan kengaytma panelini toping (lekin men sizga robotning toza versiyasi o'rniga uni ishlatishni tavsiya qilaman. Sizga kerak bo'ladi) Dizaynga deyarli hech narsa o'zgartirmang, bu ayol-ayol sarlavhalarini burish bilan simlarni ancha soddalashtiradi), bu erda batareya qalqoni va universal g'ildirak.

Ideal holda, sizning ixtiyoringizda:

  • Multimetr
  • Non paneli
  • Lehimlash temir

Ular uchun, shuningdek, lazerni kesish uchun, sizning joyingizda biron bir fablab borligini tekshiring! Bu ilhomlantiruvchi ishlab chiqaruvchilar bilan uchrashish uchun ajoyib joylar!

2 -qadam: Oyoqlarni tayyorlang

Oyoqlarni tayyorlash
Oyoqlarni tayyorlash
Oyoqlarni tayyorlash
Oyoqlarni tayyorlash
Oyoqlarni tayyorlash
Oyoqlarni tayyorlash
Oyoqlarni tayyorlash
Oyoqlarni tayyorlash

Sizning birinchi vazifangiz, agar siz buni qabul qilsangiz, step motorini boshqaruvchi sifatida micro: bit yordamida aylantirishdan iborat bo'ladi! Nima uchun qadam motor? Men reduktorli shahar motorini tanlashim mumkin edi, lekin men ularni sinab ko'rdim va past motorlarda past tezlikda ishlashini qiyin deb bilaman. Men g'ildiraklarim qanday tezlikda aylanishini aniq bilish yaxshi bo'lardi deb o'yladim. Shu sabablarga ko'ra, step motorlari eng yaxshi variant edi.

Xo'sh, endi 4988 drayveri yordamida 28BYJ dvigatelini qanday boshqarish mumkin? Javob … biroz uzoq. Men uni bu ko'rsatmaga to'g'ri joylashtira olmadim, shuning uchun men bu maqsadda bu erda topasiz. Men sizni yuqoridagi rasmda ko'rsatilgandek yon tomonlarga o'rnatish uchun 2x2 mm teshikli 17 mm o'lchamdagi 26x22 mm o'lchamdagi kichik prototip taxtasini yaratib, shu qadamlarni oxirigacha bajarishga taklif qilaman. chap tomonda, SLP va RSTni lehimlashni eslatish uchun shu erda joylashgan).

Prototip taxtasi bilan bitta dvigatel bilan ishlashdan so'ng, men o'z ishimni biroz tartibli qilish uchun o'z tenglikni kartamni ishlab chiqdim. Men tegishli easyEDA faylini biriktirdim. Bu txt fayli, lekin siz uni osonlikcha bepul onlayn tahrirlash platformasi yordamida ochishingiz mumkin.

3 -qadam: Men nurni ko'raman !! (Ixtiyoriy)

Men nurni ko'raman !! (Ixtiyoriy)
Men nurni ko'raman !! (Ixtiyoriy)
Men nurni ko'raman !! (Ixtiyoriy)
Men nurni ko'raman !! (Ixtiyoriy)
Men nurni ko'raman !! (Ixtiyoriy)
Men nurni ko'raman !! (Ixtiyoriy)

Agar siz shunchaki qurmoqchi bo'lsangiz va boshqa hech narsa qilmasangiz, TOF10120 -ni micro: bit -ga qanday ulashni bilish uchun ushbu bosqichning oxirgi xatboshisiga o'ting. Agar bajarilmasa.

Bizning micro: bit hech qanday kamera yoki yaqinlik sensori bilan ta'minlanmaganligi sababli, uni har qanday mobil robototexnika uchun ko'r qilib qo'yadi. U radio emitent va qabul qilgich bilan birga keladi, lekin bu skeletni bizda mavjud bo'lgan narsalarga o'rnatishga va masofadan boshqariladigan robotni olishga imkon beradi. Ammo robotimizni avtonom qilish juda yaxshi emasmi? Ha bo'lardi! Keling, u erga qanday borishni ko'rib chiqaylik.

Bizni qiziqtirgan narsa - robotimizni sensorlar bilan jihozlash, bizning robotimiz atrof -muhit haqida ba'zi ma'lumotlarga ega bo'lishi. Sensorlarning ko'p turlari mavjud, lekin bu erda biz yaqinlik sensori haqida to'xtalamiz. Men bu robotni yaratganimda, mening maqsadim robotning hech narsaga qulab tushmasligi edi, shuning uchun men uning to'siqlarni sezishini xohlardim. Buning uchun bir nechta variant ham mavjud. Birinchisi, juda oddiy, bamperlardan foydalanish bo'lishi mumkin, lekin men atrof -muhit haqidagi ma'lumotlarni biroz cheklangan deb bilaman. Boshqa tomondan, siz kamera (yoki Lidar yoki kinekt!) Qo'shishni o'ylashingiz mumkin. Men kameralarni, kompyuterni ko'rishni va bularning barchasini yaxshi ko'raman, lekin afsuski Micro: bit bularni qo'llab -quvvatlamaydi (biz mikro: bit yoki Arduino emas, balki bunday qurilmalarni qo'llab -quvvatlash uchun malina Pi dan foydalanishimiz kerak).

Xo'sh, kamera va bamperlar orasidagi mikro: bitni qo'llab -quvvatlash nima? Atrofga yorug'lik yuboradigan va dunyo haqida ma'lumot olish uchun qabul qilinganlarni tekshiradigan kichik faol sensorlar mavjud. Men bilgan GP2Y0A41SK0F edi, u to'siqlargacha bo'lgan masofani taxmin qilish uchun triangulyatsiya usulidan foydalanadi. Ammo men yaxshiroq narsani topa olamanmi, deb hayron bo'ldim, shuning uchun men tadqiqot o'tkazdim va TOF10120 (va GY-VL53L0XV2 ni kashf qildim, lekin men hali qabul qilmadim:(). Mana, siz kashf qilishingiz uchun yaxshi maqola. Asosan, bu sensor to'siqlarni aks ettiruvchi infraqizil signalni chiqaradi va keyin aks ettirilgan nurni oladi. Yorug'lik oldinga va orqaga o'tishiga qarab, sensor to'siqning masofasini taxmin qilishi mumkin (shuning uchun TOF nomi = uchish vaqti). Kichik o'lchamlari, masofa diapazoni va quvvat talablari uchun men TOF10120 dan foydalanishga qaror qildim.

Mening birinchi g'oyam uchtasini robotga qo'yish edi (bittasi oldinga va ikkitasi yon tomonga), xitoylik yangi yil va COVID-19 pandemiyasi buni xohlamadi, chunki yuk tashish bilan bog'liq muammolar paydo bo'ldi. Men faqat bitta TOF10120 bilan cheklanganman, men uni yon tomondan ko'rishni xohladim va yonimda servo dvigatellar bor edi, men sensorimni servoga o'rnatishga qaror qildim. Endi ikkita narsa etishmayapti: TOF10120 -ni micro: bit bilan qanday ishlatishim kerak? Va servo bilan bir xil savol.

Yaxshiyamki, micro: bit I2C aloqa protokoli bilan jihozlangan va bu bizning hayotimizni osonlashtiradi: qizil simni 3.3V ga, qora - erga, yashil - SCLga va ko'k - SDAga ulang va bu apparat qismi uchun. Dasturiy ta'minot uchun men sizni I2C aloqasi haqida bir oz o'qishni va mikro: bitga biriktirilgan python kodini sinab ko'rishni taklif qilaman. Bu dastur sizga REPL (O'qishni baholash bosma aylanasi) datchigi o'lchagan masofani bosib chiqarishi kerak. Bo'ldi shu. Biz shunchaki mikro: bitni ko'rdik.

Keling, hayvonlar anatomiyasi bilan o'xshashliklarimni davom ettirishga ruxsat bersangiz, bo'ynini burib qo'yaylik. Bizga kerak bo'lgan yagona fikr bu servo dvigatelni micro: bit bilan haydash. Bu qism uzoq davom etmoqda, shuning uchun men sizga kerakli ma'lumotlarni va uni sinash uchun ishlatgan kodni o'z ichiga olgan havolani beraman. Agar xohlasangiz, pin0 yordamida servoni boshqarish uchun men ham oddiy kod qo'shdim. Servoingizni 3,3V emas, balki 5V bilan quvvatlantirishni unutmang.

4 -qadam: Batareya qalqonini buzish

Batareya qalqonini buzish
Batareya qalqonini buzish
Batareya qalqonini buzish
Batareya qalqonini buzish
Batareya qalqonini buzish
Batareya qalqonini buzish

Endi biz aktuatorlar va datchiklarni tayyorladik, batareyani boshqarish tizimini ko'rib chiqish vaqti keldi. Men tanlagan batareya qalqoni haqida ko'proq bilib olishingiz uchun sizga ushbu maqolani o'qishni maslahat beraman. Men buni juda aniq va tushunarli deb bilaman. Ushbu maqoladan biz batareya qalqonining ko'pgina afzalliklarini ko'rishimiz mumkin, lekin men qabul qilmoqchi bo'lmagan bitta muhim kamchilik bor: ON/OFF tugmasi faqat USB chiqishiga ta'sir qiladi. Bu shuni anglatadiki, agar siz o'chirgichni o'chirsangiz, qolgan 3,3V va 5V pinlarining hammasi quvvatlanadi. Natijada, biz bu pinlarni robotimiz uchun ishlatayotganimizda, kalit hech narsa qilmaydi …

Lekin men batareyamni bo'shatib yubormaslik uchun robotimni o'chirib qo'ymoqchiman, shuning uchun batareya qalqonini sindirishim kerak edi. Bu chiroyli bo'lmaydi, lekin u ishlaydi va hech qanday xarajat talab qilmaydi. Shuning uchun men kalitni o'chirib qo'yishni xohlayman, shunda u batareyani batareyadan himoya qiladi. Menda tenglikni ushlab turadigan uskunam yo'q, lekin menda plastmassa bo'laklari bor. Endi tasavvur qiling -a, men bir bo'lak plastmassani kesib tashladim, u yuqoridagi birinchi rasmdagidek batareykali batareyamning bir chetiga qalqonga sig'ishi uchun. Endi kontaktlarning zanglashiga ochiq va batareyam xavfsiz saqlanadi.

Ha, lekin men bu plastmassani qo'yish va olib tashlash uchun batareya qalqoniga kirish uchun robotni ochishni xohlamayman! Oson: kalitni oling va kalitga ulangan simlarning har biriga ikkita kichik kvadrat alyuminiy yopishtiring. Ikkala alyuminiy bo'lagini bir -biridan ajratib qo'yish va alyuminiyni tizimning tashqarisiga ochish uchun shu ikki bo'lak alyuminiyni plastmassaga yopishtiring. Odatda shunday qilish kerak. Yangi ijodingizni hujayraning yonidagi batareya qalqoni ichiga joylashtiring va kalit sizga uyaga ulangan kontaktlarning zanglashini ochish yoki yopish imkonini beradi.

Oxirgi narsa: robotni yig'ish va demontaj qilishni osonlashtirish uchun sizga akkumulyator qalqoni ustidagi ayol boshlarini lehimlashni maslahat beraman. Shunday qilib, siz dvigatellar va ularning haydovchilari yordamida qurilgan narsalarni osongina ulashingiz va ajratishingiz mumkin.

5 -qadam: 3D dizayn va kesish

3D dizayn va kesish
3D dizayn va kesish
3D dizayn va kesish
3D dizayn va kesish

Hozir etishmayotgan yagona narsa - bu bizning barcha komponentlarimizni birlashtiradigan tuzilmani qurishdir. Buning uchun men tinkercad onlayn platformasidan foydalandim. Bu lazer to'sar uchun narsalarni loyihalash uchun etarli bo'lgan asosiy SAPRni bajarish uchun juda yaxshi muhit.

Biroz o'ylangandan so'ng, o'ylash vaqti keldi. Buning uchun men o'zimdagi turli qismlarning 3D modellarini yig'a boshladim (avval servo va TOFni tenglamadan chiqarib). Bunga batareya va qalqon, qadamli motorlar va dvigatel drayverlari va, albatta, uzaytirgichli mikro: bit kiradi. Men mos keladigan barcha 3D modellarni stl fayllari sifatida biriktirdim. Jarayonni engillashtirish uchun men robotimni nosimmetrik qilishga qaror qildim. Natijada, men robotning faqat yarmini oldim va yuqoridagi rasmda ko'rsatilgan dizaynga keldim.

Shundan bir nechta versiya hayotga kirdi, men ulardan ikkitasini tanladim:

  • Simlar ko'rinmasligini ta'minlaydigan yaqinlik sensori bo'lmagan juda tartibli. Avtonom bo'lmasa ham, bu versiya, masalan, iPad orqali bluetooth orqali dasturlashtirilishi mumkin, yoki radio signallari yordamida boshqarilishi uchun dasturlashtirilishi mumkin, masalan, yuqoridagi videoda ko'rsatilgandek boshqa mikro: bit.
  • Mobil robototexnika sohasida ancha oldinga siljish imkonini beradigan juda oz tartibli, bu servo dvigatelda o'rnatilgan yaqinlik sensori yordamida to'siqlarning masofasini 180 ° ko'rish bilan bosib o'tishga imkon beradi.

Buni amalga oshirish uchun sevimli Fablab -ga o'ting va o'zingiz xohlagan modelni kesish uchun topilgan lazerni ishlating: 5mm MDF -dagi kesish qismlariga mos keladigan design1_5mmMDF.svg va design1_3mmMDF fayllariga mos keladigan birinchisi. yog'och va 3 mm dan kesiladiganlar; ikkinchisi design2_5mmMDF.svg fayliga mos keladi. Qora konturlarni kesish va qizil ranglarini o'yilgan qilib belgilang.

Yon eslatma: Men qizil naqshni pimp qilish uchun qo'shdim. Bu Hilbert to'ldirish funktsiyasi, men biriktirilgan python kodi yordamida yaratdim.

6 -qadam: Yirtqichni o'rnatish

Yirtqichni o'rnatish
Yirtqichni o'rnatish
Yirtqichni o'rnatish
Yirtqichni o'rnatish
Yirtqichni o'rnatish
Yirtqichni o'rnatish

Robotning birinchi versiyasini o'rnatish uchun men bajargan qadamlar quyidagilar (rasmlar odatda to'g'ri tartibda bo'lishi kerak):

  1. Dvigatellarning ko'k qopqog'ini echib oling va motorning orqa qismidan kabel chiqib ketishi uchun biroz kesib oling.
  2. Dvigatellarni har tomondan M2 vintlardek va murvat yordamida mahkamlang.
  3. Prototip taxtasini yon tomonlarga 2x2 mm teshiklari va vintlardek va murvat yordamida mahkamlang.
  4. A4988 drayverlarini joylashtiring va motor kabellarini tartibli tuting.
  5. Universal g'ildirakni pastki qismi ostiga qo'ying va yon tomonlarini qo'shing.
  6. Micro: bitning kengaytirish panelini yuqori qismiga o'rnating.
  7. Moslashuvchan old qopqoqning pastki qismini o'rnating.
  8. Batareya qalqonini qo'ying va hamma narsani ulang (buning uchun men hali ham xohlagan kengaytma taxtasini etkazib berishni kutgan edim va menda faqat bitta ayol boshi bor edi), men eski kompyuterdan IDE kabelini qayta ishladim. Bularning barchasini yopiladigan old qopqoq bilan yopish uchun kabellarim taxtaga yopishmagan). Men bergan kodni moslash juda oson bo'lsa -da, uni to'g'ridan -to'g'ri ishlatish uchun siz chap STEP -ni 2 -pin, o'ng STEP -ni 8 -pin, chap DIR -ni 12 -pin, o'ng DIR -ni 1 -pin bilan ulashingiz kerak bo'ladi.
  9. Micro: bitni kengaytmaga qo'ying.
  10. Har qanday harakatni davom ettirishdan oldin MoveTest.py bilan ishlashini tekshiring.
  11. Kalitni yuqori qismiga o'rnating va plastmassa uchini lityum hujayraning yoniga qo'ying.
  12. Old qopqoqning yuqori qismini burab qo'ying.
  13. Orqa tomonga o'ting, shunda ishingiz tugadi! Puf! Men bunday qadamlarni kutmagan edim! Buni so'z bilan tushuntirishdan ko'ra, bu haqda o'ylash va buni qilish osonroq! (Ishonchim komilki, ma'lumotlar hali ham yo'qoladi!)

Agar siz ikkinchi versiyani yaqinlik sensori bilan qurayotgan bo'lsangiz, unda:

  1. Yuqoridagi ko'rsatmalarga amal qiling. Faqatgina farq shundaki, siz 7 -bosqichda bir nechta M2 ajratgichlarni qo'shishingiz kerak bo'ladi (garchi men shunday qildim, lekin bu shart emas), 8 va 13 -qadamlarga e'tibor bermang (chunki old qopqoq yo'q)
  2. Servo dvigatelni M2 vintlar bilan mahkamlang va servo VCC va GND ni to'g'ridan -to'g'ri batareya qalqonining 5V tarmog'iga ulang va boshqaruv kirishini mikro: bitning 0 -piniga ulang.
  3. Servo tepasiga chiqadigan ikkita yog'och bo'lakni vint bilan mahkamlang, ustiga TOF sensorini va servo bilan birga keladigan oq plastmassani mahkamlang.
  4. Oxirgi qurilmani servoga joylashtiring va sensorni 3 -bosqichda tasvirlangan I2C micro: bit yordamida ulang.

7 -qadam: Dastur

Bo'ldi shu ! Sizda mikro: python yoki makekodda dasturlash mumkin bo'lgan robot bor. Men bu erga yuqoridagi videolarni bajarish uchun ishlatgan namunaviy kodni qo'shdim:

  • 1 -misol: robotni micro: bitga radioControl.py va boshqa micro: bitga ReadAccelero.py -ni qo'ying, ikkinchi mikro: bitning moyilligi yordamida robotni boshqaring.
  • 2 -misol: Autonom.py -ni robotning 2 -versiyasiga qo'ying, u atrof -muhitni o'rganadi.

Bu oddiy misollar, siz undan uzoqroqqa borishingiz mumkin. Masalan, men bir vaqtning o'zida lokalizatsiya va xaritalashni yaxshi ko'raman va odatda bu robotning 2 -versiyasida sizga kerak bo'lgan hamma narsa bor! Menga bunday loyihani amalga oshirishning bir katta kamchiligi shundaki, mikro: bitli PWM drayveri - bu barcha kanallar uchun bir xil taymerdan foydalanadigan dasturiy ta'minot drayveri, ya'ni biz o'rnatgan barcha PWMlar bir xil chastotaga ega bo'lishi kerak (bu men qilgan narsa) namuna kodlarini qachon yozganimni bilmayman, lekin Autonom.py yozganimda g'alati narsa aniqladim).

8 -qadam: Oldinga borish

Dizaynni yaxshilashda ikkilanmang, men ko'rmagan ba'zi muammolarni hal qiling. Masalan, oxir -oqibat:

  • Robotning pastki qismiga IQ sensori qo'shing, shunda u er qora yoki oqmi yoki u mening stolim oxirigacha etib keladimi?
  • Batareyani boshqarish tizimini o'zgartiring, chunki men uni hali qoniqtirmayman. Haqiqatan ham, hozirda batareyani qayta zaryad qilish uchun robotni demontaj qilish kerak, chunki u hujayra yoki batareya ekranini chiqarib oladi … Men shunday rejalashtirmoqdaman: 1. robotning orqa qismiga mini-USB ulagichini qo'shish. Men batareya qalqoni bilan bog'lanaman, shunda men uni zaryad qila olaman; 2. Zaryad tugaganini ko'rish uchun batareya qalqonidagi LEDlarni ko'rish uchun pastki qismidagi teshikni kesib oling.
  • Har xil chastotali PWMlarni chiqarishning maqbul usuli mavjudligini tekshiring.
  • TOF10120 ni almashtirish uchun VL53L0XV2 ni sinab ko'ring, chunki bu arzonroq variant bo'lishi mumkin, bu esa undan ham ko'proq odamlarga qulay bo'ladi. Men bu sensor haqida ko'proq o'qigan bo'lsam -da, menimcha, bu arzon narxni ishlab chiqargan kompaniya buni ataylab qilish qiyin bo'lgan …
  • G'ildiraklarning bardoshli bo'lishi uchun har xil dizaynlarni sinab ko'ring (agar men g'ildiraklarni ko'p marta olib kirsam, yog'och asta -sekin shikastlanadi deb o'ylayman. Agar men yog'ochni elastikroq qilib qo'ysam, dizaynni o'zgartirib yuboraman. uni uzoqroq saqlashga qodir bo'ling)

Elektronika va mexanika haqidagi bilimlarimni kengaytirishga yordam bergan EPFL mobil robototexnika jamoasi (hozirda Biorobotics laboratoriyasining bir qismi) odamlariga katta rahmat!

Tavsiya: