Mündəricat:

Raspberry Pi və OpenCV istifadə edərək real vaxtda Rubik Cube Gözləri Bağlı Çözücü: 4 addım
Raspberry Pi və OpenCV istifadə edərək real vaxtda Rubik Cube Gözləri Bağlı Çözücü: 4 addım

Video: Raspberry Pi və OpenCV istifadə edərək real vaxtda Rubik Cube Gözləri Bağlı Çözücü: 4 addım

Video: Raspberry Pi və OpenCV istifadə edərək real vaxtda Rubik Cube Gözləri Bağlı Çözücü: 4 addım
Video: Supervised Home Assistant. RaspiOS 64-də asan quraşdırma - Argon One M.2 qutusunda Raspberry PI 4B 2024, Noyabr
Anonim

Bu, gözləri bağlı halda həll etmək üçün hazırlanmış Rubik kub alətinin 2 -ci versiyasıdır. 1 -ci versiya javascript tərəfindən hazırlanmışdır, RubiksCubeBlindfolded1 layihəsini görə bilərsiniz

Əvvəlki versiyadan fərqli olaraq, bu versiya rəngləri aşkar etmək və girişlərə daxil olmaq üçün OpenCV kitabxanasından istifadə edir və daha yaxşı görselleştirme texnikası təmin edir.

Bu yeni versiyada ən böyük problem, çıxışların görselleştirilmesidir, ardıcıllıq elementləri bir anda çəkilmiş kub 1 -də göstərilir. Küp 3D formalı olduğu üçün bütün tərəfləri eyni anda göstərmək çətindir. Nəticələri YouTube kanalımdakı YouTube videosunda görün

Etiketsiz bir kub istifadə edirəm, bunun xüsusi tanınması lazımdır və əksər açıq mənbə kodları dəstəklənmir. Kim qob layihəsinin kubların doğru rənglərini aşkar etmək üçün kamera çərçivəsindəki sabit sahələri təyin edən Kim Koomen tərəfindən hazırlanan bu açıq mənbədən istifadə etdim.

Addım 1: Lazım olan komponentlər

  • Moruq Pi
  • vebkamera

ya da dizüstü kompüterinizdən istifadə edə bilərsiniz

Addım 2: Asılılıqlar

  • Python 3
  • numpy kitabxana
  • OpenCV kitabxanası

$ sudo apt-get install python3-opencv

Rubiks Gözləri bağlı paket

$ pip3 RubiksBlindfolded quraşdırın

Addım 3: Hazırlıqlar

Rəng algılamasını əvvəlcədən bir addım olaraq kalibr etməlisiniz. HSV rəng kodları işıqlandırma, kameranın keyfiyyəti və qətnaməsi və kub rənglərinin özündən asılı olaraq dəyişir. Mənim vəziyyətimdə düzgün nəticələr əldə etmək üçün ağ və sarı işıqları birləşdirirəm.

Colordetection.py -də get_color_name (hsv) funksiyasını yeniləyin

Orijinal mənbə kodu kubu həll etmək üçün kociemba paketindən istifadə edir, hər hansı bir qarışıqlığın tərs addımlarını taparaq həll edir. Bu versiyada, PyPI -də yayımlanan RubiksBlindfolded adlı öz həll paketimdən istifadə etdim. RubiksBlindfolded necə istifadə ediləcəyini bilmək üçün təsvirə baxın

Addım 4: İstifadə

İstifadə
İstifadə
İstifadə
İstifadə

Bütün asılılıqları qurduqdan və kameranızı qurduqdan sonra, blindfolded.py skriptini işə salmağın vaxtıdır

Əvvəlcə kubunuzu düzgün istiqamətlərdə taramalısınız. Bu kub quruluşudur, üzlərin taranma qaydası vacib deyil. Bunların kub üzlərinin standart rəngləri olduğuna diqqət yetirin, blindfolded.py skriptindəki qeyd lüğətini yeniləyərək onları dəyişə bilərsiniz.

Skan etmək üçün görünüşü saxlamaq üçün boşluq düyməsini və bitirdikdən sonra ESC düyməsini basın

İkincisi, konsoldakı həll ardıcıllığını və paritet alqoritmini tətbiq etməyinizə ehtiyac olub olmadığını söyləmək üçün paritet yoxlamasını görə bilərsiniz.

Üçüncüsü, kənar ardıcıllığı və künc ardıcıllığı üçün 2 çəkilmiş kubu göstərən yeni bir çərçivə yaradılacaq. Sıra elementləri arasında keçid üçün sol və sağ ox düymələrindən, kənar və künc arasında keçid üçün yuxarı və aşağı ox düymələrindən istifadə edə bilərsiniz. açıq boz rəng cari ardıcıllığı əks etdirir.

Ox düymələri ilə dinamik olaraq dəyişən cari buferin rənglərini görə bilərsiniz. Boz rənglər hədəf balasını, çəhrayı rəng isə dəyişdirmə üzünü təmsil edir

Mənbə kodu

github.com/mn-banjar/blindfolded2

Tövsiyə: