Sadržaj:

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

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

Video: BricKuber projekt - robot za rješavanje kockica Raspberry Pi Rubiksa: 5 koraka (sa slikama)
Video: This robot solve a Rubik's cube in world record time 2024, Jun
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

Želeli smo da napravimo robota za rešavanje Rubiks kocke sa 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 dopustili robotu da to učini? 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 direktno 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 mapu kvadrata u boji koja pokazuje gdje se nalaze na kocki. Kada 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

Build It
Build It
  • BrickPi3 - Koristit ćemo BrickPi za upravljanje LEGO motorima koji rješavaju Rubikovo kockalo.
  • Raspberry Pi - Pi će raditi obradu, slikati i komandovati BrickPi -jem.
  • Raspberry Pi kamera - Pi kamera će snimiti neriješenu Rubiksovu kocku.
  • Ethernet kabel - bit će vam potrebno da vaš uređaj bude povezan na internet. 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đe 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 bilo koju Rubikovu kocku 9x9x9.

Korak 2: Izgradite ga

Build It
Build It
Build It
Build It

Izgradnja Solvera

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

Dizajn Rubiks kocke ima tri glavna pokretna dijela. Prva je kolevka 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 kompanije MindCubr, ovo je držalo senzor boje EV3 preko Rubikove kocke. U našem izmijenjenom dizajnu drži Raspberry Pi kameru preko Rubikove kocke. Za manipulaciju 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 sastavljanje 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. Radi lakšeg postavljanja softvera, Raspbian for Robots dolazi s većinom softvera koji vam je već potreban. Trebat će vam najmanje 8 GB SD kartica, a htjet ćete proširiti disk tako da odgovara punoj veličini SD kartice.

Pričvrstite BrickPi3

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

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 pomjerati kameru, možda ćete htjeti prilagoditi lokaciju 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 zraka. Pričvrstite kameru na mjesto za LEGO nosače nekom električnom trakom. Ovo je dobar trenutak da se uvjerite da je kamera u položaju da može snimiti cijelu Rubikovu kocku. Možete napraviti probnu sliku pomoću komande 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 biblioteke BrickPi3 pomoću naredbe

sudo curl -kL dexterindustries.com/update_brickpi3 | bash

Ovaj korak će instalirati sve biblioteke 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 će morati biti povezan s internetom. Postoje brojne biblioteke od kojih 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 ležište. 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 biblioteci kako bi se pronašlo učinkovito rješenje. Konačno, robot će izvesti poteze kako bi riješio Rubikovu kocku!

Korak 5: Izvorni kod

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

Ovaj projekt koristi sljedeće softverske pakete instalirane naredbom

Preporučuje se: