Isi kandungan:

Penyelesai Mata Rubik's Cube Blindfolded Real-Time Menggunakan Raspberry Pi dan OpenCV: 4 Langkah
Penyelesai Mata Rubik's Cube Blindfolded Real-Time Menggunakan Raspberry Pi dan OpenCV: 4 Langkah

Video: Penyelesai Mata Rubik's Cube Blindfolded Real-Time Menggunakan Raspberry Pi dan OpenCV: 4 Langkah

Video: Penyelesai Mata Rubik's Cube Blindfolded Real-Time Menggunakan Raspberry Pi dan OpenCV: 4 Langkah
Video: Rubik's Cube Blindfolded: Example Solve (Old Pochmann) 2024, Disember
Anonim

Ini adalah versi ke-2 alat kiub Rubik yang dibuat untuk menyelesaikan masalah dengan penutup mata. Versi pertama dikembangkan oleh javascript, anda dapat melihat projek RubiksCubeBlindfolded1

Tidak seperti sebelumnya, versi ini menggunakan perpustakaan OpenCV untuk mengesan warna dan memasukkan input, dan memberikan teknik visualisasi yang lebih baik.

Isu terbesar dalam versi terbaru ini adalah visualisasi output, item urutan dipaparkan pada kubus 1 yang dilukis pada satu masa. Oleh kerana kubus berbentuk 3D, sukar untuk menampilkan semua sisi pada masa yang sama. Lihat hasilnya di video YouTube saluran YouTube saya

Saya menggunakan kubus tanpa pelekat, ini memerlukan pengecaman tersuai dan kebanyakan kod sumber terbuka tidak disokong. Saya menggunakan sumber terbuka ini yang dikembangkan oleh Kim Koomen yang menentukan kawasan tetap pada bingkai kamera untuk mengesan warna yang betul dari projek qbr wajah kubus

Langkah 1: Komponen yang Diperlukan

  • Pai raspberi
  • kamera web

atau anda boleh menggunakan komputer riba anda

Langkah 2: Kebergantungan

  • Python 3
  • perpustakaan numpy
  • Perpustakaan OpenCV

$ sudo apt-get install python3-opencv

Pakej RubiksBlindfolded

$ pip3 pasang RubiksBlindfolded

Langkah 3: Persediaan

Anda perlu mengkalibrasi pengesanan warna sebagai langkah awal. Kod warna HSV berbeza-beza kerana pencahayaan, kualiti dan resolusi kamera, dan warna kubus itu sendiri. Dalam kes saya, saya menggabungkan lampu putih dan kuning untuk mendapatkan hasil yang betul.

Kemas kini fungsi get_color_name (hsv) di colordetection.py

Kod sumber asal menggunakan pakej kociemba untuk menyelesaikan kubus, ia dapat diselesaikan dengan mencari langkah-langkah sebaliknya dari sebarang perebutan. Dalam versi ini, saya menggunakan pakej penyelesaian saya sendiri bernama RubiksBlindfolded yang diterbitkan di PyPI. Lihat penerangan untuk mengetahui cara menggunakannya RubiksBlindfolded

Langkah 4: Penggunaan

Penggunaan
Penggunaan
Penggunaan
Penggunaan

Setelah memasang semua kebergantungan dan menetapkan kamera anda, inilah masanya untuk menjalankan skrip blindfolded.py

Pertama, anda perlu mengimbas kubus anda dengan orientasi yang betul. Ini adalah struktur kubus, urutan mengimbas wajah tidak penting. Perhatikan bahawa ini adalah warna default wajah kubus, anda boleh mengubahnya dengan mengemas kini kamus notasi pada skrip blindfolded.py

Untuk membuat imbasan tekan kekunci ruang untuk menyimpan pandangan dan kekunci ESC setelah selesai

Kedua, anda dapat melihat urutan penyelesaian pada konsol, dan pemeriksaan paritas untuk memberitahu anda jika anda perlu menggunakan algoritma pariti atau tidak

Ketiga, bingkai baru akan dihasilkan yang menampilkan 2 kubus yang dilukis untuk urutan tepi dan urutan sudut. Anda boleh menggunakan kekunci anak panah kiri dan kanan untuk beralih antara item urutan, dan kekunci anak panah atas dan bawah untuk beralih antara tepi dan sudut. warna kelabu muda mewakili urutan semasa.

Anda dapat melihat warna penyangga semasa yang berubah secara dinamik dengan kekunci anak panah. Warna kelabu mewakili cubie sasaran, dan warna merah jambu mewakili wajah bertukar

Kod sumber

github.com/mn-banjar/blindfolded2

Disyorkan: