Sisällysluettelo:

Reaaliaikainen Rubikin kuution silmät ratkaistu Ratkaisu Raspberry Pi: n ja OpenCV: n avulla: 4 vaihetta
Reaaliaikainen Rubikin kuution silmät ratkaistu Ratkaisu Raspberry Pi: n ja OpenCV: n avulla: 4 vaihetta

Video: Reaaliaikainen Rubikin kuution silmät ratkaistu Ratkaisu Raspberry Pi: n ja OpenCV: n avulla: 4 vaihetta

Video: Reaaliaikainen Rubikin kuution silmät ratkaistu Ratkaisu Raspberry Pi: n ja OpenCV: n avulla: 4 vaihetta
Video: Tahtotilasta työhön - Katseet kohti tulevaa 3.11. 2024, Marraskuu
Anonim

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ö

Käyttö
Käyttö
Käyttö
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

Suositeltava: