Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Tämä on Rubikin kuutiotyökalun toinen versio, joka on suunniteltu ratkaisemaan silmät. Ensimmäinen versio on kehittänyt javascript, näet projektin RubiksCubeBlindfolded1
Toisin kuin edellinen, tämä versio käyttää OpenCV -kirjastoa värien havaitsemiseen ja syötteiden syöttämiseen ja tarjoaa paremman visualisointitekniikan.
Suurin ongelma tässä uusimmassa versiossa on ulostulojen visualisointi, sekvenssikohdat näytetään piirretyssä kuutiossa 1 kerrallaan. Koska kuutio on 3D -muotoinen, on vaikea näyttää kaikkia sivuja samanaikaisesti. Katso tulokset YouTube -kanavani YouTube -videosta
Käytän tarratonta kuutiota, tämä vaatii mukautetun tunnistuksen, ja useimpia avoimen lähdekoodin koodia ei tueta. Käytin tätä Kim Koomenin kehittämää avointa lähdekoodia, joka määrittää kiinteät alueet kameran kehyksessä kuution kasvojen oikeiden värien havaitsemiseksi qbr -projektissa
Vaihe 1: Tarvittavat komponentit
- Raspberry Pi
- verkkokamera
tai voit käyttää kannettavaa tietokonettasi
Vaihe 2: Riippuvuudet
- Python 3
- numpy kirjasto
- OpenCV -kirjasto
$ sudo apt-get install python3-opencv
RubiksSilmäsuojattu paketti
$ pip3 asenna RubiksBlindfolded
Vaihe 3: Valmistelut
Sinun on kalibroitava värin tunnistus esivaiheena. HSV -värikoodit vaihtelevat valaistuksen, kameran laadun ja resoluution sekä kuution värien vuoksi. Minun tapauksessani yhdistän valkoiset ja keltaiset valot saadakseni oikeat tulokset.
Päivitä get_color_name (hsv) -toiminto osoitteessa colordetection.py
Alkuperäinen lähdekoodi käyttää kociemba -pakettia kuution ratkaisemiseen, se ratkaisee etsimällä minkä tahansa sekoituksen käänteiset vaiheet. Tässä versiossa käytin omaa RubiksBlindfolded -nimistä ratkaisupakettiani, joka julkaistiin PyPI: ssä. Katso kuvaus, kuinka voit käyttää sitä RubiksBlindfolded
Vaihe 4: Käyttö
Kun olet asentanut kaikki riippuvuudet ja asettanut kameran, on aika suorittaa silmät.py -komentosarja
Ensin sinun on skannattava kuutio oikeisiin suuntiin. Tämä on kuutiorakenne, kasvojen skannausjärjestys ei ole tärkeä. Huomaa, että nämä ovat kuution kasvojen oletusvärit, ja voit muuttaa niitä päivittämällä merkintäsanakirjan blindfolded.py -skriptissä
Voit tehdä skannauksen painamalla välilyöntinäppäintä tallentaaksesi näkymän ja ESC -näppäintä lopettamisen jälkeen
Toiseksi näet konsolissa olevat ratkaisusekvenssit ja pariteettitarkistuksen, joka kertoo, haluatko käyttää pariteettialgoritmia vai ei
Kolmanneksi luodaan uusi kehys, joka näyttää 2 piirrettyä kuutiota reuna- ja kulmasekvenssille. Voit vaihtaa järjestyskohteiden välillä vasemmalla ja oikealla nuolinäppäimellä ja reunan ja kulman välillä siirtymisellä ylös ja alas. vaaleanharmaa väri edustaa nykyistä järjestystä.
Näet nykyisen puskurin värit, jotka muuttuvat dynaamisesti nuolinäppäimillä. Harmaat värit edustavat kohdekuppaa ja vaaleanpunainen väri edustaa vaihdettavia kasvoja
Lähdekoodi
github.com/mn-banjar/blindfolded2