Satura rādītājs:

BricKuber projekts - Raspberry Pi Rubiks kuba risināšanas robots: 5 soļi (ar attēliem)
BricKuber projekts - Raspberry Pi Rubiks kuba risināšanas robots: 5 soļi (ar attēliem)

Video: BricKuber projekts - Raspberry Pi Rubiks kuba risināšanas robots: 5 soļi (ar attēliem)

Video: BricKuber projekts - Raspberry Pi Rubiks kuba risināšanas robots: 5 soļi (ar attēliem)
Video: How To Build a Raspberry Pi Rubiks Cube Solving Robot 2024, Novembris
Anonim
Image
Image

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

Veidojiet to
Veidojiet to
  • 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

Veidojiet to
Veidojiet to
Veidojiet to
Veidojiet 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

Atrisiniet Rubika kubu
Atrisiniet Rubika kubu
Atrisiniet Rubika kubu
Atrisiniet Rubika kubu
Atrisiniet Rubika kubu
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: