Innholdsfortegnelse:

BricKuber Project - en Raspberry Pi Rubiks Cube Solving Robot: 5 trinn (med bilder)
BricKuber Project - en Raspberry Pi Rubiks Cube Solving Robot: 5 trinn (med bilder)

Video: BricKuber Project - en Raspberry Pi Rubiks Cube Solving Robot: 5 trinn (med bilder)

Video: BricKuber Project - en Raspberry Pi Rubiks Cube Solving Robot: 5 trinn (med bilder)
Video: How To Build a Raspberry Pi Rubiks Cube Solving Robot 2024, Juni
Anonim
Image
Image

BricKuber kan løse en Rubiks kube på omtrent 2 minutter.

BricKuber er en åpen kildekode for Rubiks kubeoppløsningsrobot du kan bygge selv

Vi ønsket å bygge en Rubiks kubeoppløsningsrobot med Raspberry Pi. I stedet for å gå for fart, gikk vi med enkelhet: hvis du har en Raspberry Pi, et BrickPi -sett og et standard LEGO Mindstorms EV3 eller NXT -sett, bør du enkelt kunne følge i våre fotspor. Programvaren er skrevet på programmeringsspråket Python. Du kan se all kildekoden på Github her.

Bakgrunn Rubiks kube har nylig begynt å komme tilbake. Den ble oppfunnet i 1974 og er verdens mest solgte leketøy. Men å løse dem krever tanke, innsats og dyktighet… så hvorfor ikke la en robot gjøre det? I dette prosjektet tar vi en Raspberry Pi, en BrickPi og et sett med LEGO Mindstorms og bygger en Rubiks kubeoppløsningsrobot. Bare legg en uløst Rubiks kube i løsningen, kjør python -programmet, og Rubiks kube er løst! Prosjektet bruker Pi til å løse Rubiks kube direkte. BrickPi3 tar den uløste Rubiks kube og Raspberry Pi tar et bilde av hver side av Rubiks kube med Raspberry Pi -kameraet. Pi lager et tekstkart over fargekvadratene som viser hvor de er plassert på kuben. Når den har fullstendig kartlagt kuben, bruker Pi pythonbiblioteket "kociemba" for å kartlegge bevegelsene som trengs for å løse Rubiks kube. Denne informasjonen er tatt av Pi og BrickPi3 for å løse Rubiks kube ved hjelp av LEGO -motorene. Resultatet: en løst Rubiks kube.

Trinn 1: Verktøy og materialer

Bygg det
Bygg det
  • BrickPi3 - Vi bruker BrickPi til å kontrollere LEGO -motorene som løser Rubiks terningsløser.
  • Raspberry Pi - Pi vil gjøre behandlingen, ta bilder og kommandere BrickPi.
  • Raspberry Pi -kamera - Pi -kameraet tar et bilde av Rubiks -terningen som ikke er løst.
  • Ethernet -kabel - Du trenger maskinen din for å være koblet til internett. Hvis du vil gjøre dette via wifi, er det også greit!
  • Raspbian for Robots SD Card - Programvaren som kjører Raspberry Pi. Dette kommer med det meste av programvaren som trengs for denne opplæringen. Du kan også laste ned programvaren gratis.
  • LEGO Mindstorms EV3 Kit (31313) - Du trenger en haug med LEGO og to store motorer, og en servomotor, og ultralydsensoren.
  • En Rubiks kube - Vi fant en som snurrer ganske fritt her. Du kan imidlertid bruke omtrent hvilken som helst 9x9x9 Rubiks kube.

Trinn 2: Bygg det

Bygg det
Bygg det
Bygg det
Bygg det

Å bygge løseren

Dette designet ble inspirert av MindCub3r -designet til LEGO EV3. For å bygge BricKuber, begynn med å bygge MindCub3r. Fullstendig LEGO byggeinstruksjoner finner du her.

Rubiks kubeoppløsningsdesign har tre store bevegelige deler. Den første er en vugge for å holde Rubiks kube. Den andre er shuffler, en arm som brukes til å snu Rubiks terning.

Til slutt legger vi til en kameraarm. I det originale designet av MindCubr holdt dette EV3 -fargesensoren over Rubiks kube. I vår modifiserte design har den et Raspberry Pi -kamera over Rubiks kube. Vi bruker to LEGO Mindstorms -motorer for å manipulere kuben: den første sitter under vuggen for å rotere kuben, og den andre beveger shuffler -armen for å snurre kuben på en motsatt akse.

Monter BrickPi3

Du finner monteringsinstruksjoner for BrickPi3 her. Vi må montere saken, feste BrickPi3, Raspberry Pi, Raspberry Pi -kameraet, legge til et SD -kort og legge til batterier. For å gjøre programvaren enklere å konfigurere, kommer Raspbian for Robots med det meste av programvaren du trenger allerede er installert. Du trenger minst et 8 GB SD -kort, og du vil utvide disken til å passe til full størrelse på SD -kortet.

Fest BrickPi3

Vi legger BrickPi3 til LEGO -enheten. Vi brukte LEGO EV3 "vingene" til å støtte BrickPi3 og gjøre den i nivå med BricKuber -kroppen. Dette er et godt skritt for å legge til 8XAA -batterier i strømpakken og feste BrickPi3 -enheten til LEGO -enheten. For programmering kan du drive BrickPi3 via USB -strøm til Raspberry Pi, men for å flytte motorene må du levere strøm med Power Pack.

Koble motorene til BrickPi3

Fest shuffler -motoren til motorporten “MD”. Fest holderen til “MA” -porten på BrickPi3. Fest kamerasensormotoren til "MC" -porten (dette er den mindre servolignende motoren). Selv om vi ikke flytter kameraet, kan det være lurt å justere plasseringen av kameraet ved hjelp av motorene.

Fest Raspberry Pi -kameraet

Fest LEGO Camera støtte. Det lille svarte objektivet til kameraet skal passe mellom de to LEGO strålestøttene. Fest kameraet på plass til LEGO -støttene med litt elektrisk tape. Dette er et godt tidspunkt å sørge for at kameraet er i posisjon for å kunne fange hele Rubiks kube. Du kan ta et testbilde med raspistill -kommandoen

raspistill -o cam.jpg

Kontroller at terningen er godt sentrert i midten av bildet.

Trinn 3: Forbered programvaren

Du kan bruke hvilken som helst versjon av Raspbian eller Raspbian for Robots, vårt tilpassede bilde som følger med BrickPi3 som allerede er installert. Hvis du bruker en standardversjon av Raspbian, kan du installere BrickPi3 -bibliotekene med kommandoen

sudo curl -kL dexterindustries.com/update_brickpi3 | bash

Dette trinnet vil installere alle bibliotekene som trengs for å kjøre BrickPi3 på ditt Raspbian -bilde. Hopp over dette trinnet hvis du bruker Raspbian for Robots: BrickPi3 er allerede installert.

Til slutt installerer du alle prosjektavhengigheter med kommandoen:

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

For dette trinnet må din BrickPi3 være koblet til internett. Det er en rekke biblioteker som prosjektet er avhengig av, inkludert noen avgjørende av Daniel Walton (@dwalton76) på Github, som brukes til å løse Rubiks kube.

Trinn 4: Løs en Rubiks kube

Løs en Rubiks kube
Løs en Rubiks kube
Løs en Rubiks kube
Løs en Rubiks kube
Løs en Rubiks kube
Løs en Rubiks kube

Legg en uløst Rubiks kube i holderen. Kjør kommandoen

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

Roboten vil snu kuben til hvert ansikt, og kameraet tar 6 bilder, en på hver side av kuben. Raspberry Pi vil bestemme kubekonfigurasjonen ut fra de seks bildene. Kubekonfigurasjonen vil bli sendt til kociemba Python -biblioteket for å finne en effektiv løsning. Til slutt vil roboten utføre tiltakene for å løse Rubiks kube!

Trinn 5: Kildekoden

All kildekoden for BricKuber finner du i vår github -repo med åpen kildekode her.

Dette prosjektet bruker følgende programvarepakker installert av kommandoen

Anbefalt: