Daftar Isi:
- Langkah 1: Komponen yang Dibutuhkan
- Langkah 2: Ketergantungan
- Langkah 3: Persiapan
- Langkah 4: Penggunaan
Video: Pemecah Mata Kubus Rubik Waktu Nyata Menggunakan Raspberry Pi dan OpenCV: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
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
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:
Cara Menggunakan Modul Jam Waktu Nyata (DS3231): 5 Langkah
Cara Menggunakan Modul Jam Waktu Nyata (DS3231): DS3231 adalah jam waktu nyata (RTC) I2C yang sangat akurat dan berbiaya rendah dengan osilator kristal kompensasi suhu (TCXO) dan kristal yang terintegrasi. Perangkat ini menggabungkan input baterai dan mempertahankan ketepatan waktu yang akurat saat daya utama ke
Q-Bot - Pemecah Kubus Rubik Sumber Terbuka: 7 Langkah (dengan Gambar)
Q-Bot - Pemecah Kubus Rubik Sumber Terbuka: Bayangkan Anda memiliki Kubus Rubik yang diacak, Anda tahu bahwa teka-teki membentuk tahun 80-an yang dimiliki setiap orang tetapi tidak ada yang benar-benar tahu cara memecahkannya, dan Anda ingin mengembalikannya ke pola aslinya. Untungnya hari ini sangat mudah untuk menemukan instruksi pemecahan
Arduino Mega Stepper Shield untuk Pemecah Kubus Rubik: 4 Langkah
Arduino Mega Stepper Shield untuk Pemecah Kubus Rubik: Beberapa waktu yang lalu saya sedang mengerjakan mesin yang secara otomatis memecahkan Kubus Rubik 3x3 yang diacak. Anda dapat melihat instruksi saya tentang itu di sini. Dalam proyek driver stepper dari polulu digunakan untuk menggerakkan enam motor. Dalam rangka dua membuat menghubungkan d ini
Jam Waktu Nyata Menggunakan AT89s52: 3 Langkah
Jam Real Time Menggunakan AT89s52: SELAMAT DATANG KEMBALI, Ini adalah shubham Trivedi dan hari ini saya akan merancang Jam Real Time menggunakan Mikrokontroler At89s52. Mikrokontroler AT89S52 adalah inti dari proyek ini. IC DS1307 digunakan sebagai RTC. IC DS1307 ini membutuhkan antarmuka I2C, tetapi 89
Membuat Jam Dengan M5stick C Menggunakan Arduino IDE - Jam Waktu Nyata RTC Dengan M5stack M5stick-C: 4 Langkah
Membuat Jam Dengan M5stick C Menggunakan Arduino IDE | Jam Waktu Nyata RTC Dengan M5stack M5stick-C: Hai teman-teman dalam instruksi ini kita akan belajar cara membuat jam dengan papan pengembangan m5stick-C dari m5stack menggunakan Arduino IDE. Jadi m5stick akan menampilkan tanggal, waktu & minggu dalam sebulan di layar