2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
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
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