Obsah:

Řešič se zavázanýma očima Rubikova kostka v reálném čase pomocí Raspberry Pi a OpenCV: 4 kroky
Řešič se zavázanýma očima Rubikova kostka v reálném čase pomocí Raspberry Pi a OpenCV: 4 kroky

Video: Řešič se zavázanýma očima Rubikova kostka v reálném čase pomocí Raspberry Pi a OpenCV: 4 kroky

Video: Řešič se zavázanýma očima Rubikova kostka v reálném čase pomocí Raspberry Pi a OpenCV: 4 kroky
Video: CUBER - JAK SE ŘÍKÁ CUBER? #cuber (CUBER - HOW TO SAY CUBER? #cuber) 2024, Listopad
Anonim

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í

Používání
Používání
Používání
Používání

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

Doporučuje: