Sommario:

Risolutore bendato del cubo di Rubik in tempo reale utilizzando Raspberry Pi e OpenCV: 4 passaggi
Risolutore bendato del cubo di Rubik in tempo reale utilizzando Raspberry Pi e OpenCV: 4 passaggi

Video: Risolutore bendato del cubo di Rubik in tempo reale utilizzando Raspberry Pi e OpenCV: 4 passaggi

Video: Risolutore bendato del cubo di Rubik in tempo reale utilizzando Raspberry Pi e OpenCV: 4 passaggi
Video: COME RISOLVERE IL CUBO DI RUBIK IN 2 MOSSE! 2024, Novembre
Anonim

Questa è la seconda versione dello strumento cubo di Rubik realizzato per risolvere con gli occhi bendati. La prima versione è stata sviluppata da javascript, puoi vedere il progetto RubiksCubeBlindfolded1

A differenza della precedente, questa versione utilizza la libreria OpenCV per rilevare i colori e inserire gli input e fornisce una migliore tecnica di visualizzazione.

Il problema più grande in questa versione più recente è la visualizzazione degli output, gli elementi della sequenza vengono visualizzati sul cubo disegnato 1 alla volta. Poiché il cubo è una forma 3D, è difficile visualizzare tutti i lati contemporaneamente. Guarda i risultati sul mio canale YouTube Video YouTube

Sto usando un cubo senza adesivo, questo richiede un riconoscimento personalizzato e la maggior parte dei codici open source non è supportata. Ho usato questo open source sviluppato da Kim Koomen che specifica le aree fisse sulla cornice della fotocamera per rilevare i colori corretti delle facce del cubo qbr project

Passaggio 1: componenti necessari

  • Lampone Pi
  • webcam

oppure puoi usare il tuo laptop

Passaggio 2: dipendenze

  • Pitone 3
  • libreria insensata
  • Libreria OpenCV

$ sudo apt-get install python3-opencv

RubiksPacchetto bendato

$ pip3 installa RubiksBlindfolded

Passaggio 3: preparativi

È necessario calibrare il rilevamento del colore come passaggio preliminare. I codici colore HSV variano a causa dell'illuminazione, della qualità e della risoluzione della fotocamera e dei colori stessi del cubo. Nel mio caso, combino luci bianche e gialle per ottenere risultati corretti.

Aggiorna la funzione get_color_name(hsv) su colordetection.py

Il codice sorgente originale utilizza il pacchetto kociemba per risolvere il cubo, risolve trovando i passaggi inversi di qualsiasi scramble. In questa versione, ho usato il mio pacchetto di risoluzione chiamato RubiksBlindfolded pubblicato su PyPI. Vedi la descrizione per sapere come usarlo RubiksBlindfolded

Passaggio 4: utilizzo

Utilizzo
Utilizzo
Utilizzo
Utilizzo

Dopo aver installato tutte le dipendenze e impostato la videocamera, questo è il momento di eseguire lo script blindfolded.py

Innanzitutto, devi scansionare il tuo cubo con gli orientamenti corretti. Questa è la struttura del cubo, l'ordine di scansione delle facce non è importante. Nota che questi sono i colori predefiniti delle facce del cubo, puoi cambiarli aggiornando il dizionario delle notazioni sullo script blindfolded.py

Per eseguire la scansione, premere il tasto spazio per salvare la vista e il tasto ESC dopo aver terminato

In secondo luogo, puoi vedere le sequenze di soluzioni sulla console e il controllo di parità per dirti se devi applicare l'algoritmo di parità o meno

Terzo, verrà generato un nuovo frame che visualizza 2 cubi disegnati per la sequenza dei bordi e la sequenza degli angoli. È possibile utilizzare i tasti freccia sinistra e destra per passare tra gli elementi della sequenza e i tasti freccia su e giù per passare dal bordo all'angolo. il colore grigio chiaro rappresenta la sequenza corrente.

Puoi vedere i colori del buffer corrente che cambiano dinamicamente con i tasti freccia. I colori grigi rappresentano il cubo di destinazione e il colore rosa rappresenta la faccia di scambio

Codice sorgente

github.com/mn-banjar/blindfolded2

Consigliato: