Isi kandungan:

Projek BricKuber - Robot Pemecahan Kubus Raspberry Pi Rubiks: 5 Langkah (dengan Gambar)
Projek BricKuber - Robot Pemecahan Kubus Raspberry Pi Rubiks: 5 Langkah (dengan Gambar)

Video: Projek BricKuber - Robot Pemecahan Kubus Raspberry Pi Rubiks: 5 Langkah (dengan Gambar)

Video: Projek BricKuber - Robot Pemecahan Kubus Raspberry Pi Rubiks: 5 Langkah (dengan Gambar)
Video: Руку — робот, собирающий кубик Рубика. 2024, Disember
Anonim
Image
Image

BricKuber dapat menyelesaikan kubus Rubik dalam masa kurang dari 2 minit.

BricKuber adalah robot penyelesaian kubus Rubik sumber terbuka yang boleh anda bina sendiri

Kami ingin membina robot pemecah kubus Rubiks dengan Raspberry Pi. Daripada berjalan pantas, kami pergi dengan mudah: jika anda mempunyai Raspberry Pi, kit BrickPi, dan Kit LEGO Mindstorms EV3 atau NXT standard, anda seharusnya dapat mengikuti jejak kami dengan mudah. Perisian ini ditulis dalam bahasa pengaturcaraan Python. Anda dapat melihat semua kod sumber di Github di sini.

Latar belakang The Rubik'sube baru-baru ini mula membuat kemunculan semula. Dicipta pada tahun 1974, ia adalah mainan terlaris di dunia. Tetapi menyelesaikannya memerlukan pemikiran, usaha, dan kemahiran… jadi mengapa tidak membiarkan robot melakukannya? Dalam projek ini, kami mengambil Raspberry Pi, BrickPi, dan satu set LEGO Mindstorms dan membina robot pemecah kiub Rubik. Cukup letakkan kubus Rubik yang tidak terpecahkan dalam pemecah, jalankan program python, dan kubus Rubik anda diselesaikan! Projek ini menggunakan Pi untuk menyelesaikan kubus Rubik secara langsung. BrickPi3 mengambil kubus Rubik yang tidak terselesaikan dan Raspberry Pi mengambil gambar setiap sisi kubus Rubik dengan Kamera Raspberry Pi. Pi membuat peta teks kotak warna yang menunjukkan di mana mereka berada di kubus. Ketika telah memetakan kubus sepenuhnya, Pi menggunakan perpustakaan python "kociemba" untuk memetakan gerakan yang diperlukan untuk menyelesaikan kubus Rubik. Maklumat ini diambil oleh Pi dan BrickPi3 untuk menyelesaikan kubus Rubik menggunakan motor LEGO. Hasilnya: kiub Rubik yang diselesaikan.

Langkah 1: Alat dan Bahan

Bangunlah
Bangunlah
  • BrickPi3 - Kami akan menggunakan BrickPi untuk mengawal motor LEGO yang menyelesaikan pemecah kubus Rubik.
  • Raspberry Pi - Pi akan melakukan pemprosesan, mengambil gambar, dan memerintahkan BrickPi.
  • Kamera Raspberry Pi - Kamera Pi akan mengambil gambar kubus Rubiks yang tidak terselesaikan.
  • Kabel Ethernet - Anda memerlukan mesin anda disambungkan ke internet. Sekiranya anda mahu melakukan ini melalui wifi, tidak mengapa!
  • Raspbian for Robots SD Card - Perisian yang menjalankan Raspberry Pi. Ini dilengkapi dengan sebahagian besar perisian yang diperlukan untuk tutorial ini. Anda juga boleh memuat turun perisian secara percuma.
  • LEGO Mindstorms EV3 Kit (31313) - Anda memerlukan timbunan LEGO dan dua motor besar, dan satu motor servo, dan Sensor Ultrasonik.
  • Rubik's Cube - Kami menjumpai satu yang berputar dengan bebas di sini. Anda boleh menggunakan hampir semua kubus Rubik 9x9x9.

Langkah 2: Bina

Bangunlah
Bangunlah
Bangunlah
Bangunlah

Membangun Penyelesai

Reka bentuk ini diilhamkan oleh reka bentuk MindCub3r untuk LEGO EV3. Untuk membina BricKuber, mulakan dengan membina MindCub3r. Arahan bangunan LEGO penuh boleh didapati di sini.

Reka bentuk pemecah kubus Rubiks mempunyai tiga bahagian bergerak utama. Yang pertama adalah buaian untuk memegang kubus Rubik. Yang kedua adalah shuffler, lengan yang digunakan untuk membalikkan kubus Rubik.

Akhirnya, kami menambah lengan kamera. Dalam reka bentuk asal oleh MindCubr, ini memegang sensor warna EV3 di atas kubus Rubik. Dalam reka bentuk yang diubah suai, ia memegang Kamera Raspberry Pi di atas kubus Rubik. Kami menggunakan dua motor LEGO Mindstorms untuk memanipulasi kubus: yang pertama duduk di bawah buaian untuk memutar kubus, dan yang kedua menggerakkan lengan shuffler untuk memutar kubus pada paksi yang berlawanan.

Pasang BrickPi3

Anda boleh mendapatkan arahan pemasangan BrickPi3 di sini. Kita perlu memasang casing, memasang BrickPi3, Raspberry Pi, Raspberry Pi Camera, menambah Kad SD, dan menambah bateri. Untuk menjadikan perisian lebih mudah untuk disiapkan, Raspbian untuk Robot dilengkapi dengan sebahagian besar perisian yang anda perlukan sudah siap. Anda memerlukan sekurang-kurangnya Kad SD 8 GB, dan anda ingin mengembangkan cakera agar sesuai dengan saiz penuh Kad SD.

Pasang BrickPi3

Kami menambah BrickPi3 ke pemasangan LEGO. Kami menggunakan "sayap" LEGO EV3 untuk menyokong BrickPi3 dan membuatnya setara dengan badan BricKuber. Ini adalah langkah yang baik untuk menambahkan bateri 8XAA ke pek kuasa dan memasang pek kuasa BrickPi3 ke unit LEGO. Untuk pengaturcaraan, anda dapat menghidupkan BrickPi3 melalui kuasa USB ke Raspberry Pi, namun untuk menggerakkan motor yang anda perlukan untuk membekalkan kuasa dengan Power Pack.

Sambungkan Motor ke BrickPi3

Pasang Shuffler Motor ke port motor "MD". Pasang motor buaian ke port "MA" di BrickPi3. Pasang motor sensor Kamera ke port "MC" (ini adalah motor seperti servo yang lebih kecil). Walaupun kami tidak akan menggerakkan kamera, anda mungkin mahu menyesuaikan lokasi kamera menggunakan motor.

Pasang Kamera Raspberry Pi

Menggunakan sokongan LEGO Camera, pasangkan kamera. Lensa hitam kecil kamera harus sesuai di antara dua penyokong rasuk LEGO. Pasang kamera di tempatnya ke penyokong LEGO dengan beberapa pita elektrik. Ini adalah masa yang tepat untuk memastikan bahawa kamera berada pada posisi yang tepat untuk menangkap seluruh kubus Rubik. Anda boleh mengambil gambar ujian dengan arahan raspistill

raspistill -o cam.jpg

Periksa bahawa kubus berpusat dengan baik di tengah gambar.

Langkah 3: Siapkan Perisian

Anda boleh menggunakan mana-mana versi Raspbian atau Raspbian untuk Robot, gambar khas kami yang disertakan dengan BrickPi3 yang sudah dipasang. Sekiranya anda menggunakan versi standard Raspbian, anda boleh memasang perpustakaan BrickPi3 menggunakan arahan

sudo curl -kL dexterindustries.com/update_brickpi3 | bash

Langkah ini akan memasang semua perpustakaan yang diperlukan untuk menjalankan BrickPi3 pada Gambar Raspbian anda. Lewati langkah ini jika anda menggunakan Raspbian untuk Robot: BrickPi3 sudah terpasang.

Akhirnya, pasang semua kebergantungan projek menggunakan arahan:

sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | bash

Untuk langkah ini BrickPi3 anda perlu disambungkan ke internet. Terdapat sebilangan perpustakaan yang bergantung pada projek ini, termasuk beberapa yang penting oleh Daniel Walton (@ dwalton76) di Github, yang digunakan untuk menyelesaikan kiub Rubik.

Langkah 4: Selesaikan Rubik's Cube

Selesaikan Rubik's Cube
Selesaikan Rubik's Cube
Selesaikan Rubik's Cube
Selesaikan Rubik's Cube
Selesaikan Rubik's Cube
Selesaikan Rubik's Cube

Letakkan kubus Rubik yang belum diselesaikan di buaian. Jalankan arahan

sudo python ~ / Dexter / BrickPi3 / Projek / BricKuber / BricKuber.py

Robot akan memusingkan kubus ke setiap wajah dan kamera akan mengambil 6 gambar, salah satu dari setiap sisi Cube. Raspberry Pi akan menentukan konfigurasi kubus dari enam gambar. Konfigurasi Cube akan diserahkan ke perpustakaan kociemba Python untuk mencari penyelesaian yang cekap. Akhirnya, robot akan melakukan gerakan menyelesaikan Rubik's Cube!

Langkah 5: Kod Sumber

Semua kod sumber untuk BricKuber boleh didapati di repo github sumber terbuka kami di sini.

Projek ini menggunakan pakej perisian berikut yang dipasang oleh arahan

Disyorkan: