Sadržaj:

BricKuber projekt - robot za rješavanje kockica Raspberry Pi Rubiks: 5 koraka (sa slikama)
BricKuber projekt - robot za rješavanje kockica Raspberry Pi Rubiks: 5 koraka (sa slikama)

Video: BricKuber projekt - robot za rješavanje kockica Raspberry Pi Rubiks: 5 koraka (sa slikama)

Video: BricKuber projekt - robot za rješavanje kockica Raspberry Pi Rubiks: 5 koraka (sa slikama)
Video: This robot solve a Rubik's cube in world record time 2024, Studeni
Anonim
Image
Image

BricKuber može riješiti Rubikovu kocku za manje od 2 minute.

BricKuber je Rubikov robot za rješavanje kockica otvorenog koda koji možete sami izgraditi

Željeli smo izgraditi robota za rješavanje Rubiks kocke s Raspberry Pi. Umjesto da idemo na brzinu, krenuli smo s jednostavnošću: ako imate Raspberry Pi, BrickPi komplet i standardni LEGO Mindstorms EV3 ili NXT Kit, trebali biste lako krenuti našim stopama. Softver je napisan u programskom jeziku Python. Ovdje možete vidjeti sav izvorni kod na Githubu.

Pozadina Rubikova kocka nedavno se počela vraćati. Izumljena 1974. godine, najprodavanija je igračka na svijetu. Ali njihovo rješavanje zahtijeva razmišljanje, trud i vještinu… pa zašto ne biste to dopustili robotu? U ovom projektu uzimamo Raspberry Pi, BrickPi i set LEGO Mindstorms i izrađujemo robota za rješavanje Rubikove kocke. Jednostavno stavite neriješenu Rubikovu kocku u rješavač, pokrenite program python i vaša Rubikova kocka je riješena! Projekt koristi Pi za izravno rješavanje Rubikove kocke. BrickPi3 uzima neriješenu Rubikovu kocku, a Raspberry Pi snima svaku stranu Rubikove kocke pomoću Raspberry Pi kamere. Pi stvara tekstualnu kartu kvadrata u boji koja pokazuje gdje se nalaze na kocki. Kad potpuno preslika kocku, Pi koristi biblioteku pythona "kociemba" za mapiranje poteza potrebnih za rješavanje Rubikove kocke. Ove podatke uzimaju Pi i BrickPi3 za rješavanje Rubikove kocke pomoću LEGO motora. Rezultat: riješena Rubikova kocka.

Korak 1: Alati i materijali

Izgradi ga
Izgradi ga
  • BrickPi3 - Koristit ćemo BrickPi za upravljanje LEGO motorima koji rješavaju Rubikovo kockalo.
  • Raspberry Pi - Pi će obavljati obradu, fotografirati i zapovijedati BrickPi -jem.
  • Raspberry Pi kamera - Pi kamera će snimiti neriješenu Rubiksovu kocku.
  • Ethernet kabel - morat ćete povezati uređaj s internetom. Ako to želite učiniti putem WiFi -ja, i to je u redu!
  • SD kartica Raspbian for Robots - softver koji pokreće Raspberry Pi. Ovo dolazi s većinom softvera potrebnog za ovaj vodič. Također možete besplatno preuzeti softver.
  • LEGO Mindstorms EV3 komplet (31313) - trebat će vam hrpa LEGO -a i dva velika motora, jedan servo motor i ultrazvučni senzor.
  • Rubikova kocka - pronašli smo onu koja se ovdje prilično slobodno vrti. Ipak, možete koristiti gotovo svaku Rubikovu kocku 9x9x9.

Korak 2: Izgradite ga

Izgradi ga
Izgradi ga
Izgradi ga
Izgradi ga

Izgradnja Solvera

Ovaj dizajn inspiriran je dizajnom MindCub3r za LEGO EV3. Da biste izgradili BricKuber, počnite s izgradnjom MindCub3r. Cjelovite LEGO upute za izgradnju možete pronaći ovdje.

Dizajn kockara Rubiks ima tri glavna pokretna dijela. Prva je kolijevka za držanje Rubikove kocke. Drugi je miješalica, ruka koja se koristi za okretanje Rubikove kocke.

