Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
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ə
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