2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Aceasta este a doua versiune a instrumentului cub Rubik, realizat pentru rezolvarea în legătură cu ochii. Prima versiune a fost dezvoltată de javascript, puteți vedea proiectul RubiksCubeBlindfolded1
Spre deosebire de versiunea anterioară, această versiune folosește biblioteca OpenCV pentru a detecta culorile și a introduce intrările și oferă o tehnică de vizualizare mai bună.
Cea mai mare problemă din această nouă versiune este vizualizarea ieșirilor, elementele secvenței sunt afișate pe cubul desenat 1 la rând. Deoarece cubul are o formă 3D, este dificil să afișați toate părțile în același timp. Vedeți rezultatele pe videoclipul YouTube al canalului meu YouTube
Folosesc un cub fără autocolant, acest lucru necesită o recunoaștere personalizată, iar majoritatea codurilor open source nu sunt acceptate. Am folosit acest open source dezvoltat de Kim Koomen care specifică zone fixe pe cadrul camerei pentru a detecta culorile corecte ale fețelor cubului proiectului qbr
Pasul 1: Componente necesare
- Raspberry Pi
- cameră web
sau vă puteți folosi laptopul
Pasul 2: Dependențe
- Python 3
- bibliotecă numpy
- Biblioteca OpenCV
$ sudo apt-get install python3-opencv
Pachet RubiksBindfolded
$ pip3 instalează RubiksBlindfolded
Pasul 3: Pregătiri
Trebuie să calibrați detecția culorii ca etapă prealabilă. Codurile de culoare HSV variază datorită iluminării, calității și rezoluției camerei și a culorilor cubului în sine. În cazul meu, combin lumini albe și galbene pentru a obține rezultate corecte.
Actualizați funcția get_color_name (hsv) pe colordetection.py
Codul sursă original folosește pachetul kociemba pentru a rezolva cubul, se rezolvă găsind pașii inversi ai oricărui amestec. În această versiune, am folosit propriul meu pachet de rezolvare, numit RubiksBlindfolded, publicat pe PyPI. Vedeți descrierea pentru a ști cum să o utilizați RubiksBlindfolded
Pasul 4: utilizare
După instalarea tuturor dependențelor și setarea camerei dvs., acesta este momentul pentru a rula scriptul blindfolded.py
Mai întâi, trebuie să vă scanați cubul în orientările corecte. Aceasta este structura cubului, ordinea scanării fețelor nu este importantă. Observați că acestea sunt culorile implicite ale fețelor cubului, le puteți schimba actualizând dicționarul de notație pe scriptul legat la ochi.
Pentru a efectua scanarea, apăsați tasta spațiu pentru a salva vizualizarea și tasta ESC după finalizare
În al doilea rând, puteți vedea secvențele soluției pe consolă și verificarea parității pentru a vă spune dacă trebuie sau nu să aplicați algoritmul parității
În al treilea rând, va fi generat un nou cadru care afișează 2 cuburi desenate pentru secvența de margine și secvența de colț. Puteți utiliza tastele săgeată stânga și dreapta pentru a comuta între elementele secvenței și tastele săgeată sus și jos pentru a comuta între margine și colț. culoarea gri deschis reprezintă secvența curentă.
Puteți vedea culorile bufferului curent care se schimbă dinamic cu ajutorul tastelor săgeată. Culorile gri reprezintă cubul țintă, iar culoarea roz reprezintă fața de schimb
Cod sursa
github.com/mn-banjar/blindfolded2