Kazalo:

Projekt BricKuber - robot za reševanje kock Raspberry Pi Rubiks: 5 korakov (s slikami)
Projekt BricKuber - robot za reševanje kock Raspberry Pi Rubiks: 5 korakov (s slikami)

Video: Projekt BricKuber - robot za reševanje kock Raspberry Pi Rubiks: 5 korakov (s slikami)

Video: Projekt BricKuber - robot za reševanje kock Raspberry Pi Rubiks: 5 korakov (s slikami)
Video: Высокая плотность 2022 2024, November
Anonim
Image
Image

BricKuber lahko reši Rubikovo kocko v približno 2 minutah.

BricKuber je odprtokodni Robikov robot za reševanje kock, ki ga lahko zgradite sami

Želeli smo z Raspberry Pi zgraditi robota za reševanje kock Rubiksa. Namesto hitrosti smo se lotili preprostosti: če imate Raspberry Pi, komplet BrickPi in standardni komplet LEGO Mindstorms EV3 ali NXT, bi morali zlahka slediti našim stopinjam. Programska oprema je napisana v programskem jeziku Python. Vse izvorne kode na Githubu si lahko ogledate tukaj.

Ozadje Rubikova kocka se je pred kratkim začela vračati. Izumljena leta 1974, je najbolje prodajana igrača na svetu. Toda njihovo reševanje zahteva razmišljanje, trud in spretnost… zakaj torej ne bi dovolili robotu? V tem projektu jemljemo Raspberry Pi, BrickPi in niz LEGO Mindstorms ter izdelamo robota za reševanje Rubikove kocke. Preprosto postavite nerešeno Rubikovo kocko v reševalnik, zaženite program python in vaša Rubikova kocka je rešena! Projekt uporablja Pi za neposredno reševanje Rubikove kocke. BrickPi3 posname nerešeno Rubikovo kocko, Raspberry Pi pa fotografira vsako stran Rubikove kocke s kamero Raspberry Pi. Pi ustvari besedilni zemljevid barvnih kvadratov, ki prikazuje, kje se nahajajo na kocki. Ko v celoti preslika kocko, Pi uporablja knjižnico python "kociemba" za preslikavo potez, potrebnih za reševanje Rubikove kocke. Te podatke vzamejo Pi in BrickPi3 za reševanje Rubikove kocke z motorji LEGO. Rezultat: rešena Rubikova kocka.

Korak: Orodja in materiali

Zgradi ga
Zgradi ga
  • BrickPi3 - BrickPi bomo uporabili za krmiljenje motorjev LEGO, ki rešujejo Rubikovo reševalno kocko.
  • Raspberry Pi - Pi bo obdelal, fotografiral in poveljeval BrickPi.
  • Raspberry Pi Camera - Pi Camera bo posnela nerešeno kocko Rubiks.
  • Ethernetni kabel - naprava mora biti povezana z internetom. Če želite to narediti prek wifija, je tudi to v redu!
  • Kartica SD Raspbian za robote - programska oprema, ki poganja Raspberry Pi. To vključuje večino programske opreme, potrebne za to vadnico. Prav tako lahko brezplačno prenesete programsko opremo.
  • Komplet LEGO Mindstorms EV3 (31313) - Potrebovali boste kup LEGO in dva velika motorja ter en servo motor in ultrazvočni senzor.
  • Rubikova kocka - našli smo takšno, ki se tukaj vrti precej svobodno. Lahko pa uporabite skoraj vsako Rubikovo kocko 9x9x9.

2. korak: Zgradite ga

Zgradi ga
Zgradi ga
Zgradi ga
Zgradi ga

Izdelava reševalca

Ta zasnova je bila navdihnjena z zasnovo MindCub3r za LEGO EV3. Če želite zgraditi BricKuber, začnite z izgradnjo MindCub3r. Celotna navodila za gradnjo LEGO najdete tukaj.

Zasnova rešilca kocke Rubiks ima tri glavne premične dele. Prva je zibelka za držanje Rubikove kocke. Drugi je mešalnik, roka, ki se uporablja za obračanje Rubikove kocke.

Na koncu dodamo roko kamere. V prvotni zasnovi podjetja MindCubr je to držalo barvni senzor EV3 nad Rubikovo kocko. V naši spremenjeni zasnovi drži kamero Raspberry Pi nad Rubikovo kocko. Za manipulacijo s kocko uporabljamo dva motorja LEGO Mindstorms: prvi sedi pod zibelko za vrtenje kocke, drugi pa premakne roko za mešanje, da kocko zavrti na nasprotni osi.

Sestavite BrickPi3

Navodila za montažo BrickPi3 najdete tukaj. Ohišje bomo morali sestaviti, pritrditi BrickPi3, Raspberry Pi, kamero Raspberry Pi, dodati kartico SD in dodati baterije. Za lažjo nastavitev programske opreme je Raspbian for Robots opremljen z večino programske opreme, ki jo potrebujete. Potrebovali boste vsaj 8 GB kartico SD in želeli boste razširiti disk, da bo ustrezal polni velikosti kartice SD.

Pritrdite BrickPi3

V sklop LEGO dodamo BrickPi3. Uporabili smo "krila" LEGO EV3 za podporo BrickPi3 in ga poravnali s telesom BricKuber. To je dober korak, da v napajalnik dodate baterije 8XAA in napajalnik BrickPi3 pritrdite na sklop LEGO. Za programiranje lahko napajate BrickPi3 prek napajanja USB na Raspberry Pi, vendar za premikanje motorjev boste morali napajati z napajalnikom.

Motorje priključite na BrickPi3

Motor mešalnika pritrdite na vrata motorja "MD". Motor zibelke pritrdite na vrata “MA” na BrickPi3. Motor senzorja kamere pritrdite na vrata "MC" (to je manjši servo podoben motor). Čeprav kamere ne bomo premaknili, boste morda želeli prilagoditi lokacijo kamere z motorji.

Pritrdite kamero Raspberry Pi

S podporo za kamero LEGO pritrdite kamero. Majhna črna leča fotoaparata mora stati med dvema nosilcema LEGO žarkov. Kamero pritrdite na nosilce LEGO z nekaj električnega traku. To je pravi čas, da se prepričate, da je kamera v položaju, da lahko zajame celotno Rubikovo kocko. Z ukazom raspistill lahko posnamete preskusno sliko

raspistill -o cam.jpg

Preverite, ali je kocka dobro centrirana na sredini slike.

3. korak: Pripravite programsko opremo

Uporabite lahko katero koli različico Raspbiana ali Raspbiana za robote, naše slike po meri, ki prihaja z že nameščenim BrickPi3. Če uporabljate standardno različico Raspbiana, lahko knjižnice BrickPi3 namestite z ukazom

sudo curl -kL dexterindustries.com/update_brickpi3 | bash

Ta korak bo namestil vse knjižnice, potrebne za zagon programa BrickPi3 na vaši podobi Raspbian. Ta korak preskočite, če uporabljate Raspbian za robote: BrickPi3 je že nameščen.

Končno namestite vse odvisnosti projekta z ukazom:

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

Za ta korak bo treba vaš BrickPi3 povezati z internetom. Projekt je odvisen od številnih knjižnic, vključno z nekaterimi ključnimi od Daniel Walton (@dwalton76) na Githubu, ki se uporabljajo za reševanje Rubikove kocke.

4. korak: Rešite Rubikovo kocko

Rešite Rubikovo kocko
Rešite Rubikovo kocko
Rešite Rubikovo kocko
Rešite Rubikovo kocko
Rešite Rubikovo kocko
Rešite Rubikovo kocko

Nerazrešeno Rubikovo kocko položite v zibelko. Zaženite ukaz

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

Robot bo obrnil kocko na vsak obraz in kamera bo posnela 6 slik, po eno z vsake strani kocke. Raspberry Pi bo iz šestih slik določil konfiguracijo kocke. Konfiguracija kocke bo posredovana knjižnici kociemba Python, da bi našli učinkovito rešitev. Končno bo robot izvedel poteze za rešitev Rubikove kocke!

5. korak: izvorna koda

Vso izvorno kodo za BricKuber najdete v našem odprtokodnem repoju github tukaj.

Ta projekt uporablja naslednje programske pakete, ki jih namesti ukaz

Priporočena: