Obsah:

Riešiteľ so zaviazanými očami v reálnom čase Rubikovej kocky pomocou Raspberry Pi a OpenCV: 4 kroky
Riešiteľ so zaviazanými očami v reálnom čase Rubikovej kocky pomocou Raspberry Pi a OpenCV: 4 kroky

Video: Riešiteľ so zaviazanými očami v reálnom čase Rubikovej kocky pomocou Raspberry Pi a OpenCV: 4 kroky

Video: Riešiteľ so zaviazanými očami v reálnom čase Rubikovej kocky pomocou Raspberry Pi a OpenCV: 4 kroky
Video: "Сила желчи и Дополнительная жизнь для позвоночника" Запись мастер-класса 2024, Júl
Anonim

Toto je druhá verzia nástroja Rubikova kocka navrhnutá na riešenie so zaviazanými očami. 1. verziu vyvinul javascript, môžete vidieť projekt RubiksCubeBlindfolded1

Na rozdiel od predchádzajúcej používa táto verzia knižnicu OpenCV na zisťovanie farieb a zadávanie vstupov a poskytuje lepšiu techniku vizualizácie.

Najväčším problémom tejto najnovšej verzie je vizualizácia výstupov, položky sekvencie sa zobrazujú na nakreslenej kocke 1 naraz. Keďže kocka je 3D tvar, je ťažké zobraziť všetky strany súčasne. Výsledky nájdete v mojom videu na kanáli YouTube na YouTube

Používam kocku bez nálepiek, vyžaduje si to vlastné rozpoznanie a väčšina otvorených zdrojových kódov nie je podporovaná. Použil som tento otvorený zdroj vyvinutý spoločnosťou Kim Koomen, ktorý špecifikuje pevné oblasti na ráme kamery, aby zistil správne farby tvárí kocky qbr projekt

Krok 1: Potrebné súčasti

  • Malinový koláč
  • webkamera

alebo môžete použiť prenosný počítač

Krok 2: Závislosti

  • Python 3
  • numpy knižnica
  • Knižnica OpenCV

$ sudo apt-get install python3-opencv

Balíček so zaviazaným skladaním

$ pip3 install RubiksBlindfolded

Krok 3: Prípravy

Ako predbežný krok musíte kalibrovať detekciu farieb. Farebné kódy HSV sa líšia v závislosti od osvetlenia, kvality a rozlíšenia kamery a samotných farieb kociek. V mojom prípade kombinujem biele a žlté svetlá, aby som dosiahol správne výsledky.

Aktualizujte funkciu get_color_name (hsv) na adrese colordetection.py

Pôvodný zdrojový kód používa na riešenie kocky balík kociemba, ktorý rieši nájdením spätných krokov akéhokoľvek ťahanice. V tejto verzii som použil vlastný balík riešení s názvom RubiksBlindfolded, ktorý bol publikovaný na PyPI. Pozrite sa do popisu, aby ste vedeli, ako ho používať RubiksBlindfolded

Krok 4: Použitie

Použitie
Použitie
Použitie
Použitie

Po nainštalovaní všetkých závislostí a nastavení fotoaparátu je čas spustiť skript blindfolded.py

Najprv musíte naskenovať kocku v správnej orientácii. Toto je štruktúra kocky, poradie skenovania tvárí nie je dôležité. Všimnite si, že toto sú predvolené farby plôch kocky, môžete ich zmeniť aktualizáciou slovníka notácií v skripte blindfolded.py

Na vykonanie skenovania stlačte medzerník, aby ste po dokončení uložili zobrazenie a kláves ESC

Za druhé, na konzole môžete vidieť sekvencie riešení a kontrolu parity, ktorá vám povie, či potrebujete alebo nie použiť paritný algoritmus.

Po tretie, vygeneruje sa nový rámec, ktorý zobrazí 2 nakreslené kocky pre sekvenciu hrán a sekvenciu rohov. Na prepínanie medzi položkami sekvencie môžete použiť klávesy so šípkou doľava a doprava a pomocou klávesov so šípkami nahor a nadol prepínať medzi okrajom a rohom. svetlo šedá farba predstavuje aktuálnu sekvenciu.

Farby aktuálnej vyrovnávacej pamäte, ktoré sa dynamicky menia, môžete vidieť pomocou klávesov so šípkami. Šedé farby predstavujú cieľovú kocku a ružová farbu meniacu sa tvár

Zdrojový kód

github.com/mn-banjar/blindfolded2

Odporúča: