Cuprins:
Video: Solver Rubik’s Cube Blindfolded în timp real folosind Raspberry Pi și OpenCV: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
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
Recomandat:
Recunoașterea dispozitivelor în timp real folosind urmele EM: 6 pași
Recunoașterea dispozitivelor în timp real folosind urmele EM: Acest dispozitiv este destinat să clasifice diferite dispozitive electronice în funcție de semnalele lor EM. Pentru diferite dispozitive, acestea au semnale EM diferite emise de acesta. Am dezvoltat o soluție IoT pentru a identifica dispozitivele electronice folosind Particle
Robotul SCARA: Aflați despre Foward și cinematica inversă !!! (Plot Twist Aflați cum să creați o interfață în timp real în ARDUINO folosind PROCESAREA !!!!): 5 pași (cu imagini)
Robotul SCARA: Aflați despre Foward și cinematica inversă !!! (Plot Twist Aflați cum să creați o interfață în timp real în ARDUINO folosind PROCESAREA !!!!): Un robot SCARA este o mașină foarte populară în lumea industriei. Numele înseamnă atât brațul robotului de asamblare conform cu selecție, fie brațul robot articulat conform cu selecție. Este practic un robot de trei grade de libertate, fiind primele două deplasări
Setarea DS3231 RTC (ceas în timp real) cu precizie, rapiditate și automatizare folosind Java (+ -1s): 3 pași
Setarea DS3231 RTC (ceas în timp real) cu precizie, rapiditate și automatizare folosind Java (+ -1s): acest instructable vă va arăta cum să setați ora pe un ceas DS3231 în timp real folosind un Arduino și o mică aplicație Java care utilizează conexiunea serială a Arduino. Logica de bază a acestui program: 1. Arduino trimite o cerere în serie
Realizarea unui ceas cu M5stick C folosind Arduino IDE - Ceas RTC în timp real cu M5stack M5stick-C: 4 pași
Realizarea unui ceas cu M5stick C folosind Arduino IDE | Ceas RTC în timp real cu M5stack M5stick-C: Bună băieți, în acest instructables vom învăța cum să facem un ceas cu placa de dezvoltare m5stick-C a m5stack folosind Arduino IDE. Deci, m5stick va afișa data, ora și amp; săptămână a lunii pe ecran
Cum să creați ceas în timp real folosind afișajul Arduino și TFT - Arduino Mega RTC cu afișaj TFT de 3,5 inci: 4 pași
Cum să faci ceas în timp real folosind afișajul Arduino și TFT | Arduino Mega RTC cu afișaj TFT de 3,5 inci: Vizitează canalul meu de YouTube. Modulul 2560 și DS3231 RTC … Înainte de a începe … verificați videoclipul de pe canalul meu YouTube..Notă: - Dacă utilizați Arduin