Satura rādītājs:
- 1. darbība: instrumenti un materiāli
- 2. darbība: izveidojiet to
- 3. darbība: sagatavojiet programmatūru
- 4. solis: atrisiniet Rubika kubu
- 5. darbība. Avota kods
Video: BricKuber projekts - Raspberry Pi Rubiks kuba risināšanas robots: 5 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:58
BricKuber var atrisināt Rubika kubu apmēram mazāk nekā 2 minūtēs.
BricKuber ir atvērtā koda Rubika kuba risināšanas robots, kuru varat izveidot pats
Mēs ar Raspberry Pi gribējām izveidot Rubika kuba risināšanas robotu. Tā vietā, lai dotos uz ātrumu, mēs gājām ar vienkāršību: ja jums ir Raspberry Pi, BrickPi komplekts un standarta LEGO Mindstorms EV3 vai NXT komplekts, jums jāspēj viegli sekot mūsu pēdām. Programmatūra ir uzrakstīta programmēšanas valodā Python. Šeit varat redzēt visu Github avota kodu.
Priekšvēsture Rubika kubs nesen sāka atgriezties. Tā tika izgudrota 1974. gadā, tā ir pasaulē vislabāk pārdotā rotaļlieta. Bet to risināšana prasa pārdomas, pūles un prasmes… tad kāpēc neļaut robotam to izdarīt? Šajā projektā mēs ņemam Raspberry Pi, BrickPi un LEGO Mindstorms komplektu un izveidojam Rubika kuba risināšanas robotu. Vienkārši ievietojiet neatrisinātu Rubika kubu risinātājā, palaidiet pitona programmu, un jūsu Rubika kubs ir atrisināts! Projekts izmanto Pi, lai tieši atrisinātu Rubika kubu. BrickPi3 uzņem neatrisināto Rubika kubu, un Raspberry Pi ar Raspberry Pi kameru fotografē katru Rubika kuba malu. Pi izveido krāsu kvadrātu teksta karti, kas parāda, kur tie atrodas uz kuba. Kad tas ir pilnībā kartējis kubu, Pi izmanto “kociemba” pitona bibliotēku, lai kartētu kustības, kas nepieciešamas Rubika kuba atrisināšanai. Šo informāciju izmanto Pi un BrickPi3, lai atrisinātu Rubika kubu, izmantojot LEGO motorus. Rezultāts: atrisināts Rubika kubs.
1. darbība: instrumenti un materiāli
- BrickPi3 - Mēs izmantosim BrickPi, lai kontrolētu LEGO motorus, kas atrisina Rubika kuba risinātāju.
- Raspberry Pi - Pi veiks apstrādi, fotografēs un komandēs BrickPi.
- Raspberry Pi kamera - Pi kamera uzņems neatrisinātā Rubika kuba attēlu.
- Ethernet kabelis - ierīcei būs nepieciešams savienojums ar internetu. Ja vēlaties to izdarīt, izmantojot Wi -Fi, arī tas ir labi!
- Raspbian for Robots SD Card - programmatūra, kas vada Raspberry Pi. Tas nāk ar lielāko daļu programmatūras, kas nepieciešama šai apmācībai. Programmatūru var lejupielādēt arī bez maksas.
- LEGO Mindstorms EV3 komplekts (31313) - Jums būs nepieciešama kaudze LEGO un divi lieli motori, viens servomotors un ultraskaņas sensors.
- Rubika kubs - mēs atradām vienu, kas šeit griežas diezgan brīvi. Tomēr jūs varat izmantot gandrīz jebkuru 9x9x9 Rubika kubu.
2. darbība: izveidojiet to
Risinātāja veidošana
Šo dizainu iedvesmoja MindCub3r dizains LEGO EV3. Lai izveidotu BricKuber, vispirms izveidojiet MindCub3r. Pilnu LEGO būvniecības instrukciju var atrast šeit.
Rubika kuba risinātāja dizainā ir trīs galvenās kustīgās daļas. Pirmais ir šūpulis Rubika kuba turēšanai. Otrais ir maisītājs, roka, ko izmanto, lai apgrieztu Rubika kubu.
Visbeidzot, mēs pievienojam kameras roku. Sākotnējā MindCubr dizainā EV3 krāsu sensors atradās virs Rubika kuba. Mūsu modificētajā dizainā virs Rubika kuba ir Raspberry Pi kamera. Mēs izmantojam divus LEGO Mindstorms motorus, lai manipulētu ar kubu: pirmais atrodas zem šūpuļa, lai pagrieztu kubu, bet otrais kustina maisītāja roku, lai grieztos kubam pretējā asī.
Salieciet BrickPi3
Šeit varat atrast BrickPi3 montāžas instrukcijas. Mums būs jāsamontē korpuss, jāpievieno BrickPi3, Raspberry Pi, Raspberry Pi kamera, jāpievieno SD karte un jāpievieno baterijas. Lai atvieglotu programmatūras uzstādīšanu, Raspbian for Robots nāk ar lielāko daļu programmatūras, kas jums jau būs nepieciešama. Jums būs nepieciešama vismaz 8 GB SD karte, un jūs vēlaties paplašināt disku, lai tas atbilstu pilnam SD kartes izmēram.
Pievienojiet BrickPi3
Mēs pievienojam BrickPi3 LEGO montāžai. Mēs izmantojām LEGO EV3 “spārnus”, lai atbalstītu BrickPi3 un padarītu to līdzvērtīgu BricKuber korpusam. Tas ir labs solis, lai pievienotu barošanas blokam 8XAA baterijas un pievienotu BrickPi3 barošanas bloku LEGO komplektam. Programmēšanai jūs varat barot BrickPi3, izmantojot USB, uz Raspberry Pi, taču, lai pārvietotu motorus, jums būs jāpiegādā barošana ar Power Pack.
Pievienojiet motorus BrickPi3
Pievienojiet sajaukšanas motoru motora pieslēgvietai “MD”. Pievienojiet šūpuļa motoru BrickPi3 portam “MA”. Pievienojiet kameras sensora motoru “MC” portam (tas ir mazākais servo līdzīgais motors). Lai gan mēs nepārvietosim kameru, iespējams, vēlēsities pielāgot kameras atrašanās vietu, izmantojot motorus.
Pievienojiet Raspberry Pi kameru
Izmantojot LEGO kameras atbalstu, pievienojiet kameru. Kameras mazajam melnajam objektīvam vajadzētu ietilpt starp diviem LEGO staru balstiem. Piestipriniet kameru pie LEGO balstiem ar kādu elektrisko lenti. Šis ir īstais laiks, lai pārliecinātos, ka kamera ir pozicionēta tā, lai varētu uzņemt visu Rubika kubu. Jūs varat uzņemt testa attēlu ar komandu raspistill
raspistill -o cam.jpg
Pārbaudiet, vai kubs ir labi centrēts attēla vidū.
3. darbība: sagatavojiet programmatūru
Jūs varat izmantot jebkuru Raspbian vai Raspbian for Robots versiju - mūsu pielāgoto attēlu, kas tiek piegādāts kopā ar jau instalēto BrickPi3. Ja izmantojat Raspbian standarta versiju, varat instalēt BrickPi3 bibliotēkas, izmantojot komandu
sudo curl -kL dexterindustries.com/update_brickpi3 | bash
Šis solis instalēs visas bibliotēkas, kas nepieciešamas, lai palaistu BrickPi3 jūsu Raspbian attēlā. Izlaidiet šo darbību, ja izmantojat Raspbian for Robots: BrickPi3 jau ir instalēts.
Visbeidzot, instalējiet visas projekta atkarības, izmantojot komandu:
sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | bash
Lai to izdarītu, jūsu BrickPi3 ir jābūt savienotam ar internetu. Projekts ir atkarīgs no vairākām bibliotēkām, tostarp dažām svarīgām bibliotēkas Github Daniel Walton (@dwalton76) bibliotēkām, kuras tiek izmantotas, lai atrisinātu Rubika kubu.
4. solis: atrisiniet Rubika kubu
Ievietojiet šūpulī neatrisinātu Rubika kubu. Palaidiet komandu
sudo python ~/Dexter/BrickPi3/Projekti/BricKuber/BricKuber.py
Robots pagriezīs kubu uz katru seju, un kamera uzņems 6 attēlus, vienu no katras kuba puses. Raspberry Pi noteiks kuba konfigurāciju no sešiem attēliem. Kuba konfigurācija tiks nodota kociemba Python bibliotēkai, lai atrastu efektīvu risinājumu. Visbeidzot, robots veiks gājienus, lai atrisinātu Rubika kubu!
5. darbība. Avota kods
Visu BricKuber avota kodu var atrast mūsu atvērtā pirmkoda github repo šeit.
Šajā projektā tiek izmantotas šādas komandas instalētās programmatūras pakotnes
Ieteicams:
Arduino - Labirinta risināšanas robots (MicroMouse) Sienas robots: 6 soļi (ar attēliem)
Arduino | Labirinta risināšanas robots (MicroMouse) Sienas sekojošais robots: Laipni lūdzam, es esmu Īzāks, un šis ir mans pirmais robots "Striker v1.0". Šis robots tika izstrādāts, lai atrisinātu vienkāršu labirintu. Sacensībās mums bija divi labirinti un robots spēja tos identificēt. Jebkuras citas izmaiņas labirintā var prasīt izmaiņas
Labirinta risināšanas robots (Boe-bot): 5 soļi
Labirinta risināšanas robots (Boe-bot): šī pamācība parādīs, kā izveidot un izgatavot savu labirinta risināšanas robotu, izmantojot vienkāršus materiālus un robotu. Tas ietvers arī kodēšanu, tāpēc ir nepieciešams arī dators
Līdzsvarojošais robots / 3 riteņu robots / STEM robots: 8 soļi
Līdzsvarojošais robots / trīs riteņu robots / STEM robots: mēs esam izveidojuši kombinētu balansēšanas un trīsriteņu robotu, kas paredzēts lietošanai skolās un pēc skolas izglītības programmās. Robota pamatā ir Arduino Uno, pielāgots vairogs (visas konstrukcijas detaļas ir iekļautas), litija jonu akumulators (viss atbilst
Rubikas kuba risinātāja robots: 5 soļi (ar attēliem)
Rubikas kuba risinātāju robots: autonoma robota izgatavošana, kas atrisina fizisku Rubika kubu. Šis ir Robotikas kluba IIT Guwahati projekts. Tas ir izgatavots, izmantojot vienkāršu materiālu, kuru var viegli atrast. Galvenokārt mēs izmantojām Servo motorus & Arduino, lai tos kontrolētu, akrils viņa
Intuitīvs labirinta risināšanas robots: 3 soļi
Intuitīvs labirinta risināšanas robots: šajā pamācībā jūs uzzināsit, kā izveidot labirinta risināšanas robotu, kas atrisina cilvēku zīmētus labirintus. Lai gan lielākā daļa robotu atrisina pirmā veida zīmētos labirintus (jums jāievēro līnijas, tie ir ceļi), normāli cilvēki mēdz zīmēt otrā veida labirintu