2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Toto je druhá verze nástroje Rubikova kostka vytvořeného pro řešení se zavázanýma očima. 1. verze byla vyvinuta javascriptem, můžete vidět projekt RubiksCubeBlindfolded1
Na rozdíl od předchozí verze tato verze používá knihovnu OpenCV k detekci barev a zadávání vstupů a poskytuje lepší vizualizační techniku.
Největší problém v této nejnovější verzi je vizualizace výstupů, položky sekvence se zobrazují na nakreslené krychli 1 najednou. Protože je kostka 3D tvarem, je obtížné zobrazit všechny strany současně. Výsledky najdete na mém videu na YouTube kanálu YouTube
Používám krychli bez nálepky, to vyžaduje vlastní rozpoznávání a většina otevřených zdrojových kódů není podporována. Použil jsem tento otevřený zdroj vyvinutý Kimem Koomenem, který určuje pevné oblasti na rámu kamery, aby detekoval správné barvy tváří kostky qbr projektu
Krok 1: Potřebné součásti
- Raspberry Pi
- webová kamera
nebo můžete použít svůj notebook
Krok 2: Závislosti
- Python 3
- numpy knihovna
- OpenCV knihovna
$ sudo apt-get install python3-opencv
Balíček se zavázanýma očima
$ pip3 install RubiksBlindfolded
Krok 3: Přípravy
Jako předběžný krok musíte kalibrovat detekci barev. Barevné kódy HSV se liší v závislosti na osvětlení, kvalitě kamery a rozlišení a samotných barvách kostek. V mém případě kombinuji bílá a žlutá světla, abych získal správné výsledky.
Aktualizujte funkci get_color_name (hsv) na colordetection.py
Původní zdrojový kód používá k řešení krychle balíček kociemba, řeší to tak, že najde zpětné kroky jakéhokoli tahanice. V této verzi jsem použil svůj vlastní balíček řešení s názvem RubiksBlindfolded, který byl publikován na PyPI. Podívejte se do popisu, abyste věděli, jak jej používat RubiksBlindfolded
Krok 4: Použití
Po instalaci všech závislostí a nastavení kamery je čas spustit skript blindfolded.py
Nejprve musíte naskenovat kostku se správnou orientací. Toto je struktura krychle, pořadí skenování obličejů není důležité. Všimněte si, že toto jsou výchozí barvy ploch krychle, můžete je změnit aktualizací slovníku notace na skriptu blindfolded.py
Chcete -li skenování provést, stiskněte mezerník pro uložení zobrazení a klávesu ESC po dokončení
Za druhé, na konzole můžete vidět sekvence řešení a kontrolu parity, která vám řekne, zda potřebujete použít paritní algoritmus nebo ne
Za třetí bude vygenerován nový rámec, který zobrazí 2 nakreslené kostky pro posloupnost hran a posloupnost rohů. K přepínání mezi položkami sekvencí můžete použít klávesy se šipkami doleva a doprava a mezi šipkami nahoru a dolů přepínat mezi okrajem a rohem. světle šedá barva představuje aktuální sekvenci.
Pomocí šipek můžete vidět barvy aktuálního bufferu, které se dynamicky mění. Šedé barvy představují cílovou kostku a růžová barva měnící se obličej
Zdrojový kód
github.com/mn-banjar/blindfolded2