Na kraju dodajemo krak kamere. U originalnom dizajnu tvrtke MindCubr, ovo je držalo senzor boje EV3 iznad Rubikove kocke. U našem izmijenjenom dizajnu drži Raspberry Pi kameru iznad Rubikove kocke. Za manipuliranje kockom koristimo dva LEGO Mindstorms motora: prvi se nalazi ispod postolja kako bi rotirao kocku, a drugi pomiče ruku za miješanje kako bi okrenuo kocku na suprotnoj osi.

Sastavite BrickPi3

Upute za montažu BrickPi3 možete pronaći ovdje. Morat ćemo sastaviti kućište, pričvrstiti BrickPi3, Raspberry Pi, Raspberry Pi kameru, dodati SD karticu i dodati baterije. Kako biste olakšali postavljanje softvera, Raspbian for Robots dolazi s većinom softvera koji će vam već biti potreban. Trebat će vam barem 8 GB SD kartica, a htjet ćete proširiti disk tako da odgovara punoj veličini SD kartice.

Pričvrstite BrickPi3

BrickPi3 dodajemo u LEGO sklop. Koristili smo LEGO EV3 "krila" za podršku BrickPi3 i izravnali ga s tijelom BricKubera. Ovo je dobar korak za dodavanje 8XAA baterija u napajanje i priključivanje BrickPi3 napajanja na LEGO sklop. Za programiranje možete napajati BrickPi3 putem USB -a na Raspberry Pi, međutim za pomicanje motora morat ćete napajati Power Pack.

Spojite motore na BrickPi3

Priključite motor za miješanje na priključak motora "MD". Priključite motor postolja na priključak “MA” na BrickPi3. Priključite motor senzora kamere na priključak "MC" (ovo je manji motor nalik servo-u). Iako nećemo pomicati kameru, možda ćete htjeti prilagoditi položaj kamere pomoću motora.

Priključite kameru Raspberry Pi

Pomoću podrške za LEGO kameru pričvrstite kameru. Mali crni objektiv fotoaparata trebao bi stati između dva nosača LEGO snopa. Pričvrstite kameru na mjesto na LEGO nosače nekom električnom trakom. Ovo je dobro vrijeme da se uvjerite da je kamera u položaju da može snimiti cijelu Rubikovu kocku. Možete napraviti testnu sliku naredbom raspistill

raspistill -o cam.jpg

Provjerite je li kocka dobro centrirana u sredini slike.

Korak 3: Pripremite softver

Možete koristiti bilo koju verziju Raspbiana ili Raspbiana za robote, našu prilagođenu sliku koja dolazi s već instaliranim BrickPi3. Ako koristite standardnu verziju Raspbiana, možete instalirati knjižnice BrickPi3 pomoću naredbe

sudo curl -kL dexterindustries.com/update_brickpi3 | bash

Ovaj korak će instalirati sve knjižnice potrebne za pokretanje BrickPi3 na vašoj Raspbian slici. Preskočite ovaj korak ako koristite Raspbian za robote: BrickPi3 je već instaliran.

Na kraju, instalirajte sve ovisnosti o projektu pomoću naredbe:

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

Za ovaj korak vaš BrickPi3 morat će biti spojen na internet. Postoji niz knjižnica o kojima projekt ovisi, uključujući neke ključne od Daniel Waltona (@dwalton76) na Githubu, koje se koriste za rješavanje Rubikove kocke.

Korak 4: Riješite Rubikovu kocku

Riješite Rubikovu kocku
Riješite Rubikovu kocku
Riješite Rubikovu kocku
Riješite Rubikovu kocku
Riješite Rubikovu kocku
Riješite Rubikovu kocku

Stavite neriješenu Rubikovu kocku u kolijevku. Pokrenite naredbu

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

Robot će okrenuti kocku na svako lice, a kamera će snimiti 6 slika, po jednu sa svake strane kocke. Raspberry Pi će odrediti konfiguraciju kocke iz šest slika. Konfiguracija Cube bit će proslijeđena kociemba Python knjižnici kako bi se pronašlo učinkovito rješenje. Konačno, robot će izvesti poteze za rješavanje Rubikove kocke!

Korak 5: Izvorni kod

Sav izvorni kod za BricKuber možete pronaći u našem otvorenom izvornom kodu github repo ovdje.

Ovaj projekt koristi sljedeće softverske pakete instalirane naredbom

Preporučeni: