Daftar Isi:
- Langkah 1: Bahan yang Digunakan
- Langkah 2: Perakitan dan Penggunaan Perangkat
- Langkah 3: Skrip Python
Video: A Voice Controlled Jumping Jack- Versi Google Voice AIY: 3 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Jadi, Anda sudah mendapatkan kit suara AIY untuk Natal, dan telah memainkannya, mengikuti petunjuknya. Ini lucu, tapi sekarang?
Proyek yang dijelaskan berikut ini menyajikan perangkat sederhana yang dapat dibuat menggunakan HAT suara AIY untuk Raspberry Pi. Ini menggunakan sistem pengenalan suara Google untuk mengontrol LED dan dua servos, menggerakkan lengan dan kaki jack lompat dengan gigi yang sangat sederhana.
Perangkat lunak yang bekerja di latar belakang adalah modifikasi dari skrip servo_demo.py, seperti yang telah dijelaskan dalam manual kit suara AIY. Cukup ikuti instruksi yang diberikan di sana untuk menyiapkan perangkat keras dan perangkat lunak. Perangkat itu sendiri mudah dibuat dan tidak membutuhkan banyak keterampilan kerajinan tangan. Selain pisau pemotong, bor dan besi solder akan sangat membantu.
Jika Anda mengaktifkan sistem pengenalan suara dengan mengedipkan tangan dan mengatakan 'angkat tangan', jumping jack akan mengangkat tangan dan kaki, 'pusat tangan' akan menggerakkan kedua servos ke posisi tengah dan pada 'tangan ke bawah' tangan dan kaki akan diturunkan. Di 'kiri atas' tangan dan kaki kiri akan diangkat dan di "kanan bawah" yang kanan diturunkan, di 'kanan atas' sebaliknya. "Menari", akan membuatnya menari, setidaknya semacam itu. Itu juga berbicara, silakan lihat di video terlampir.
Jadi dengan sedikit usaha, Anda dapat membuat robot menari, mengobrol, dan bernyanyi Anda sendiri.
Untuk menyederhanakan penggunaannya terutama oleh anak-anak kecil, dan untuk meningkatkan faktor 'ajaib', tombol pada kotak AIY diganti sebagai pemicu oleh sensor jarak. Untuk kesederhanaannya, saya menggunakan terobosan sensor jarak digital dari Pololu yang mengenali jika suatu objek lebih dekat dari 5 cm, dan dapat digunakan sangat mirip dengan tombol. LED memang menunjukkan kapan perangkat sedang menunggu pesanan, mendengarkan, atau "berpikir". Servo, sensor, dan LED dikendalikan oleh pustaka perangkat lunak GPIOZero.
Prototipe dibuat dari Forex, pelat busa PVC, yang dapat dipotong dengan sangat mudah dengan pisau pemotong dan direkatkan, tetapi juga cukup stabil. Jangan ragu untuk membuat versi yang lebih besar, lebih bagus, lebih baik, atau lebih mewah, tetapi akan lebih baik jika Anda mendokumentasikan dan mempresentasikan peningkatan Anda.
Anda dapat menggunakan kedua sisi bodi, tergantung apakah Anda ingin menampilkan roda gigi bergerak atau memiliki tata letak yang ramah anak. --------- "Hampelmann" adalah istilah Jerman untuk "jumping jack", memiliki konotasi tertentu.
Langkah 1: Bahan yang Digunakan
Raspberry Pi 3; 32 £ di Pimoroni, Inggris
Perangkat suara AIY; 25 £ di Pimoroni, UK
Sensor jarak digital Pololu dengan sensor Sharp, 5 cm; 5,90 € di Exp-tec.de
Dua servo 9g
Dua LED putih dan sebuah resistor
Beberapa kabel header dan jumper
Pelat Forex 2 mm, 250 x 500 mm; 1,70 € di Modulor, Berlin, Jerman
Sekrup, mur, dan ring M3, untuk menghubungkan semua bagian yang bergerak. Saya menggunakan enam sekrup Nylon 10 dan empat 16 mm.
Enam sekrup dan mur M2, untuk memasang servos ke pelat dan menghubungkan lengan dan roda gigi servo.
Beberapa tetes lem plastik
Langkah 2: Perakitan dan Penggunaan Perangkat
Mengenai kit suara AIY itu sendiri, cukup ikuti instruksi dalam deskripsi yang disertakan dengan kit, termasuk bagian tentang servo. Saya akan merekomendasikan untuk menyolder beberapa header tiga pin ke port servo pada pelarian suara AIY, sehingga Anda dapat menghubungkan servos, sensor, dan LED dengan sangat mudah dengan HAT.
Mengenai jumping jack, Anda dapat menggunakan gambar yang saya sediakan di sini sebagai file svg dan PDF sebagai templat, atau hanya memodifikasinya sesuai dengan ide Anda sendiri. Anda mungkin ingin mempertahankan tata letak dasar roda gigi yang menggerakkan kaki dan lengan jumping jack, memastikan bahwa jarak antara titik putar dan roda gigi sama pada servo, lengan, dan kaki.
Atau, Anda juga dapat membuat versi di mana lengan dan kaki digerakkan langsung oleh empat servos terpisah, atau oleh roda gigi yang lebih maju.
Dengan menggunakan gambar, potong potongan-potongan dari pelat Forex, karton atau kayu lapis dan bor lubang pada posisi yang sesuai. Rekatkan potongan jarak ke titik putar lengan dan kaki, memastikan keselarasan lubang yang baik.
Perbaiki servos dan bagian yang bergerak ke pelat dasar. Tambahkan sensor jarak dan LED seperti yang ditunjukkan. Servo diperbaiki dengan sekrup M2, semua bagian yang bergerak dengan sekrup M3. Saya menggunakan sekrup Nylon M3, tetapi hanya untuk alasan estetika.
Periksa apakah lengan servo ditempatkan di posisi tengah. Hubungkan lengan dan roda gigi servo, saya menggunakan sekrup M2 untuk tujuan ini.
Pasang servo, LED, dan sensor jarak ke konektor servo pada papan AIY. Anda mungkin memerlukan beberapa kabel elongasi/jumper. Saya memasang servo kiri ke "servo0" (GPIO 26) servo kanan ke "servo2" (GPIO 13), LED ke "servo5" (GPIO 24), dan sensor ke "servo3" (GPIO 5) pada AIY suara HAT.
Salin file “Hampelmann.py” yang disediakan ke subfolder “src” AIY dan buat file tersebut dapat langsung dieksekusi oleh siapa saja. Untuk melakukannya, Anda dapat memilih file di pengelola file, lalu klik kanan dan pilih Properties, pilih Permissions, pergi ke Execute, pilih ~ siapa saja. Atau tulis "chmod +x src/Hampelmann.py" di konsol dev.
Periksa apakah semuanya sudah terpasang dan tetap, atau dapat dipindahkan bila diperlukan. Buka baris perintah Dev, masukkan "src/Hampelmann.py" dan mulai program. Jika Anda menggerakkan tangan atau jari Anda di depan sensor jarak, unit AIY akan meminta perintah dan LED akan berkedip. Perintah yang diterapkan adalah “kanan/kiri/tangan atas/bawah/tengah”, “menari”, “LED on/off” dan “selamat tinggal”.
Bermain. Gerakkan tangan Anda di depan sensor, bicara saat diminta, dan beri perangkat sedikit waktu untuk bereaksi. Latensi agak tinggi. Crtl+C atau “Goodbye” akan menghentikan program.
Anda dapat memodifikasi file menggunakan Nano atau editor teks sederhana lainnya.
Catatan: Perlu diketahui bahwa beberapa kata dan istilah dikenali sebagai kata yang dimulai dengan huruf kapital, sebagai 'Tengah' atau 'Tengah Kanan', sedangkan yang lain tidak, mis. 'benar'. Anda harus menggunakan formulir persis yang diberikan kembali oleh modul pengenalan suara untuk memicu beberapa tindakan.
Langkah 3: Skrip Python
Seperti disebutkan sebelumnya, skrip didasarkan pada skrip servo_demo.py dari instruksi suara AIY, dengan beberapa tambahan. Versi pertama adalah file Hampelmann.py yang akan Anda temukan terlampir. AngularServo dari GPIOZero memungkinkan untuk membatasi jangkauan aksi servo dan untuk menentukan dengan tepat seberapa jauh harus bergerak. Tapi saya lebih suka suara Inggris daripada yang asli. Dan perangkat juga dapat berbicara, tetapi tidak mengerti (?), Inggris, Jerman, Italia, Prancis, dan Spanyol. Di bawah ini Anda menemukan skrip Hampelmann2.py, dengan suara Inggris, dan sedikit bahasa Italia dan Jerman. Harap diingat bahwa Anda harus membuat skrip dapat dieksekusi untuk menjalankannya.
#!/usr/bin/env python3# Skrip ini merupakan adaptasi dari skrip servo_demo.py untuk AIY voice HAT, # dioptimalkan untuk AIY jumping jack import aiy.audio import aiy.cloudspeech import aiy.voicehat from gpiozero import LED dari gpiozero impor AngularServo dari gpiozero import Tombol dari waktu impor sleep def main(): pengenal = aiy.cloudspeech.get_recognizer() pengenal.expect_phrase('kanan ke atas') recognitionr.expect_phrase('kanan bawah') recognitionr.expect_phrase('Kanan Tengah') # huruf kapital sengaja ada di recognitionr.expect_phrase('left up') Recognizer.expect_phrase('left down') Recognizer.expect_phrase('left Center') Recognizer.expect_phrase('angkat tangan') Recognizer.expect_phrase ('tangan ke bawah') recognitionr.expect_phrase('hands Center') Recognizer.expect_phrase('Menari') recognitionr.expect_phrase('LED menyala') Recognizer.expect_phrase('LED mati') Recognizer.expect_phrase('selamat tinggal') aiy.audio.get_recorder().start() servo0 = AngularServo(26, min_angle=-40, max_angle=40) # 1 terhubung atau, GPIO 26 servo2 = AngularServo(13, min_angle=-40, max_angle=40) # 3 konektor, GPIO 13 led0 = LED(24) # LED terhubung ke servo5/GPIO 24 distance= Tombol(5) # sensor jarak terhubung ke servo3/GPIO 05 # lainnya: GPIO 6 di servo1, 12 di servo4 aiy.audio.say("Halo!",) aiy.audio.say("Untuk memulai, dekatkan tangan Anda ke sensor",) while True: led0.on() # LEDs on print("Untuk mengaktifkan pengenalan suara, gerakkan tangan ke dekat sensor jarak, lalu bicara") print('Kata kunci yang diharapkan adalah: tangan/kiri/kanan atas/bawah/tengah, ') print('LED hidup/mati, menari dan selamat tinggal.') print() distance.wait_for_press() print('Listening…') aiy.audio.say("Please give your orders",) led0.blink() # light berkedip teks = recognitionr.recognize() jika teks Tidak ada: aiy.audio.say('Maaf, saya tidak mendengar Anda.',) else: print('Anda mengatakan "', teks, '"') # Memungkinkan Anda periksa interpretasi sistem jika 'ke atas' dalam teks: print('Memindahkan servo0 ke posisi maksimum') servo0.angle=35 elif 'ke bawah' dalam teks: print('Memindahkan servo0 to minimum position') servo0.angle=-35 elif 'Right Center' in text: #correct captials are critical print('Memindahkan servo0 ke posisi tengah') servo0.angle=0 elif 'left up' in text: print(' Memindahkan servo2 ke posisi maksimum') servo2.angle=-35 elif 'kiri bawah' dalam teks: print('Memindahkan servo2 ke posisi minimum') servo2.angle=35 elif 'kiri Tengah' dalam teks: print('Memindahkan servo2 ke posisi tengah') servo2.angle=0 elif 'angkat tangan' dalam teks: print('Memindahkan servo2 ke posisi maksimum') servo2.angle=-35 servo0.angle=35 elif 'mengangkat tangan' dalam teks: print('Bergerak servo2 ke posisi minimum') servo2.angle=35 servo0.angle=-35 elif 'hands Center' dalam teks: print('Memindahkan servo2 ke posisi tengah') servo2.angle=0 servo0.angle=0 elif 'LED off' in text: print ('mematikan LED eksternal 0') led0.off() elif 'LED on' in text: print ('mematikan LED eksternal 0') led0.on() # light elif 'dance' in text: print ('now perform dance number one') aiy.audio.say("Baiklah, saya akan mencoba yang terbaik!",) led0.on() # lampu menyala untuk i dalam rentang (3): servo0.angle=0 servo2.angle=0 sleep(1) servo0.angle=35 servo2.angle=-35 sleep(1) servo0.angle=0 servo2.angle=-35 sleep(1) servo0.angle=-25 servo2.angle=0 tidur(1) servo0.angle=30 servo2.angle=20 tidur(1) servo0.angle=0 servo2.angle=0 led0.off() # lampu mati elif 'selamat tinggal' dalam teks: aiy.audio.say("Selamat tinggal",) aiy.audio.say('Arrivederci',) aiy.audio.say('Auf Wiedersehen',) servo0.angle=0 servo2.angle=0 led0.off() sleep (3) print('bye!') break else: print('tidak ada kata kunci yang dikenali!') aiy.audio.say("Maaf, saya tidak mengerti Anda",) if _name_ == ' _main_': utama()
Direkomendasikan:
Counter Jumping-Jack: 3 Langkah
Jumping-Jack Counter: Saya ingin cara menghitung jumping jack saya dan mendorong diri saya untuk terus maju ketika saya melakukan jumping jacks, jadi saya membuat counter jumping jack yang membunyikan lonceng dari Super Mario Brothers setiap kali saya menyelesaikan jumping jack
Alexa Voice Controlled Raspberry Pi Drone Dengan IoT dan AWS: 6 Langkah (dengan Gambar)
Alexa Voice Controlled Raspberry Pi Drone Dengan IoT dan AWS: Hai! Nama saya Arman. Saya seorang anak laki-laki berusia 13 tahun dari Massachusetts. Tutorial ini menunjukkan, seperti yang dapat Anda simpulkan dari judulnya, cara membuat Raspberry Pi Drone. Prototipe ini menunjukkan bagaimana drone berevolusi dan juga seberapa besar peran mereka dalam
Transform-a-Car: Remote Controlled ke Self Controlled: 4 Langkah
Transform-a-Car: Remote Controlled to Self Controlled: Ini adalah hack pada mobil RC dengan remote yang rusak. Anda dapat menemukan banyak hal di garage sale
Pemegang Kunci Jack Gitar Arduino Dengan Pengenalan Jack & OLED: 7 Langkah
Arduino Guitar Jack Key Holder Dengan Jack Recognition & OLED: Intro: Instruksi ini akan merinci pembuatan gantungan kunci plugin Guitar Jack berbasis Arduino sayaIni adalah instruksi pertama saya jadi mohon bersabar karena saya dapat membuat perubahan / pembaruan di sepanjang jalan
Tambahkan Suara Mulai Pemicu ke Google AIY Voice Kit: 6 Langkah (dengan Gambar)
Tambahkan Suara Mulai Pemicu ke Google AIY Voice Kit: Tutorial ini cukup sederhana. Saya benar-benar menikmati Kit Suara Google AIY, tetapi sangat seperti di Google Home normal saya, suara yang mereka buat untuk mengonfirmasi bahwa mereka mendengarkan secara aktif. Ini tidak diatur secara default di salah satu contoh yang