Daftar Isi:

A Voice Controlled Jumping Jack- Versi Google Voice AIY: 3 Langkah
A Voice Controlled Jumping Jack- Versi Google Voice AIY: 3 Langkah

Video: A Voice Controlled Jumping Jack- Versi Google Voice AIY: 3 Langkah

Video: A Voice Controlled Jumping Jack- Versi Google Voice AIY: 3 Langkah
Video: Did you know you can unlock a tesla with your voice?? 😳👀 2024, Desember
Anonim
Jumping Jack yang Dikendalikan Suara- Versi AIY Google Voice
Jumping Jack yang Dikendalikan Suara- Versi AIY Google Voice
Jumping Jack yang Dikendalikan Suara- Versi AIY Google Voice
Jumping Jack yang Dikendalikan Suara- Versi AIY Google Voice
Jumping Jack yang Dikendalikan Suara- Versi AIY Google Voice
Jumping Jack yang Dikendalikan Suara- Versi AIY Google Voice
Jumping Jack yang Dikendalikan Suara- Versi AIY Google Voice
Jumping Jack yang Dikendalikan Suara- Versi AIY Google Voice

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

Bahan-bahan yang digunakan
Bahan-bahan yang digunakan
Bahan-bahan yang digunakan
Bahan-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

Perakitan dan Penggunaan Perangkat
Perakitan dan Penggunaan Perangkat
Perakitan dan Penggunaan Perangkat
Perakitan dan Penggunaan Perangkat
Perakitan dan Penggunaan Perangkat
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: