Daftar Isi:

Robot Pengemis Dengan Pelacakan dan Kontrol Wajah oleh Xbox Controller - Arduino: 9 Langkah (dengan Gambar)
Robot Pengemis Dengan Pelacakan dan Kontrol Wajah oleh Xbox Controller - Arduino: 9 Langkah (dengan Gambar)

Video: Robot Pengemis Dengan Pelacakan dan Kontrol Wajah oleh Xbox Controller - Arduino: 9 Langkah (dengan Gambar)

Video: Robot Pengemis Dengan Pelacakan dan Kontrol Wajah oleh Xbox Controller - Arduino: 9 Langkah (dengan Gambar)
Video: Leap Motion SDK 2024, November
Anonim
Image
Image
Menginstal dan Mengkonfigurasi OpenCV dan C++
Menginstal dan Mengkonfigurasi OpenCV dan C++

Kita akan membuat robot pengemis. Robot ini akan berusaha mengganggu atau menarik perhatian orang yang lewat. Ini akan mendeteksi wajah mereka dan mencoba menembakkan laser ke arah mereka. Jika Anda memberi robot koin, ia akan menyanyikan sebuah lagu dan menari. Robot akan membutuhkan arduino, umpan langsung kamera, dan komputer untuk menjalankan openCV. Robot juga akan dapat dikendalikan oleh pengontrol xBox jika terhubung ke PC.

Langkah 1: Bahan

Elektronik Perangkat Keras

  • Arduino NANO atau UNO
  • Kamera USB 2.0
  • Kabel jumper (jantan dan betina)
  • 2 x Servo - Generik (Ukuran Sub-Mikro)
  • 2 x LED-KATODE RGB 5mm
  • 2 x 5mW Laser
  • 1 x LED Merah 5mm
  • 1 x papan tempat memotong roti
  • 4x220Ω resistor
  • 1 x 1KΩ resistor
  • 1 x papan prototipe
  • 1 x Sonar sensor 4 pin
  • Pengontrol Xbox

Analog perangkat keras

  • Kotak kayu (15 x 15 x 7 cm)
  • Lem
  • Pita listrik

Perangkat lunak

  • Arduino IDE
  • studio visual 2017
  • 3Ds Max (atau perangkat lunak pemodelan 3d lainnya)
  • Bentuk awal 2.14.0 atau lebih baru
  • OpenCV 3.4.0 atau lebih baru

Peralatan

  • Peralatan solder
  • Gergaji dan bor
  • Alat pemotong kawat

Langkah 2: Menginstal dan Mengonfigurasi OpenCV dan C++

Menginstal dan Mengkonfigurasi OpenCV dan C++
Menginstal dan Mengkonfigurasi OpenCV dan C++

Langkah 2.1: Mendapatkan perangkat lunak

Visual studio 2017: Unduh Visual studio Comunity 2017openCV 3.4.0 Paket Win: Buka halaman unduhan resmi

Langkah 2.2: Menginstal OpenCV2.2.1: Ekstrak file zip ke drive Windows(:C) Anda.2.2.2: Buka pengaturan sistem lanjutan Anda. Ini dapat ditemukan di fungsi pencarian win10 Anda.2.2.3: Kita perlu mengatur variabel Lingkungan baru. Temukan lingkungan "Path" dan tekan edit.2.2.4: Sekarang kita harus menambahkan lokasi "bin map" ke variabel baru di lingkungan Path. Jika Anda menginstal openCV pada drive C Anda, jalurnya bisa seperti ini: C:\opencv\build\x64\vc14\bin Tempel jalur dan tekan "OK" di semua jendela yang mungkin telah Anda buka selama proses ini.

Langkah 2.3: mengkonfigurasi visual studio C++ 2.3.1: Buat proyek visual C++ baru. Jadikan proyek Aplikasi Konsol win32 kosong. 2.3.2: Di tab file sumber, klik kanan dan tambahkan file C++ baru (.cpp) dan beri nama "main.cpp".2.3.3: Klik kanan pada proyek- nama di Solution explorer dan pilih Properties.2.3.4: Kita perlu menambahkan Direktori Sertakan tambahan. Ini dapat ditemukan di bawah tab C/C++ secara umum. Salin jalur berikut: C:\opencv\build\include dan tempel di belakang "AID" dan klik apply.2.3.5: Di jendela yang sama kita perlu pilih tab "Penghubung". di bawah umum kita perlu membuat Direktori Perpustakaan Tambahan lainnya. Rekatkan jalur berikut di belakang "AID" C:\opencv\build\x64\vc14\lib dan tekan apply lagi.2.3.6: Di bawah tab Linker yang sama pilih tab "Input". Dan tekan "Additional Dependencies > edit" dan paste file berikut opencv_world320d.lib dan xinput.lib(Untuk controller) dan tekan apply lagi. Tutup jendelanya. Sekarang file C++ Anda siap digunakan.

Langkah 3: Menyiapkan Arduino

Menyiapkan Arduino
Menyiapkan Arduino
Menyiapkan Arduino
Menyiapkan Arduino
Menyiapkan Arduino
Menyiapkan Arduino
Menyiapkan Arduino
Menyiapkan Arduino

Memenuhi servos: Servo mampu berputar ~ 160 ° Mereka harus memiliki antara 4, 8 dan 6, 0 Volt untuk beroperasi secara normal. Servo memiliki 3 pin: ground, 4, 8 - 6, 0 volt pin dan data pin. Untuk proyek kami, kami akan mengatur pin data untuk servos pada DigitalPin 9 dan 10.

Memenuhi LED RGB: LED RGB memiliki 4 pin. Pin merah, hijau, biru, dan ground. Untuk menghemat ruang pada arduino, kita dapat menghubungkan 2 led RGB bersama-sama. Jadi kita hanya akan menggunakan 3 pin. Kita bisa menghubungkan dan menyolder led RGB pada protoboard seperti pada gambar. Pin merah => DigitalPin 3(PWM)Pin hijau => DigitalPin 4Pin biru => DigitalPin 7

Memenuhi buzzer Piezo: Robot kecil kita akan mengeluarkan suara. Untuk melakukan ini, kita perlu memberinya suara! Kita bisa memilih untuk membuatnya sangat keras. Atau kita bisa meletakkan resistor 220Ω sebelum buzzer piezo untuk membuatnya sedikit kurang menjengkelkan. Kami meninggalkan buzzer Piezo di papan tempat memotong roti. Jadi tidak perlu disolder. Kita sambungkan pin data (+) ke DigitalPin 2 dan pin ground ke ground di breadboard.

Bertemu Sonar: Agar robot tidak mencoba membidik orang yang berjarak 10 meter. Kami dapat memberikan jarak pada robot dari tempat ia dapat membidik orang. Kami melakukan ini dengan sensor sonar. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => ground

Bertemu dengan detektor koin: Kami akan membuat detektor koin. Detektor koin akan bekerja dengan mendeteksi jika rangkaian tertutup atau putus. Ini hampir akan berfungsi seperti sakelar. Tapi kita perlu berhati-hati. Jika kita melakukan kesalahan ini, kita akan dikenakan biaya arduino. Pertama: Hubungkan AnalogPin A0 ke kabel 5 volt. Tetapi pastikan untuk meletakkan resistor 1KΩ di antaranya. Kedua: Hubungkan kabel ke ground. Kita dapat segera menyolder kabel dan resistor ke protoboard yang sama dengan led RGB. Sekarang jika kita menyentuh 2 kabel lebih erat, arduino akan mendeteksi sirkuit tertutup. Ini berarti ada koin! Bertemu laser kiamat. Robot membutuhkan senjata untuk menembak! Untuk menghemat ruang, saya menyolder 2 laser bersama-sama. Mereka akan pas di bingkai kamera. Hubungkan mereka ke DigitalPin 11 dan ke ground. Tembakkan si kecil!

Gimmick opsional. Kita bisa meletakkan LED merah di bawah tempat koin. Ini akan menjadi gimmick kecil yang menyenangkan ketika hari sudah gelap. Hubungkan kabel ke DigitalPin 8 dan letakkan resistor 220Ω antara LED dan kabel untuk mencegahnya meledak. Hubungkan pin pendek LED ke ground.

Langkah 4: Kode C++

Langkah 4.1: Menyiapkan main.cpp code4.1.1: Download "main.cpp" dan salin kode ke main.cpp.4.1.2 Anda sendiri: Pada baris 14 ubah "com" menjadi com yang digunakan arduino. "\.\COM(ubah ini)"4.1.3: Pada baris 21 dan 22 atur jalur yang benar untuk file "haarcascade_frontalface_alt.xml" dan "haarcascade_eye_tree_eyeglasses.xml"Jika openCV diinstal pada drive C, file-file ini dapat ditemukan di sini: "C:\opencv\build\etc\haarcascades\" Pertahankan garis miring terbalik ganda atau tambahkan satu di mana hanya ada satu.

Langkah 4.2: Tambahkan tserial.h dan Tserial.cppKedua file ini akan menangani komunikasi antara arduino dan PC.4.2.1: Unduh tserial.h dan Tserial.cpp.4.2.2: Tempatkan 2 file ini di proyek direktori. Di Solution explorer klik kanan pada proyek dan pilih tambahkan > item yang ada. Di jendela popup pilih dua file yang akan ditambahkan.

Langkah 4.2: Tambahkan CXBOXController.h dan CXBOXController.h File-file ini akan mengambil bagian pengontrol proyek.4.2.1: Di Solution explorer klik kanan pada proyek dan pilih add > existing item. Di jendela popup pilih dua file yang akan ditambahkan. File C++ sudah diatur.

Langkah 5: Kode Arduino

Langkah 5.1: NewPing library5.1.1: Unduh ArduinoCode.ino dan buka di arduino IDE.5.1.2: Buka "Sketsa > Sertakan perpustakaan > Kelola perpustakaan".5.1.3: Cari di kotak filter untuk "NewPing" dan instal perpustakaan ini.

Langkah 5.2: Pitch library5.2.1: Unduh pitches.txt dan salin konten pitches.txt.5.2.2: Di Arduino IDE tekan CTRL+Shift+N untuk membuka tab baru.5.2.3: Tempel kode dari pitches.txt ke tab baru dan simpan sebagai "pitches.h". Kode Arduino telah disiapkan

Langkah 6: Pencetakan 3D dan Penyempurnaan Cetak

Pencetakan 3D dan Menyempurnakan Cetakan
Pencetakan 3D dan Menyempurnakan Cetakan
Pencetakan 3D dan Menyempurnakan Cetakan
Pencetakan 3D dan Menyempurnakan Cetakan

Langkah 6.1: Cetak file 3DBuka printfile.form dan periksa apakah semuanya baik-baik saja. Jika semuanya tampak baik-baik saja, kirim pekerjaan cetak ke printer. Jika ada sesuatu atau Anda ingin mengubah model. Saya telah menyertakan file 3Ds Max dan file OBJ untuk Anda edit.

Langkah 6.2: Sempurnakan model6.2.1: Setelah pencetakan selesai, rendam 2 model dalam alkohol 70% untuk menghilangkan sisa cetakan.6.2.2: Setelah mencetak, letakkan model di bawah sinar matahari selama beberapa jam untuk membiarkan sinar UV mengeraskan model. Atau Anda dapat menggunakan lampu UV untuk mengeraskan model. Ini perlu dilakukan karena modelnya akan lengket.

6.2.3: Hapus kerangka dukungan. Ini bisa dilakukan dengan pemotong kawat. Atau alat lain yang dapat memotong plastik.6.2.4: Beberapa bagian dari cetakan 3D masih dapat lunak. Bahkan jika modelnya telah banyak terkena sinar UV. Bagian yang bisa lembut, adalah bagian yang dekat dengan rangka penyangga. Letakkan model di bawah sinar UV lebih banyak untuk mengeras.6.2.5: Dengan "dremel" Anda dapat mengampelas semua gundukan kecil yang dibuat oleh kerangka. Anda dapat mencoba memasukkan servo ke dalam bingkai. Jika tidak pas, Anda dapat menggunakan Dremel untuk mengampelas material. membuatnya cocok.

Langkah 7: Membangun Kotak

Membangun Kotak
Membangun Kotak
Membangun Kotak
Membangun Kotak

Langkah 7.1: Membuat lubang Saya telah menyertakan cetak biru dari kotak yang dimaksud. Cetak biru tidak sesuai skala, tetapi semua ukurannya benar.7.1.1: Mulailah dengan menandai semua lubang di lokasi yang tepat.7.1.2: Bor semua lubang. Lubang yang lebih besar dapat dibuat sesuai ukuran dengan Dremel.7.1.3: Lubang persegi juga dapat dibor. Tetapi untuk membuatnya persegi, Anda dapat memasukkan Dremel dengan file kecil dan mengarsipkan sudut yang tajam.7.1.4: Cobalah untuk menyesuaikan semua komponen. jika cocok, Anda siap melakukannya! 7.1.5: Hati-hati dengan serpihan kayu. Gunakan kertas pasir untuk menghilangkannya.

Langkah 7.2: Lukisan7.2.1: Mulailah dengan mengampelas tutupnya. Kami membutuhkan cat untuk menempel.7.2.2: Ambil kain dan beri sedikit Terpentin di atasnya untuk membersihkan kotak.7.2.3: Sekarang Anda dapat menyemprotkan cat ke kotak warna apa pun yang Anda inginkan.

Langkah 8: Menyelesaikan

Menyelesaikan
Menyelesaikan
Menyelesaikan
Menyelesaikan
Menyelesaikan
Menyelesaikan

Sekarang kita harus meletakkan semuanya pada tempatnya dan membiarkannya bekerja. Langkah 8.1: Detektor koin8.1.1: Rekatkan beberapa kawat gigi logam untuk detektor koin.8.1.2: Solder setiap kabel dari konektor ke penyangga.8.1.3: Uji koneksi dengan koin. Jika tidak ada sirkuit tertutup, solder kabel lebih ke tepi. Langkah 8.2: Protoboard dan led RGB8.2.1: Tempatkan protoboard di sudut kanan atas dan rekatkan! 8.2.2: Hubungkan led RGB dengan kabel dari protoboard!8.2.3: Hubungkan semua kabel dari protoboard ke arduino. Langkah 8.3: Sensor sonar8.3.1: Tempatkan sensor di lubang yang kami buat untuk itu. Jika Anda memiliki jumpwire jantan ke betina, Anda dapat melewati 8.3.28.3.2: Potong beberapa kabel jantan dan betina menjadi dua dan solder kabel betina dan jantan bersama-sama untuk membuat satu kabel yang dapat kita gunakan untuk menghubungkan sensor ke arduino.8.3.3: Hubungkan sensor ke arduino

Langkah 8.4: Laser dan kamera8.4.1: Rekatkan bingkai kecil ke kamera. Pastikan posisinya tegak.8.4.2: Masukkan laser ke dalam bingkai juga. Rekatkan agar musuh tidak mencurinya!

Langkah 8.5: Servos dan 3D print8.5.1: Rekatkan servo di lubang tutup8.5.2: Unggah file arduino ke arduino (ini membuat servos berdiri di posisi yang tepat)8.5.3: Dengan servo datang a dataran tinggi bulat kecil. Tempatkan ini pada servo di tutupnya.8.5.4: Letakkan cetakan 3D besar pada servo dan plato dan kencangkan dengan sekrup.8.5.5: Tempatkan servo kedua pada cetakan 3D kecil dan rekatkan. 8.5.6: Letakkan kamera di tempatnya dan semuanya siap digunakan!

Langkah 9: Mulai Program

Untuk memulai robot buka File C++ di Visual studio. Pastikan Anda dalam "debug mode" Upload file arduino ke arduino. Setelah itu diunggah, tekan putar di visual studio. Dan robot akan menembak dan mengumpulkan semua koin di dunia!!!

Direkomendasikan: