Talaan ng mga Nilalaman:

BricKuber Project - isang Raspberry Pi Rubiks Cube Solving Robot: 5 Mga Hakbang (na may Mga Larawan)
BricKuber Project - isang Raspberry Pi Rubiks Cube Solving Robot: 5 Mga Hakbang (na may Mga Larawan)

Video: BricKuber Project - isang Raspberry Pi Rubiks Cube Solving Robot: 5 Mga Hakbang (na may Mga Larawan)

Video: BricKuber Project - isang Raspberry Pi Rubiks Cube Solving Robot: 5 Mga Hakbang (na may Mga Larawan)
Video: How To Build a Raspberry Pi Rubiks Cube Solving Robot 2024, Disyembre
Anonim
Image
Image

Maaaring malutas ng BricKuber ang isang Rubik cube sa halos mas mababa sa 2 minuto.

Ang BricKuber ay isang bukas na mapagkukunan ng paglutas ng robot ng Rubik na maaari mong buuin ang iyong sarili

Nais naming bumuo ng isang Rubiks cube paglutas ng robot sa Raspberry Pi. Sa halip na humingi ng bilis, nagpunta kami sa pagiging simple: kung mayroon kang isang Raspberry Pi, isang BrickPi kit, at isang karaniwang LEGO Mindstorms EV3 o NXT Kit, dapat mong madaling masundan ang aming mga yapak. Ang software ay nakasulat sa wika ng programa ng Python. Maaari mong makita ang lahat ng source-code sa Github dito.

Background Ang kubo ng Rubik ay nagsimula kamakailan lamang na gumawa ng isang pagbabalik. Naimbento noong 1974, ito ang laruang larong binebenta sa buong mundo. Ngunit ang paglutas sa kanila ay tumatagal ng pag-iisip, pagsisikap, at kasanayan… kaya bakit hindi hayaan ang isang robot na gawin ito? Sa proyektong ito, kumukuha kami ng isang Raspberry Pi, isang BrickPi, at isang hanay ng mga LEGO Mindstorms at bumuo ng isang robot sa paglutas ng cube ng Rubik. Maglagay lamang ng isang hindi nalutas na cube ng Rubik sa solver, patakbuhin ang programa ng sawa, at malutas ang kubo ng iyong Rubik! Gumagamit ang proyekto ng Pi upang direktang malutas ang Rubik’s cube. Kinukuha ng BrickPi3 ang hindi nalutas na kubo ni Rubik at ang Raspberry Pi ay kumukuha ng larawan ng bawat panig ng kubo ng Rubik kasama ang Raspberry Pi Camera. Lumilikha ang Pi ng isang mapa ng teksto ng mga parisukat na kulay na nagpapakita kung saan matatagpuan ang mga ito sa kubo. Kapag buong mapa nito ang kubo, ang Pi ay gumagamit ng "kociemba" python library upang mapa ang mga galaw na kinakailangan upang malutas ang Rubik's cube. Ang impormasyong ito ay kinuha ng Pi at BrickPi3 upang malutas ang kubo ng Rubik gamit ang mga motor ng LEGO. Ang resulta: isang malulutas na kubo ni Rubik.

Hakbang 1: Mga Tool at Materyales

Gumawa nito
Gumawa nito
  • BrickPi3 - Gagamitin namin ang BrickPi upang makontrol ang mga LEGO motor na malulutas ang solusyong kubo ng Rubik.
  • Raspberry Pi - Gagawin ng Pi ang pagproseso, pagkuha ng mga larawan, at pag-uutos sa BrickPi.
  • Raspberry Pi Camera - Kukuha ng larawan ng Pi Camera ang hindi nalutas na Rubiks cube.
  • Ethernet Cable - Kakailanganin mo ang iyong makina upang makakonekta sa internet. Kung nais mong gawin ito sa paglipas ng wifi, ayos din!
  • Raspbian para sa Robots SD Card - Ang software na nagpapatakbo ng Raspberry Pi. Ito ay kasama ng karamihan ng software na kinakailangan para sa tutorial na ito. Maaari mo ring i-download ang software nang libre.
  • LEGO Mindstorms EV3 Kit (31313) - Kakailanganin mo ng isang tumpok ng LEGO at dalawang malalaking motor, at isang servo motor, at ang Ultrasonic Sensor.
  • A Rubik's Cube - Natagpuan namin ang isa na malayang umikot dito. Maaari mong gamitin ang halos anumang 9x9x9 Rubik’s cube bagaman.

Hakbang 2: Buuin Ito

Gumawa nito
Gumawa nito
Gumawa nito
Gumawa nito

Pagbuo ng Solver

Ang disenyo na ito ay inspirasyon ng disenyo ng MindCub3r para sa LEGO EV3. Upang maitayo ang BricKuber, magsimula sa pamamagitan ng pagbuo ng MindCub3r. Ang mga buong tagubilin sa gusali ng LEGO ay matatagpuan dito.

Ang disenyo ng Rubiks cube solver ay may tatlong pangunahing mga gumagalaw na bahagi. Ang una ay isang duyan upang hawakan ang kubo ng Rubik. Ang pangalawa ay ang shuffler, isang braso na ginagamit upang baligtarin ang kubo ng Rubik.

Panghuli, nagdagdag kami ng isang braso ng camera. Sa orihinal na disenyo ng MindCubr, hawak nito ang sensor ng kulay ng EV3 sa ibabaw ng kubo ng Rubik. Sa aming binagong disenyo, nagtataglay ito ng isang Raspberry Pi Camera sa ibabaw ng kubo ng Rubik. Gumagamit kami ng dalawang mga motor ng LEGO Mindstorms upang manipulahin ang kubo: ang una ay nakaupo sa ibaba ng duyan upang paikutin ang kubo, at ang pangalawa ay gumagalaw ng braso ng shuffler upang paikutin ang kubo sa isang kabaligtaran na axis.

Ipunin ang BrickPi3

Maaari kang makahanap ng mga tagubilin sa pagpupulong para sa BrickPi3 dito. Kakailanganin naming tipunin ang kaso, ilakip ang BrickPi3, ang Raspberry Pi, ang Raspberry Pi Camera, magdagdag ng isang SD Card, at magdagdag ng mga baterya. Upang gawing mas madaling i-set up ang software, ang Raspbian for Robots ay may kasamang karamihan ng software na kakailanganin mo nang mag-setup. Kakailanganin mo ng hindi bababa sa isang 8 GB SD Card, at gugustuhin mong palawakin ang disk upang magkasya sa buong sukat ng SD Card.

Ikabit ang BrickPi3

Idinagdag namin ang BrickPi3 sa pagpupulong ng LEGO. Ginamit namin ang "mga pakpak" ng LEGO EV3 upang suportahan ang BrickPi3 at gawin itong antas sa katawan ng BricKuber. Ito ay isang mahusay na hakbang upang magdagdag ng mga baterya ng 8XAA sa power pack at ikabit ang power pack ng BrickPi3 sa LEGO Assembly. Para sa pagprograma maaari mong paganahin ang BrickPi3 sa pamamagitan ng USB power sa Raspberry Pi, subalit upang ilipat ang mga motor na kakailanganin mong magbigay ng lakas sa Power Pack.

Ikonekta ang Mga Motors sa BrickPi3

Ikabit ang Shuffler Motor sa motor port na "MD". Ikabit ang cradle motor sa port na "MA" sa BrickPi3. Ikabit ang sensor ng Camera ng motor sa port na "MC" (ito ang mas maliit na motor na tulad ng servo). Kahit na hindi namin ililipat ang camera, baka gusto mong ayusin ang lokasyon ng camera gamit ang mga motor.

Ikabit ang Camera ng Raspberry Pi

Gamit ang suporta ng LEGO Camera, ikabit ang camera. Ang maliit na itim na lens ng camera ay dapat magkasya sa pagitan ng dalawang suporta ng LEGO beam. I-secure ang camera sa lugar sa mga suporta ng LEGO gamit ang ilang electrical tape. Ito ay isang magandang panahon upang matiyak na ang camera ay posisyon upang makuha ang buong kubo ng Rubik. Maaari kang kumuha ng larawan ng pagsubok kasama ang utos ng raspistill

raspistill -o cam.jpg

Suriin na ang kubo ay mahusay na nakasentro sa gitna ng larawan.

Hakbang 3: Ihanda ang Software

Maaari mong gamitin ang anumang bersyon ng Raspbian o Raspbian para sa Robots, ang aming pasadyang imahe na kasama ng naka-install na na BrickPi3. Kung gumagamit ka ng isang karaniwang bersyon ng Raspbian, maaari mong mai-install ang mga aklatan ng BrickPi3 gamit ang utos

sudo curl -kL dexterindustries.com/update_brickpi3 | bash

Ang hakbang na ito ay mai-install ang lahat ng mga aklatan na kinakailangan upang patakbuhin ang BrickPi3 sa iyong Larawan sa Raspbian. Laktawan ang hakbang na ito kung gumagamit ka ng Raspbian for Robots: naka-install na ang BrickPi3.

Panghuli, i-install ang lahat ng mga dependency ng proyekto gamit ang utos:

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

Para sa hakbang na ito ang iyong BrickPi3 ay kailangang maiugnay sa internet. Mayroong isang bilang ng mga aklatan na nakasalalay sa proyekto, kabilang ang ilang mga mahalaga ni Daniel Walton (@ dwalton76) sa Github, na ginagamit upang malutas ang kubo ng Rubik.

Hakbang 4: Malutas ang isang Rubik’s Cube

Lutasin ang isang Rubik’s Cube
Lutasin ang isang Rubik’s Cube
Lutasin ang isang Rubik’s Cube
Lutasin ang isang Rubik’s Cube
Lutasin ang isang Rubik’s Cube
Lutasin ang isang Rubik’s Cube

Maglagay ng isang hindi nalutas na cube ng Rubik sa duyan. Patakbuhin ang utos

sudo python ~ / Dexter / BrickPi3 / Mga Proyekto / BricKuber / BricKuber.py

Ang robot ay i-on ang kubo sa bawat mukha at ang camera ay kukuha ng 6 na mga larawan, isa sa bawat panig ng Cube. Tutukoy ng Raspberry Pi ang pagsasaayos ng kubo mula sa anim na larawan. Ang pagsasaayos ng Cube ay ipapasa sa kociemba Python library upang makahanap ng isang mahusay na solusyon. Sa wakas, isasagawa ng robot ang mga galaw upang malutas ang Rubik's Cube!

Hakbang 5: Ang Source Code

Ang lahat ng source code para sa BricKuber ay matatagpuan sa aming open source github repo dito.

Gumagamit ang proyektong ito ng mga sumusunod na mga pakete ng software na naka-install ng utos

Inirerekumendang: