Sommario:

Progetto BricKuber: un robot per risolvere il cubo di Rubik Raspberry Pi: 5 passaggi (con immagini)
Progetto BricKuber: un robot per risolvere il cubo di Rubik Raspberry Pi: 5 passaggi (con immagini)

Video: Progetto BricKuber: un robot per risolvere il cubo di Rubik Raspberry Pi: 5 passaggi (con immagini)

Video: Progetto BricKuber: un robot per risolvere il cubo di Rubik Raspberry Pi: 5 passaggi (con immagini)
Video: Как Убежать от Полицейской Собаки-Ищейки 2024, Giugno
Anonim
Image
Image

Il BricKuber può risolvere un cubo di Rubik in meno di 2 minuti.

Il BricKuber è un robot per la risoluzione del cubo di Rubik open source che puoi costruire da solo

Volevamo costruire un robot per la risoluzione del cubo di Rubik con il Raspberry Pi. Piuttosto che andare per la velocità, siamo andati con semplicità: se hai un Raspberry Pi, un kit BrickPi e un kit LEGO Mindstorms EV3 o NXT standard, dovresti essere in grado di seguire facilmente le nostre orme. Il software è scritto nel linguaggio di programmazione Python. Puoi vedere tutto il codice sorgente su Github qui.

Contesto Il cubo di Rubik ha recentemente iniziato a fare ritorno. Inventato nel 1974, è il giocattolo più venduto al mondo. Ma risolverli richiede pensiero, sforzo e abilità… quindi perché non lasciare che un robot lo faccia? In questo progetto, prendiamo un Raspberry Pi, un BrickPi e un set di LEGO Mindstorms e costruiamo un robot per risolvere il cubo di Rubik. Posiziona semplicemente un cubo di Rubik irrisolto nel risolutore, esegui il programma Python e il tuo cubo di Rubik è risolto! Il progetto utilizza il Pi per risolvere direttamente il cubo di Rubik. Il BrickPi3 prende il cubo di Rubik irrisolto e il Raspberry Pi scatta una foto di ciascun lato del cubo di Rubik con la fotocamera Raspberry Pi. Il Pi crea una mappa di testo dei quadrati colorati che mostra dove si trovano sul cubo. Quando ha mappato completamente il cubo, il Pi usa la libreria Python "kociemba" per mappare le mosse necessarie per risolvere il cubo di Rubik. Queste informazioni vengono prese da Pi e BrickPi3 per risolvere il cubo di Rubik utilizzando i motori LEGO. Il risultato: un cubo di Rubik risolto.

Passaggio 1: strumenti e materiali

Costruiscilo
Costruiscilo
  • BrickPi3 – Useremo il BrickPi per controllare i motori LEGO che risolvono il risolutore del cubo di Rubik.
  • Raspberry Pi: il Pi eseguirà l'elaborazione, scatterà foto e comanderà il BrickPi.
  • Fotocamera Raspberry Pi: la fotocamera Pi scatterà una foto del cubo di Rubik irrisolto.
  • Cavo Ethernet: è necessario che la macchina sia connessa a Internet. Se vuoi farlo tramite Wi-Fi, va bene anche questo!
  • Scheda SD Raspbian for Robots: il software che esegue il Raspberry Pi. Questo viene fornito con la maggior parte del software necessario per questo tutorial. Puoi anche scaricare il software gratuitamente.
  • Kit LEGO Mindstorms EV3 (31313) – Avrai bisogno di una pila di LEGO e due grandi motori, un servomotore e il sensore a ultrasuoni.
  • Un cubo di Rubik – Ne abbiamo trovato uno che gira abbastanza liberamente qui. Tuttavia, puoi usare praticamente qualsiasi cubo di Rubik 9x9x9.

Passaggio 2: costruiscilo

Costruiscilo
Costruiscilo
Costruiscilo
Costruiscilo

Costruire il Risolutore

Questo design è stato ispirato dal design MindCub3r per LEGO EV3. Per creare BricKuber, inizia con la creazione di MindCub3r. Le istruzioni complete per la costruzione LEGO sono disponibili qui.

Il design del risolutore del cubo di Rubik ha tre parti mobili principali. La prima è una culla per contenere il cubo di Rubik. Il secondo è lo shuffler, un braccio che viene utilizzato per capovolgere il cubo di Rubik.

Infine, aggiungiamo un braccio della fotocamera. Nel design originale di MindCubr, questo teneva il sensore di colore EV3 sopra il cubo di Rubik. Nel nostro design modificato, tiene una fotocamera Raspberry Pi sul cubo di Rubik. Usiamo due motori LEGO Mindstorms per manipolare il cubo: il primo si trova sotto la culla per ruotare il cubo, e il secondo muove il braccio del mescolatore per far girare il cubo su un asse opposto.

Assemblare il BrickPi3

Puoi trovare le istruzioni di montaggio per BrickPi3 qui. Avremo bisogno di assemblare la custodia, collegare il BrickPi3, il Raspberry Pi, la fotocamera Raspberry Pi, aggiungere una scheda SD e aggiungere le batterie. Per semplificare la configurazione del software, Raspbian for Robots viene fornito con la maggior parte del software di cui avrai bisogno già configurato. Avrai bisogno di almeno una scheda SD da 8 GB e vorrai espandere il disco per adattarlo all'intera dimensione della scheda SD.

Attacca il BrickPi3

Aggiungiamo il BrickPi3 all'assieme LEGO. Abbiamo usato le "ali" LEGO EV3 per supportare il BrickPi3 e renderlo a livello con il corpo del BricKuber. Questo è un buon passo per aggiungere batterie 8XAA all'alimentatore e collegare l'alimentatore BrickPi3 all'assieme LEGO. Per la programmazione è possibile alimentare il BrickPi3 tramite alimentazione USB al Raspberry Pi, tuttavia per spostare i motori sarà necessario fornire alimentazione con il Power Pack.

Collega i motori al BrickPi3

Collegare il motore Shuffler alla porta del motore "MD". Collega il motore della culla alla porta “MA” del BrickPi3. Collegare il motore del sensore della fotocamera alla porta "MC" (questo è il motore più piccolo simile a un servo). Anche se non sposteremo la videocamera, potresti voler regolare la posizione della videocamera utilizzando i motori.

Collega la fotocamera Raspberry Pi

Utilizzando il supporto per fotocamera LEGO, collega la fotocamera. La piccola lente nera della fotocamera dovrebbe adattarsi tra i due supporti del raggio LEGO. Fissa la fotocamera in posizione ai supporti LEGO con del nastro isolante. Questo è un buon momento per assicurarti che la telecamera sia in posizione per poter catturare l'intero cubo di Rubik. Puoi fare una foto di prova con il comando raspistill

raspistill -o cam.jpg

Controlla che il cubo sia ben centrato al centro dell'immagine.

Passaggio 3: preparare il software

Puoi utilizzare qualsiasi versione di Raspbian o Raspbian for Robots, la nostra immagine personalizzata fornita con BrickPi3 già installato. Se utilizzi una versione standard di Raspbian, puoi installare le librerie BrickPi3 utilizzando il comando

sudo curl -kL dexterindustries.com/update_brickpi3 | bash

Questo passaggio installerà tutte le librerie necessarie per eseguire BrickPi3 sulla tua immagine Raspbian. Salta questo passaggio se stai utilizzando Raspbian for Robots: BrickPi3 è già installato.

Infine, installa tutte le dipendenze del progetto usando il comando:

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

Per questo passaggio il tuo BrickPi3 dovrà essere connesso a Internet. Ci sono un certo numero di librerie da cui dipende il progetto, incluse alcune cruciali di Daniel Walton (@dwalton76) su Github, che vengono utilizzate per risolvere il cubo di Rubik.

Passaggio 4: risolvi un cubo di Rubik

Risolvi un cubo di Rubik
Risolvi un cubo di Rubik
Risolvi un cubo di Rubik
Risolvi un cubo di Rubik
Risolvi un cubo di Rubik
Risolvi un cubo di Rubik

Metti un cubo di Rubik irrisolto nella culla. Esegui il comando

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

Il robot girerà il cubo su ogni faccia e la fotocamera scatterà 6 foto, una per ogni lato del cubo. Il Raspberry Pi determinerà la configurazione del cubo dalle sei immagini. La configurazione di Cube verrà passata alla libreria Python di kociemba per trovare una soluzione efficiente. Infine, il robot eseguirà le mosse per risolvere il cubo di Rubik!

Passaggio 5: Il codice sorgente

Tutto il codice sorgente per BricKuber può essere trovato nel nostro repository github open source qui.

Questo progetto utilizza i seguenti pacchetti software installati dal comando

Consigliato: