Isi kandungan:

Meminta Robot Dengan Penjejakan Muka dan Pengawal oleh Xbox Controller - Arduino: 9 Langkah (dengan Gambar)
Meminta Robot Dengan Penjejakan Muka dan Pengawal oleh Xbox Controller - Arduino: 9 Langkah (dengan Gambar)

Video: Meminta Robot Dengan Penjejakan Muka dan Pengawal oleh Xbox Controller - Arduino: 9 Langkah (dengan Gambar)

Video: Meminta Robot Dengan Penjejakan Muka dan Pengawal oleh Xbox Controller - Arduino: 9 Langkah (dengan Gambar)
Video: Leap Motion SDK 2024, Julai
Anonim
Image
Image
Memasang dan Mengkonfigurasi OpenCV dan C ++
Memasang dan Mengkonfigurasi OpenCV dan C ++

Kami akan membuat robot pengemis. Robot ini akan cuba mengganggu atau menarik perhatian orang yang lewat. Ia akan mengesan wajah mereka dan cuba menembak laser ke arah mereka. Sekiranya anda memberi robot duit syiling, dia akan menyanyikan lagu dan menari. Robot memerlukan arduino, suapan langsung kamera dan komputer untuk menjalankan openCV. Robot juga akan dapat dikendalikan oleh pengawal xBox jika disambungkan ke PC.

Langkah 1: Bahan

Elektronik Perkakasan

  • Arduino NANO atau UNO
  • Kamera USB 2.0
  • Kabel pelompat (lelaki dan wanita)
  • 2 x Servo - Generik (Saiz Sub-Mikro)
  • 2 x LED - RGB CATHODE 5mm
  • Laser 2 x 5mW
  • 1 x LED Merah 5mm
  • 1 x Papan Roti
  • Perintang 4 x 220Ω
  • Perintang 1 x 1KΩ
  • 1 x protoboard
  • 1 x Sensor Sonar 4 pin
  • Pengawal Xbox

Analog perkakasan

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

Perisian

  • Arduino IDE
  • Studio visual 2017
  • 3Ds Max (atau perisian moddeling 3d lain)
  • Praformasi 2.14.0 atau lebih baru
  • OpenCV 3.4.0 atau lebih baru

Alat

  • Peralatan pateri
  • Melihat dan menggerudi
  • Pemotong wayar

Langkah 2: Memasang dan Mengkonfigurasi OpenCV dan C ++

Memasang dan Mengkonfigurasi OpenCV dan C ++
Memasang dan Mengkonfigurasi OpenCV dan C ++

Langkah 2.1: Mendapatkan perisian

Visual studio 2017: Muat turun Visual studio Comunity 2017openCV 3.4.0 Win pack: Pergi ke halaman muat turun rasmi

Langkah 2.2: Memasang OpenCV2.2.1: Ekstrak zipfile ke pemacu Windows (: C) anda.2.2.2: Pergi ke tetapan sistem lanjutan anda. Ini boleh didapati dalam fungsi carian win10 anda.2.2.3: Kita perlu menyediakan pemboleh ubah persekitaran baru. Cari persekitaran "Path" dan tekan edit.2.2.4: Sekarang kita perlu menambahkan lokasi "peta bin" ke pemboleh ubah baru di lingkungan Path. Sekiranya anda memasang openCV pada pemacu C anda, jalannya dapat seperti ini: C: / opencv / build / x64 / vc14 / bin Tampal jalan dan tekan "OK" pada semua tetingkap yang mungkin anda buka semasa proses ini.

Langkah 2.3: mengkonfigurasi studio visual C ++ 2.3.1: Membuat projek visual C ++ baru. Jadikan projek Win32 Console Application kosong.2.3.2: Pada tab fail sumber, klik kanan dan tambahkan fail C ++ baru (.cpp) dan beri nama "main.cpp".2.3.3: Klik kanan pada projek- namakan dalam Penyelesai penyelesaian dan pilih Properties.2.3.4: Kita perlu menambah Direktori Sertakan tambahan. Ini dapat dijumpai di bawah tab C / C ++ secara umum. Salin jalan berikut: C: / opencv / build / include dan tampal di belakang "AID" dan klik berlaku.2.3.5: Di tetingkap yang sama kita perlu pilih tab "Linker". secara amnya kita perlu membuat Direktori Perpustakaan Tambahan yang lain. Tampal jalan 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 "Ketergantungan Tambahan> edit" dan tampal fail berikut opencv_world320d.lib dan xinput.lib (Untuk pengawal) dan tekan sapukan sekali lagi. Tutup tetingkap. Kini fail 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 servo: Servo berkemampuan berputar ~ 160 ° Mereka perlu mempunyai antara 4, 8 dan 6, 0 Volt untuk beroperasi dengan normal. Servo mempunyai 3 pin: ground, 4, 8 - 6, pin 0 volt dan data sematkan. Untuk projek kami, kami akan menetapkan pin data untuk servo pada DigitalPin 9 dan 10.

Memenuhi LED RGB: LED RGB mempunyai 4 pin. Pin merah, hijau, biru dan tanah. Untuk menjimatkan sedikit ruang di arduino, kita dapat menghubungkan 2 LED RGB bersama-sama. Oleh itu, kita hanya akan menggunakan 3 pin. Kita boleh menyambungkan dan menyolder led RGB pada protoboard seperti dalam gambar. Pin merah => DigitalPin 3 (PWM) Pin hijau => DigitalPin 4Blue pin => DigitalPin 7

Menemui buzzer Piezo: Robot kecil kami akan mengeluarkan suara. Untuk melakukan ini, kita perlu memberinya suara! Kita boleh memilih untuk membuatnya kuat. Atau kita boleh meletakkan perintang 220Ω sebelum buzzer piezo untuk membuatnya sedikit kurang menjengkelkan. Kami meninggalkan buzzer Piezo di papan roti. Oleh itu, tidak perlu disolder. Kami menyambungkan pin data (+) ke DigitalPin 2 dan pin ground ke tanah di papan roti.

Memenuhi Sonar: Untuk mengelakkan robot daripada berusaha mengarahkan orang yang berada sejauh 10 meter. Kita dapat memberi jarak robot kepada tempat dari mana ia dapat mengarahkan orang. Kami melakukan ini dengan sensor sonar. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => ground

Menemui pengesan duit syiling: Kami akan membuat pengesan duit syiling. Pengesan duit syiling akan berfungsi dengan mengesan sama ada litar ditutup atau rosak. Ia akan berfungsi seperti suis. Tetapi kita perlu berhati-hati. Sekiranya kita melakukan ini dengan salah, akan dikenakan arduino. Pertama: Sambungkan AnalogPin A0 ke kabel 5 volt. Tetapi pastikan untuk meletakkan perintang 1KΩ di antara keduanya. Kedua: Sambungkan wayar ke tanah. Kita boleh segera menyolder wayar dan perintang ke protoboard yang sama seperti yang dipimpin RGB. Sekarang jika kita menyentuh 2 wayar lebih tinggi, arduino akan mengesan litar tertutup. Ini bermakna ada duit syiling! Memenuhi laser azab. Robot memerlukan senjata untuk ditembak! Untuk menjimatkan sedikit ruang, saya memasangkan 2 laser bersama-sama. Mereka akan sesuai dengan sempurna di bingkai kamera. Sambungkannya ke DigitalPin 11 dan ke tanah. Tembak lelaki kecil!

Gimik pilihan. Kita boleh meletakkan LED merah di bawah slot syiling. Ini akan menjadi gimik kecil yang menyeronokkan ketika gelap. Sambungkan wayar ke DigitalPin 8 dan letakkan perintang 220Ω antara LED dan wayar untuk mengelakkannya meletup. Sambungkan pin pendek LED ke tanah.

Langkah 4: Kod C ++

Langkah 4.1: Menyiapkan kod main.cpp4.1.1: Muat turun "main.cpp" dan salin kod ke main.cpp.4.1.2 anda sendiri: Pada baris 14 ubah "com" ke com yang digunakan oleh arduino. "\. / COM (ubah ini)" 4.1.3: Pada baris 21 dan 22 tetapkan jalan yang betul ke fail "haarcascade_frontalface_alt.xml" dan "haarcascade_eye_tree_eyeglasses.xml" Jika openCV dipasang pada pemacu C, fail-fail ini boleh didapati di sini: "C: / opencv / build / etc / haarcascades \" Simpan garis miring terbalik dua atau tambahkan satu di mana hanya ada satu.

Langkah 4.2: Tambahkan tserial.h dan Tserial.cpp 2 fail ini akan menjaga komunikasi antara arduino dan PC.4.2.1: Muat turun tserial.h dan Tserial.cpp.4.2.2: Letakkan 2 fail ini dalam projek direktori. Dalam penjelajah Penyelesaian klik kanan pada projek dan pilih tambah> item yang ada. Di tetingkap pop timbul pilih dua fail yang akan ditambahkan.

Langkah 4.2: Tambahkan CXBOXController.h dan CXBOXController.h Fail-fail ini akan mengambil bahagian pengawal projek.4.2.1: Dalam penjelajah Penyelesaian klik kanan pada projek dan pilih tambah> item yang ada. Di tetingkap pop timbul pilih dua fail yang akan ditambahkan. Fail C ++ disiapkan.

Langkah 5: Kod Arduino

Langkah 5.1: Perpustakaan NewPing5.1.1: Muat turun ArduinoCode.ino dan buka di arduino IDE.5.1.2: Pergi ke "Sketsa> Sertakan perpustakaan> Kelola perpustakaan".5.1.3: Cari di kotak penapis ke "NewPing" dan pasang pustaka ini.

Langkah 5.2: Pustaka Pitches5.2.1: Muat turun pitches.txt dan salin kandungan pitches.txt.5.2.2: Di Arduino IDE tekan CTRL + Shift + N untuk membuka tab baru.5.2.3: Tampal kod dari pitches.txt ke tab baru dan simpan sebagai "pitches.h". Kod Arduino telah disediakan

Langkah 6: Percetakan 3D dan Memperhalusi Cetakan

Percetakan 3D dan Memperhalusi Cetakan
Percetakan 3D dan Memperhalusi Cetakan
Percetakan 3D dan Memperhalusi Cetakan
Percetakan 3D dan Memperhalusi Cetakan

Langkah 6.1: Cetak fail 3DBuka printfile.form dan periksa sama ada semuanya baik-baik saja. Sekiranya semuanya kelihatan baik, hantarkan karya cetak ke pencetak. Sekiranya ada yang kelihatan atau anda mahu menukar modelnya. Saya telah memasukkan fail 3Ds Max dan fail OBJ untuk anda edit.

Langkah 6.2: Perincikan model6.2.1: Setelah pencetakan selesai rendam 2 model dalam 70% alkohol untuk mengeluarkan resedu cetak.6.2.2: Setelah mencetak meletakkan model di bawah sinar matahari selama beberapa jam untuk membiarkan sinar UV mengeraskan model. Atau anda boleh menggunakan lampu UV untuk mengeraskan model. Ini perlu dilakukan kerana modelnya akan melekit.

6.2.3: Keluarkan rangka sokongan. Ini boleh dilakukan dengan pemotong wayar. Atau alat lain yang boleh memotong plastik.6.2.4: Beberapa bahagian cetakan 3D masih lembut. Walaupun modelnya banyak terdapat sinar UV. Bahagian yang boleh menjadi lembut, adalah bahagian yang dekat dengan bingkai sokongan. Letakkan model di bawah sinar UV sinar untuk mengeras.6.2.5: Dengan "dremel" anda dapat membuang semua lebam kecil yang dibuat oleh rangka. Anda boleh mencuba memasukkan servo ke bingkai. Sekiranya tidak sesuai, anda boleh menggunakan bahan Dremel untuk menghancurkan bahan. buat sesuai.

Langkah 7: Membina Kotak

Membina Kotak
Membina Kotak
Membina Kotak
Membina Kotak

Langkah 7.1: Membuat lubangSaya telah memasukkan cetak biru kotak yang dimaksudkan. Cetakan biru tidak sesuai dengan skala, tetapi semua ukurannya betul.7.1.1: Mulakan dengan menandakan semua lubang di lokasi yang betul.7.1.2: Bor semua lubang. Lubang yang lebih besar boleh dibuat dengan ukuran dengan Dremel.7.1.3: Lubang persegi juga boleh digerudi. Tetapi untuk menjadikannya persegi, anda boleh memuatkan Dremel dengan fail kecil dan mengeluarkan sudut tajam.7.1.4: Cuba pasangkan semua komponen. jika sesuai, anda boleh pergi! 7.1.5: Awas serpihan kayu. Gunakan kertas pasir untuk menyingkirkannya.

Langkah 7.2: Lukisan7.2.1: Mulakan dengan mengemaskan penutup. Kita memerlukan cat untuk melekat.7.2.2: Ambil kain dan letakkan sedikit Turpentine di atasnya untuk membersihkan kotak.7.2.3: Sekarang anda boleh menyemburkan cat kotak apa sahaja warna yang anda mahukan.

Langkah 8: Selesaikan

Selesai
Selesai
Selesai
Selesai
Selesai
Selesai

Sekarang kita mesti meletakkan semuanya di tempat dan membiarkannya dilakukan. Langkah 8.1: Pengesan duit syiling8.1.1: Lekatkan beberapa pendakap logam untuk pengesan duit syiling.8.1.2: Pateri setiap wayar dari penyambung ke pendakap.8.1.3: Menguji hubungan dengan duit syiling. Sekiranya tidak ada litar tertutup, pasangkan wayar lebih ke tepi. Langkah 8.2: Papan protob dan RGB 8.2.1: Letakkan protoboard di sudut kanan atas dan pita ke bawah! 8.2.2: Sambungkan lekapan RGB dengan wayar dari protoboard! 8.2.3: Sambungkan semua wayar dari protoboard ke arduino. Langkah 8.3: Sensor sonar8.3.1: Letakkan sensor di lubang yang kami buat untuknya. Sekiranya anda mempunyai wayar lelaki ke perempuan anda boleh melangkau 8.3.28.3.2: Potong beberapa wayar lelaki dan perempuan pada separuh dan pasangkan wayar wanita dan lelaki bersama-sama untuk membuat satu kabel yang boleh kita gunakan untuk menyambungkan sensor ke arduino.8.3.3: Sambungkan sensor ke arduino

Langkah 8.4: Laser dan kamera8.4.1: Lekatkan bingkai kecil ke kamera. Pastikan tegak.8.4.2: Letakkan laser ke bingkai juga. Lekatkan mereka sehingga musuh tidak akan mencuri mereka!

Langkah 8.5: Servos dan cetakan 3D8.5.1: Lekatkan servo di lubang penutup8.5.2: Muat naik fail arduino ke arduino (ini menjadikan servo berdiri di kedudukan yang betul) 8.5.3: Dengan servo muncul dataran tinggi bulat. Letakkan ini di servo di penutup.8.5.4: Letakkan cetakan 3D besar di servo dan dataran tinggi dan pasangkannya dengan rapat dengan skru.8.5.5: Letakkan servo kedua pada cetakan 3D kecil dan lekatkan bersama. 8.5.6: Pasang kamera di tempat dan setiap perkara sudah siap!

Langkah 9: Mulakan Program

Untuk memulakan robot, buka Fail C ++ di studio Visual. Pastikan anda berada dalam "mod debug" Muat naik fail arduino ke arduino. Setelah dimuat, tekan main di studio visual. Dan robot akan menembak dan mengumpulkan semua duit syiling di dunia !!!

Disyorkan: