Kazalo:

Rubikova kocka z zavezanimi očmi v realnem času z uporabo Raspberry Pi in OpenCV: 4 koraki
Rubikova kocka z zavezanimi očmi v realnem času z uporabo Raspberry Pi in OpenCV: 4 koraki

Video: Rubikova kocka z zavezanimi očmi v realnem času z uporabo Raspberry Pi in OpenCV: 4 koraki

Video: Rubikova kocka z zavezanimi očmi v realnem času z uporabo Raspberry Pi in OpenCV: 4 koraki
Video: Teden Univerze v Ljubljan, Podelitev študentskih Prešernovih nagrad 2024, November
Anonim

To je druga različica orodja Rubikove kocke za reševanje z zavezanimi očmi. Prvo različico je razvil javascript, lahko si ogledate projekt RubiksCubeBlindfolded1

Za razliko od prejšnje ta različica uporablja knjižnico OpenCV za zaznavanje barv in vnos vnosov ter zagotavlja boljšo tehniko vizualizacije.

Največja težava v tej najnovejši različici je vizualizacija izhodov, elementi zaporedja so prikazani na vlečeni kocki 1 hkrati. Ker je kocka 3D oblika, je težko prikazati vse stranice hkrati. Oglejte si rezultate na mojem YouTube kanalu YouTube video

Uporabljam kocko brez nalepk, za to je potrebno prepoznavanje po meri in večina odprtokodnih kod ni podprta. Uporabil sem to odprtokodno datoteko, ki jo je razvila Kim Koomen in ki določa fiksna območja na okvirju kamere za zaznavanje pravilnih barv kockinih površin qbr project

Korak: Potrebne komponente

  • Malina Pi
  • Spletna kamera

ali pa uporabite prenosni računalnik

2. korak: Odvisnosti

  • Python 3
  • knjižnica numpy
  • Knjižnica OpenCV

$ sudo apt-get namestite python3-opencv

Rubiks paket z zavezanimi očmi

$ pip3 namestite Rubiks z zavezanimi očmi

3. korak: Priprave

Kot predhodni korak morate umeriti zaznavanje barv. Barvne kode HSV se razlikujejo zaradi osvetlitve, kakovosti fotoaparata in ločljivosti ter samih barv kocke. V mojem primeru kombiniram belo in rumeno luč, da dobim pravilne rezultate.

Posodobite funkcijo get_color_name (hsv) na colordetection.py

Prvotna izvorna koda za reševanje kocke uporablja paket kociemba, ki ga reši tako, da poišče obratne korake vsakega šifriranja. V tej različici sem uporabil svoj paket za reševanje z imenom RubiksBlindfolded, ki je bil objavljen na PyPI. Oglejte si opis, če želite vedeti, kako ga uporabljati Rubiks z zavezanimi očmi

4. korak: Uporaba

Uporaba
Uporaba
Uporaba
Uporaba

Po namestitvi vseh odvisnosti in nastavitvi kamere je čas, da zaženete skript blindfolded.py

Najprej morate optično prebrati kocko v pravilni usmeritvi. To je kockasta struktura, vrstni red skeniranja obrazov ni pomemben. Upoštevajte, da so to privzete barve obrazov kocke, ki jih lahko spremenite tako, da posodobite slovar zapisov v skriptu blindfolded.py

Za skeniranje pritisnite preslednico, da shranite pogled in tipko ESC, ko končate

Drugič, na konzoli si lahko ogledate zaporedja rešitev in preverjanje parnosti, ki vam pove, ali morate uporabiti algoritem parnosti ali ne

Tretjič, ustvaril se bo nov okvir, ki prikazuje 2 narisani kocki za zaporedje robov in zaporedje vogalov. Za preklapljanje med elementi zaporedja lahko uporabite puščični tipki levo in desno, za preklop med robom in vogalom pa puščični tipki gor in dol. svetlo siva barva predstavlja trenutno zaporedje.

Vidite lahko barve trenutnega medpomnilnika, ki se s puščičnimi tipkami dinamično spreminjajo. Siva barva predstavlja ciljno cubie, roza barva pa zamenja obraz

Izvorna koda

github.com/mn-banjar/blindfolded2

Priporočena: