Daftar Isi:

Pemecah Mata Kubus Rubik Waktu Nyata Menggunakan Raspberry Pi dan OpenCV: 4 Langkah
Pemecah Mata Kubus Rubik Waktu Nyata Menggunakan Raspberry Pi dan OpenCV: 4 Langkah

Video: Pemecah Mata Kubus Rubik Waktu Nyata Menggunakan Raspberry Pi dan OpenCV: 4 Langkah

Video: Pemecah Mata Kubus Rubik Waktu Nyata Menggunakan Raspberry Pi dan OpenCV: 4 Langkah
Video: CARA CEPAT MENYELESAIKAN RUBIK? BARU TAU! 2024, November
Anonim

Ini adalah versi ke-2 dari alat kubus Rubik yang dibuat untuk memecahkan dengan mata tertutup. Versi pertama dikembangkan oleh javascript, Anda dapat melihat proyek RubiksCubeBlindfolded1

Berbeda dengan versi sebelumnya, versi ini menggunakan library OpenCV untuk mendeteksi warna dan memasukkan input, serta memberikan teknik visualisasi yang lebih baik.

Masalah terbesar dalam versi terbaru ini adalah visualisasi output, item urutan ditampilkan pada kubus yang digambar 1 sekaligus. Karena kubus adalah bentuk 3D, sulit untuk menampilkan semua sisi secara bersamaan. Lihat hasilnya di video youtube channel youtube saya

Saya menggunakan kubus tanpa stiker, ini membutuhkan pengenalan khusus dan sebagian besar kode sumber terbuka tidak didukung. Saya menggunakan sumber terbuka ini yang dikembangkan oleh Kim Koomen yang menentukan area tetap pada bingkai kamera untuk mendeteksi warna yang benar dari proyek qbr wajah kubus

Langkah 1: Komponen yang Dibutuhkan

  • Raspberry Pi
  • kamera web

atau Anda dapat menggunakan laptop Anda

Langkah 2: Ketergantungan

  • Python 3
  • perpustakaan numpy
  • Perpustakaan OpenCV

$ sudo apt-get install python3-opencv

RubiksBlindfolded package

$ pip3 menginstal RubiksBlindfolded

Langkah 3: Persiapan

Anda perlu mengkalibrasi deteksi warna sebagai langkah awal. Kode warna HSV bervariasi karena pencahayaan, kualitas dan resolusi kamera, dan warna kubus itu sendiri. Dalam kasus saya, saya menggabungkan lampu putih dan kuning untuk mendapatkan hasil yang benar.

Perbarui fungsi get_color_name(hsv) di colordetection.py

Kode sumber asli menggunakan paket kociemba untuk memecahkan kubus, ini dipecahkan dengan menemukan langkah-langkah kebalikan dari perebutan apa pun. Dalam versi ini, saya menggunakan paket pemecahan saya sendiri bernama RubiksBlindfolded yang diterbitkan di PyPI. Lihat deskripsi untuk mengetahui cara menggunakannya RubiksBlindfolded

Langkah 4: Penggunaan

Penggunaan
Penggunaan
Penggunaan
Penggunaan

Setelah menginstal semua dependensi dan mengatur kamera Anda, inilah saatnya untuk menjalankan skrip blindfolded.py

Pertama, Anda perlu memindai kubus Anda dalam orientasi yang benar. Ini adalah struktur kubus, urutan pemindaian wajah tidak penting. Perhatikan bahwa ini adalah warna default dari wajah kubus, Anda dapat mengubahnya dengan memperbarui kamus notasi pada skrip blindfolded.py

Untuk melakukan pemindaian, tekan tombol spasi untuk menyimpan tampilan dan tombol ESC setelah selesai

Kedua, Anda dapat melihat urutan solusi di konsol, dan pemeriksaan paritas untuk memberi tahu Anda apakah Anda perlu menerapkan algoritma paritas atau tidak.

Ketiga, akan dihasilkan bingkai baru yang menampilkan 2 kubus yang digambar untuk urutan tepi dan urutan sudut. Anda dapat menggunakan tombol panah kiri dan kanan untuk beralih di antara item urutan, dan tombol panah atas dan bawah untuk beralih antara tepi dan sudut. warna abu-abu muda mewakili urutan saat ini.

Anda dapat melihat warna buffer saat ini yang berubah secara dinamis dengan tombol panah. Warna abu-abu mewakili cubie target, dan warna pink mewakili wajah yang bertukar

Kode sumber

github.com/mn-banjar/blindfolded2

Direkomendasikan: