Sommario:
- Passaggio 1: componenti necessari
- Passaggio 2: dipendenze
- Passaggio 3: preparativi
- Passaggio 4: utilizzo
Video: Risolutore bendato del cubo di Rubik in tempo reale utilizzando Raspberry Pi e OpenCV: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
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
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:
Q-Bot - il risolutore del cubo di Rubik open source: 7 passaggi (con immagini)
Q-Bot - il risolutore del cubo di Rubik open source: immagina di avere un cubo di Rubik rimescolato, conosci quel puzzle degli anni '80 che tutti hanno ma nessuno sa davvero come risolverlo e vuoi riportarlo al suo schema originale. Fortunatamente in questi giorni è molto facile trovare istruzioni per la risoluzione
Tracciare i dati in tempo reale di un sensore di temperatura (TMP006) utilizzando MSP432 LaunchPad e Python: 9 passaggi
Tracciamento dei dati in tempo reale di un sensore di temperatura (TMP006) utilizzando MSP432 LaunchPad e Python: TMP006 è un sensore di temperatura che misura la temperatura di un oggetto senza la necessità di entrare in contatto con l'oggetto. In questo tutorial tracceremo i dati di temperatura in tempo reale dal BoosterPack (TI BOOSTXL-EDUMKII) usando Python
Arduino Mega Stepper Shield per un risolutore di cubi di Rubik: 4 passaggi
Arduino Mega Stepper Shield per un risolutore di cubi di Rubik: Tempo fa stavo lavorando su una macchina che risolve automaticamente qualsiasi cubo di Rubik 3x3 criptato. Puoi vedere le mie istruzioni su questo qui. Nel progetto sono stati utilizzati driver passo-passo di polulu per azionare sei motori. Per due fare il collegamento di questi d
Tracker Covid19 in tempo reale che utilizza ESP8266 e OLED - Dashboard Covid19 in tempo reale: 4 passaggi
Tracker Covid19 in tempo reale che utilizza ESP8266 e OLED | Dashboard Covid19 in tempo reale: visita il sito Web Techtronic Harsh: http://techtronicharsh.com Ovunque c'è un enorme focolaio del Novel Corona Virus (COVID19). È diventato necessario tenere d'occhio l'attuale scenario di COVID-19 nel mondo. Quindi, essendo a casa, questo è stato il p
Monitoraggio in tempo reale del valore del tuo sensore da qualsiasi parte del mondo: 4 passaggi
Monitoraggio in tempo reale del valore del tuo sensore da qualsiasi parte del mondo: ho ricevuto un messaggio sul numero WhatsApp di techiesms relativo all'aiuto per la realizzazione di un progetto. Il progetto consisteva nel misurare la pressione esercitata sul sensore di pressione e visualizzarla su smartphone. Così ho aiutato a realizzare quel progetto e ho deciso di fare un tutor