İçindekiler:

Raspberry Pi ve OpenCV Kullanan Gerçek Zamanlı Rubik Küp Gözü Kapalı Çözücü: 4 Adım
Raspberry Pi ve OpenCV Kullanan Gerçek Zamanlı Rubik Küp Gözü Kapalı Çözücü: 4 Adım

Video: Raspberry Pi ve OpenCV Kullanan Gerçek Zamanlı Rubik Küp Gözü Kapalı Çözücü: 4 Adım

Video: Raspberry Pi ve OpenCV Kullanan Gerçek Zamanlı Rubik Küp Gözü Kapalı Çözücü: 4 Adım
Video: OpenCV ve Python Görüntü İşlemeye Giriş | Vusal Ismayilov | TGEA #4 2024, Aralık
Anonim

Bu, Rubik küp aracının gözleri bağlı olarak çözmek için yapılmış 2. versiyonudur. 1. versiyon javascript ile geliştirilmiştir, RubiksCubeBlindfolded1 projesini görebilirsiniz.

Bir öncekinden farklı olarak bu sürüm, renkleri algılamak ve girişleri girmek için OpenCV kütüphanesini kullanır ve daha iyi görselleştirme tekniği sağlar.

Bu en yeni sürümdeki en büyük sorun, çıktıların görselleştirilmesidir, sıra öğeleri bir kerede çizilen küp 1'de görüntülenir. Küp 3 boyutlu bir şekil olduğundan, tüm kenarları aynı anda görüntülemek zordur. Sonuçları YouTube kanalımdaki YouTube videosunda görün

Çıkartmasız bir küp kullanıyorum, bunun için özel bir tanıma gerekiyor ve çoğu açık kaynak kodu desteklenmiyor. Küp yüzlerinin doğru renklerini tespit etmek için kamera çerçevesindeki sabit alanları belirten Kim Koomen tarafından geliştirilen bu açık kaynağı kullandım qbr projesi

Adım 1: Gerekli Bileşenler

  • Ahududu Pi
  • web kamerası

veya dizüstü bilgisayarınızı kullanabilirsiniz

2. Adım: Bağımlılıklar

  • piton 3
  • numpy kitaplığı
  • OpenCV kitaplığı

$ sudo apt-get kurulumu python3-opencv

RubiksGözleri bağlı paket

$ pip3 RubiksBlindfolded yükleyin

Adım 3: Hazırlıklar

Ön adım olarak renk algılamayı kalibre etmeniz gerekir. HSV renk kodları, aydınlatma, kamera kalitesi ve çözünürlüğü ve küp renklerinin kendisine bağlı olarak değişmektedir. Benim durumumda, doğru sonuçlar elde etmek için beyaz ve sarı ışıkları birleştiriyorum.

colordetection.py üzerinde get_color_name(hsv) işlevini güncelleyin

Orijinal kaynak kodu, küpü çözmek için kociemba paketini kullanır, herhangi bir karıştırmanın ters adımlarını bularak çözer. Bu sürümde, PyPI üzerinde yayınlanan RubiksBlindfolded adlı kendi çözüm paketimi kullandım. Nasıl kullanılacağını öğrenmek için açıklamaya bakın RubiksBlindfolded

4. Adım: Kullanım

kullanım
kullanım
kullanım
kullanım

Tüm bağımlılıkları yükledikten ve kameranızı ayarladıktan sonra, gözbağı.py betiğini çalıştırmanın zamanı geldi.

İlk olarak, küpünüzü doğru yönlerde taramanız gerekir. Bu küp yapısıdır, yüzleri tarama sırası önemli değildir. Bunların küp yüzlerinin varsayılan renkleri olduğuna dikkat edin, bunları gözbağı.py betiğindeki gösterim sözlüğünü güncelleyerek değiştirebilirsiniz.

Taramayı yapmak için görünümü kaydetmek için boşluk tuşuna ve bitirdikten sonra ESC tuşuna basın.

İkincisi, konsolda çözüm dizilerini ve eşlik algoritmasını uygulamanız gerekip gerekmediğini söyleyen eşlik kontrolünü görebilirsiniz.

Üçüncüsü, kenar sırası ve köşe sırası için 2 çizilmiş küp görüntüleyen yeni bir çerçeve oluşturulacaktır. Sıralama öğeleri arasında geçiş yapmak için sol ve sağ ok tuşlarını, kenar ve köşe arasında geçiş yapmak için yukarı ve aşağı ok tuşlarını kullanabilirsiniz. açık gri renk mevcut sırayı temsil eder.

Ok tuşları ile dinamik olarak değişen mevcut tamponun renklerini görebilirsiniz. Gri renkler hedef küpü, pembe renk ise değişen yüzü temsil eder.

Kaynak kodu

github.com/mn-banjar/blindfolded2

Önerilen: