Indholdsfortegnelse:

BricKuber Project - en Raspberry Pi Rubiks Cube Solving Robot: 5 trin (med billeder)
BricKuber Project - en Raspberry Pi Rubiks Cube Solving Robot: 5 trin (med billeder)

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

Video: BricKuber Project - en Raspberry Pi Rubiks Cube Solving Robot: 5 trin (med billeder)
Video: Rubik Cube - EV3 Vs Harshmit, How does the program work 2024, November
Anonim
Image
Image

BricKuber kan løse en Rubiks terning på cirka mindre end 2 minutter.

BricKuber er en open source Rubiks kubeopløsningsrobot, du selv kan bygge

Vi ville bygge en Rubiks kubeopløsningsrobot med Raspberry Pi. I stedet for at gå efter hastighed gik vi med enkelhed: Hvis du har et Raspberry Pi, et BrickPi -kit og et standard LEGO Mindstorms EV3 eller NXT Kit, skal du let kunne følge i vores fodspor. Softwaren er skrevet i programmeringssproget Python. Du kan se al kildekoden på Github her.

Baggrund Rubiks terning er for nylig begyndt at komme tilbage. Opfundet i 1974, er det verdens bedst sælgende legetøj. Men at løse dem kræver tanke, indsats og dygtighed… så hvorfor ikke lade en robot gøre det? I dette projekt tager vi en Raspberry Pi, en BrickPi og et sæt LEGO Mindstorms og bygger en Rubiks kubeopløsningsrobot. Placer ganske enkelt en uløst Rubiks terning i løsningen, kør python -programmet, og din Rubiks terning er løst! Projektet bruger Pi til direkte at løse Rubiks terning. BrickPi3 tager den uløste Rubiks terning, og Raspberry Pi tager et billede af hver side af Rubiks terning med Raspberry Pi -kameraet. Pi opretter et tekstkort over farvekvadraterne, der viser, hvor de er placeret på terningen. Når den har fuldstændig kortlagt terningen, bruger Pi “poci -biblioteket” kociemba “til at kortlægge de træk, der er nødvendige for at løse Rubiks terning. Disse oplysninger tages af Pi og BrickPi3 for at løse Rubiks terning ved hjælp af LEGO motorer. Resultatet: en løst Rubiks terning.

Trin 1: Værktøjer og materialer

Byg den
Byg den
  • BrickPi3 - Vi bruger BrickPi til at styre LEGO -motorerne, der løser Rubiks terningsløser.
  • Raspberry Pi - Pi vil behandle, tage billeder og kommandere BrickPi.
  • Raspberry Pi -kamera - Pi -kameraet tager et billede af den uløste Rubiks -terning.
  • Ethernet -kabel - Du skal have din maskine tilsluttet internettet. Hvis du vil gøre dette via wifi, er det også fint!
  • Raspbian til Robots SD -kort - Softwaren, der kører Raspberry Pi. Dette leveres med det meste af den software, der er nødvendig til denne vejledning. Du kan også downloade softwaren gratis.
  • LEGO Mindstorms EV3 Kit (31313) - Du skal bruge en bunke LEGO og to store motorer og en servomotor og ultralydssensoren.
  • En Rubiks terning - Vi fandt en, der spinder ret frit her. Du kan dog bruge næsten enhver 9x9x9 Rubiks terning.

Trin 2: Byg det

Byg den
Byg den
Byg den
Byg den

Bygger Solver

Dette design er inspireret af MindCub3r -designet til LEGO EV3. For at bygge BricKuber skal du starte med at bygge MindCub3r. Komplet LEGO byggevejledning kan findes her.

Rubiks kubeopløsningsdesign har tre store bevægelige dele. Den første er en vugge til at holde Rubiks terning. Den anden er shuffler, en arm, der bruges til at vende Rubiks terning.

Endelig tilføjer vi en kameraarm. I det originale design af MindCubr holdt dette EV3 -farvesensoren over Rubiks terning. I vores modificerede design har den et Raspberry Pi -kamera over Rubiks terning. Vi bruger to LEGO Mindstorms -motorer til at manipulere terningen: den første sidder under holderen for at rotere terningen, og den anden bevæger shufflerarmen for at dreje terningen på en modsat akse.

Saml BrickPi3

Du kan finde monteringsvejledning til BrickPi3 her. Vi bliver nødt til at samle sagen, vedhæfte BrickPi3, Raspberry Pi, Raspberry Pi -kameraet, tilføje et SD -kort og tilføje batterier. For at gøre softwaren lettere at konfigurere, leveres Raspbian for Robots med det meste af den software, du allerede har brug for. Du skal bruge mindst et 8 GB SD -kort, og du vil udvide disken til at passe til SD -kortets fulde størrelse.

Fastgør BrickPi3

Vi tilføjer BrickPi3 til LEGO -samlingen. Vi brugte LEGO EV3 “vinger” til at understøtte BrickPi3 og gøre den i niveau med BricKuber -kroppen. Dette er et godt skridt til at tilføje 8XAA -batterier til strømforsyningen og tilslutte BrickPi3 -batteripakken til LEGO -enheden. Til programmering kan du drive BrickPi3 via USB -strøm til Raspberry Pi, men for at flytte motorerne skal du levere strøm med Power Pack.

Tilslut motorerne til BrickPi3

Slut shuffler -motoren til motorporten "MD". Slut holderen til "MA" -porten på BrickPi3. Sæt kamerasensormotoren til "MC" -porten (dette er den mindre servolignende motor). Selvom vi ikke flytter kameraet, kan du justere kameraets placering ved hjælp af motorerne.

Sæt Raspberry Pi -kameraet på

Brug LEGO Camera -understøttelsen til at fastgøre kameraet. Kameraets lille sorte linse skal passe mellem de to LEGO strålestøtter. Fastgør kameraet på plads til LEGO -understøtningerne med noget elektrisk tape. Dette er et godt tidspunkt at sørge for, at kameraet er placeret, så det er i stand til at fange hele Rubiks terning. Du kan tage et testbillede med kommandoen raspistill

raspistill -o cam.jpg

Kontroller, at terningen er godt centreret i midten af billedet.

Trin 3: Forbered softwaren

Du kan bruge enhver version af Raspbian eller Raspbian til Robots, vores brugerdefinerede billede, der følger med, at BrickPi3 allerede er installeret. Hvis du bruger en standardversion af Raspbian, kan du installere BrickPi3 -bibliotekerne ved hjælp af kommandoen

sudo curl -kL dexterindustries.com/update_brickpi3 | bash

Dette trin installerer alle de biblioteker, der er nødvendige for at køre BrickPi3 på dit Raspbian -billede. Spring dette trin over, hvis du bruger Raspbian til robotter: BrickPi3 er allerede installeret.

Endelig skal du installere alle projektafhængigheder ved hjælp af kommandoen:

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

Til dette trin skal din BrickPi3 være forbundet til internettet. Der er en række biblioteker, som projektet afhænger af, herunder nogle afgørende af Daniel Walton (@dwalton76) på Github, der bruges til at løse Rubiks terning.

Trin 4: Løs en Rubiks terning

Løs en Rubiks terning
Løs en Rubiks terning
Løs en Rubiks terning
Løs en Rubiks terning
Løs en Rubiks terning
Løs en Rubiks terning

Læg en uløst Rubiks terning i holderen. Kør kommandoen

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

Robotten vender terningen til hvert ansigt, og kameraet tager 6 billeder, en på hver side af terningen. Raspberry Pi bestemmer terningkonfigurationen ud fra de seks billeder. Cube -konfigurationen sendes til kociemba Python -biblioteket for at finde en effektiv løsning. Endelig vil robotten udføre trækkene for at løse Rubiks terning!

Trin 5: Kildekoden

Hele kildekoden til BricKuber kan findes i vores open source github -repo her.

Dette projekt bruger følgende softwarepakker installeret af kommandoen

Anbefalede: