Cuprins:

Solver Rubik’s Cube Blindfolded în timp real folosind Raspberry Pi și OpenCV: 4 pași
Solver Rubik’s Cube Blindfolded în timp real folosind Raspberry Pi și OpenCV: 4 pași

Video: Solver Rubik’s Cube Blindfolded în timp real folosind Raspberry Pi și OpenCV: 4 pași

Video: Solver Rubik’s Cube Blindfolded în timp real folosind Raspberry Pi și OpenCV: 4 pași
Video: Watch Flavian solve three Rubik’s Cubes…BLINDFOLDED! | Britain’s Got More Talent 2016 2024, Noiembrie
Anonim

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

Utilizare
Utilizare
Utilizare
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

Recomandat: