Mundarija:

BricKuber loyihasi - Rubiks kubini hal qiladigan malina Pi: 5 qadam (rasmlar bilan)
BricKuber loyihasi - Rubiks kubini hal qiladigan malina Pi: 5 qadam (rasmlar bilan)

Video: BricKuber loyihasi - Rubiks kubini hal qiladigan malina Pi: 5 qadam (rasmlar bilan)

Video: BricKuber loyihasi - Rubiks kubini hal qiladigan malina Pi: 5 qadam (rasmlar bilan)
Video: 7 ta siz uchun qiyin bo`lgan mantiqiy savollar #boshqotirmalar 2024, Noyabr
Anonim
Image
Image

BricKuber Rubik kubigini taxminan 2 daqiqada hal qila oladi.

BricKuber - bu Rubik kubiklarini hal qilish uchun ochiq manba, siz o'zingiz qurishingiz mumkin

Biz Raspberry Pi bilan Rubiks kubini hal qiladigan robot yaratmoqchi edik. Tezlikka bormasdan, biz oddiylik bilan bordik: agar sizda Raspberry Pi, BrickPi to'plami va standart LEGO Mindstorms EV3 yoki NXT to'plami bo'lsa, siz bizning izimizdan osongina yurishingiz kerak. Dastur Python dasturlash tilida yozilgan. Github-dagi barcha manba kodini bu erda ko'rishingiz mumkin.

Ma'lumot Rubik kubigi yaqinda qaytishni boshladi. 1974 yilda ixtiro qilingan, bu dunyodagi eng ko'p sotiladigan o'yinchoq. Ammo ularni hal qilish uchun fikr, harakat va mahorat kerak… Xo'sh, nega robot buni qilishga ruxsat bermaydi? Ushbu loyihada biz Raspberry Pi, BrickPi va LEGO Mindstorms to'plamini olamiz va Rubik kubiklarini hal qiladigan robot yaratamiz. Faqat hal qilinmagan Rubik kubini echgichga qo'ying, python dasturini ishga tushiring va sizning Rubik kubingiz hal qilindi! Loyihada Rubik kubini to'g'ridan -to'g'ri hal qilish uchun Pi ishlatiladi. BrickPi3 hal qilinmagan Rubik kubini oladi va Raspberry Pi Raspberry Pi kamerasi bilan kubikning har bir tomonini suratga oladi. Pi rangli kvadratlarning matnli xaritasini yaratadi, ular kubda qaerda joylashganligini ko'rsatadi. Kubni to'liq xaritaga kiritgandan so'ng, Pi "kociemba" python kutubxonasidan foydalanib, Rubik kubini yechish uchun zarur bo'lgan harakatlarni xaritada ko'rsatadi. Bu ma'lumotlar Pi va BrickPi3 tomonidan Rubik kubigini LEGO dvigatellari yordamida hal qilish uchun olingan. Natija: hal qilingan Rubik kubigi.

1 -qadam: asboblar va materiallar

Uni qurish
Uni qurish
  • BrickPi3 - Biz BrickPi -dan Rubik kublarini hal qiluvchi LEGO dvigatellarini boshqarish uchun foydalanamiz.
  • Raspberry Pi - Pi ishlov beradi, rasmga oladi va BrickPi -ga buyruq beradi.
  • Raspberry Pi kamerasi - Pi Camera hal qilinmagan Rubik kubini suratga oladi.
  • Ethernet kabeli - kompyuteringizga Internetga ulanish kerak. Agar siz buni Wi -Fi orqali qilishni xohlasangiz, bu ham yaxshi!
  • Raspbian for robots SD Card - Raspberry Pi bilan ishlaydigan dastur. Bu darslik uchun zarur bo'lgan dasturiy ta'minotning ko'p qismi bilan birga keladi. Bundan tashqari, dasturiy ta'minotni bepul yuklab olishingiz mumkin.
  • LEGO Mindstorms EV3 to'plami (31313) - Sizga LEGO va ikkita katta dvigatel, bitta servo dvigatel va ultratovush sensori kerak bo'ladi.
  • Rubik kubigi - biz bu erda juda erkin aylanadigan kishini topdik. Siz 9x9x9 o'lchamdagi Rubik kubidan foydalanishingiz mumkin.

2 -qadam: Uni yarating

Uni qurish
Uni qurish
Uni qurish
Uni qurish

Yechuvchini qurish

Ushbu dizayn LEGO EV3 uchun MindCub3r dizaynidan ilhomlangan. BricKuber -ni yaratish uchun MindCub3r -ni yaratish bilan boshlang. LEGO -ni yaratish bo'yicha to'liq ko'rsatmalarni bu erda topishingiz mumkin.

Rubiks kublarini hal qiluvchi dizayni uchta asosiy harakatlanuvchi qismdan iborat. Birinchisi, Rubik kubigini ushlab turadigan beshik. Ikkinchisi - bu shuffler, bu qo'l Rubik kubigini ag'darish uchun ishlatiladi.

Nihoyat, biz kamera qo'lini qo'shamiz. MindCubrning original dizaynida, bu Rubik kubigidagi EV3 rang sensori. Bizning o'zgartirilgan dizaynimizda u Rubik kubogi ustida Raspberry Pi kamerasini ushlab turadi. Biz kubni boshqarish uchun ikkita LEGO Mindstorms dvigatelidan foydalanamiz: birinchisi, kubni aylantirish uchun beshik ostida, ikkinchisi esa shuffler qo'lini siljitib, kubni teskari o'qda aylantiradi.

BrickPi3 ni yig'ing

BrickPi3 uchun montaj ko'rsatmalarini bu erda topishingiz mumkin. Biz korpusni yig'ishimiz, BrickPi3, Raspberry Pi, Raspberry Pi kamerasini ulashimiz, SD -kartani qo'shishimiz va batareyalarni qo'shishimiz kerak bo'ladi. Dasturiy ta'minotni sozlashni osonlashtirish uchun Raspbian for Robots sizga kerakli dasturiy ta'minotning ko'p qismi bilan birga keladi. Sizga kamida 8 gigabaytlik SD -karta kerak bo'ladi va siz diskni SD -kartaning to'liq hajmiga mos ravishda kengaytirishni xohlaysiz.

BrickPi3 -ni ulang

Biz BrickPi3 ni LEGO yig'ilishiga qo'shamiz. Biz BrickPi3 -ni qo'llab -quvvatlash va uni BricKuber tanasi bilan tekislash uchun LEGO EV3 "qanotlarini" ishlatardik. Bu 8XAA batareyalarini quvvat to'plamiga qo'shish va BrickPi3 quvvat paketini LEGO yig'ilishiga ulash uchun yaxshi qadam. Dasturlash uchun siz BrickPi3 -ni USB orqali Raspberry Pi -ga ulashingiz mumkin, lekin dvigatellarni harakatlantirish uchun siz Power Pack -dan quvvat olishingiz kerak bo'ladi.

Motorlarni BrickPi3 ga ulang

Shuffler motorini "MD" motor portiga ulang. Beshik motorini BrickPi3 -dagi "MA" portiga ulang. Kamera sensori motorini "MC" portiga ulang (bu servoga o'xshash kichikroq dvigatel). Biz kamerani qimirlatmasak ham, siz dvigatellar yordamida kameraning joylashishini sozlashni xohlashingiz mumkin.

Raspberry Pi kamerasini ulang

LEGO Camera yordamidan foydalanib, kamerani ulang. Kameraning kichik qora linzalari ikkita LEGO nurlari tayanchlari orasiga to'g'ri kelishi kerak. Kamerani elektr tasmasi bilan LEGO tayanchlariga mahkamlang. Bu kamera Rubik kubigini to'liq tortib oladigan holatda ekanligiga ishonch hosil qilish uchun yaxshi vaqt. Raspistill buyrug'i bilan siz test rasmini olishingiz mumkin

raspistill -o cam.jpg

Rasm o'rtasida kub yaxshi markazlashtirilganligini tekshiring.

3 -qadam: Dasturiy ta'minotni tayyorlang

Siz Raspbian yoki Robot uchun Raspbian -ning istalgan versiyasidan foydalanishingiz mumkin, bu bizning o'rnatilgan rasmimiz, BrickPi3 bilan birga keladi. Agar siz Raspbian standart versiyasidan foydalansangiz, buyruq yordamida BrickPi3 kutubxonalarini o'rnatishingiz mumkin

sudo curl -kL dexterindustries.com/update_brickpi3 | bash

Bu qadam BrickPi3 -ni Raspbian Image -da ishlatish uchun zarur bo'lgan barcha kutubxonalarni o'rnatadi. Agar siz robotlar uchun Raspbian -dan foydalanayotgan bo'lsangiz, bu bosqichni o'tkazib yuboring: BrickPi3 allaqachon o'rnatilgan.

Nihoyat, buyruq yordamida barcha loyiha bog'liqliklarini o'rnating:

sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | bash

Buning uchun BrickPi3 Internetga ulangan bo'lishi kerak. Loyihaga bog'liq bo'lgan ko'plab kutubxonalar mavjud, shu jumladan Rubik kubigini hal qilish uchun ishlatiladigan Github -dagi Daniel Uolton (@dwalton76).

4 -qadam: Rubik kubini eching

Rubik kubigini hal qiling
Rubik kubigini hal qiling
Rubik kubigini hal qiling
Rubik kubigini hal qiling
Rubik kubigini hal qiling
Rubik kubigini hal qiling

Beshikka hal qilinmagan Rubik kubini qo'ying. Buyruqni ishga tushiring

sudo python ~/Dexter/BrickPi3/Projects/BricKuber/BricKuber.py

Robot kubni har bir yuziga buradi va kamera kubning har ikki tomonidan bittadan 6 ta rasm oladi. Raspberry Pi oltita rasmdan kub konfiguratsiyasini aniqlaydi. Samarali echim topish uchun Cube konfiguratsiyasi Python kociemba kutubxonasiga o'tkaziladi. Nihoyat, robot Rubik kubigini echish uchun harakatlarni amalga oshiradi!

5 -qadam: Manba kodi

BricKuber uchun barcha manba kodini bizning ochiq manba github repoimizda topishingiz mumkin.

Ushbu loyiha buyruq bilan o'rnatilgan quyidagi dasturiy paketlardan foydalanadi

Tavsiya: