Isi kandungan:

Jacking Melompat Suara - Versi Google Voice AIY: 3 Langkah
Jacking Melompat Suara - Versi Google Voice AIY: 3 Langkah

Video: Jacking Melompat Suara - Versi Google Voice AIY: 3 Langkah

Video: Jacking Melompat Suara - Versi Google Voice AIY: 3 Langkah
Video: skibidi toilet multiverse 023 bloopers 2024, November
Anonim
Jacking Melompat Suara - Versi AIY Google Voice
Jacking Melompat Suara - Versi AIY Google Voice
Jack Jumping Suara Terkawal - Versi AIY Google Voice
Jack Jumping Suara Terkawal - Versi AIY Google Voice
Jack Jumping Suara Terkawal - Versi AIY Google Voice
Jack Jumping Suara Terkawal - Versi AIY Google Voice
Jacking Melompat Suara - Versi AIY Google Voice
Jacking Melompat Suara - Versi AIY Google Voice

Oleh itu, anda mempunyai kit suara AIY untuk Krismas, dan telah bermain dengannya, mengikut arahan. Ia lucu, tetapi sekarang?

Projek yang dijelaskan berikut menyajikan peranti mudah yang dapat dibina menggunakan HAT suara AIY untuk Raspberry Pi. Ia menggunakan sistem pengenalan suara Google untuk mengawal LED dan dua servo, menggerakkan lengan dan kaki jack jumping dengan gear yang sangat sederhana.

Perisian yang berfungsi di latar belakang adalah pengubahsuaian skrip servo_demo.py, seperti yang telah dijelaskan dalam manual kit suara AIY. Ikuti sahaja arahan yang diberikan di sana untuk menyediakan perisian keras dan. Peranti itu sendiri senang dibina dan tidak memerlukan banyak kemahiran membuat kraftangan. Sebagai tambahan pisau pemotong, gerudi dan besi pemateri akan sangat membantu.

Sekiranya anda mengaktifkan sistem pengecaman suara dengan mengedipkan mata anda dan mengatakan 'tangan ke atas' bicu lompat akan mengangkat tangan dan kaki, 'pusat tangan' akan menggerakkan kedua-dua servo ke kedudukan tengah dan pada tangan dan kaki 'tangan ke bawah' diturunkan. Pada 'kiri atas' tangan kiri dan kaki akan dinaikkan dan di "kanan bawah" yang kanan diturunkan, di "kanan atas" sebaliknya. "Menari", akan menjadikannya tarian, sekurang-kurangnya jenis. Ia juga bercakap, sila lihat video yang dilampirkan.

Oleh itu, dengan sedikit usaha, anda boleh membina robot menari, berbual dan menyanyi sendiri.

Untuk mempermudah penggunaannya terutama oleh anak-anak yang lebih kecil, dan untuk meningkatkan faktor 'sihir', butang pada kotak AIY diganti sebagai pemicu oleh sensor jarak. Untuk kesederhanaannya, saya menggunakan pelarian sensor jarak digital dari Pololu yang menyedari jika objek lebih dekat dari 5 cm, dan boleh digunakan seperti butang. LED menunjukkan bila peranti sedang menunggu pesanan, mendengar atau "berfikir". Servo, sensor dan LED dikendalikan oleh perpustakaan perisian GPIOZero.

Prototaip ini dibina dari Forex, plat busa PVC, yang dapat dipotong dengan mudah dengan pisau pemotong dan terpaku, tetapi juga cukup stabil. Jangan ragu untuk membina versi yang lebih besar, lebih bagus, lebih baik atau lebih mewah, tetapi ada baiknya jika anda mendokumentasikan dan menunjukkan penambahbaikan anda.

Anda boleh menggunakan kedua-dua belah badan, bergantung pada sama ada anda ingin mempersembahkan peralatan bergerak atau mempunyai susun atur yang mesra kanak-kanak. --------- "Hampelmann" adalah istilah Jerman untuk "jumping jack", yang mempunyai konotasi tertentu.

Langkah 1: Bahan Yang Digunakan

Bahan Yang Digunakan
Bahan Yang Digunakan
Bahan Yang Digunakan
Bahan Yang Digunakan

Raspberry Pi 3; £ 32 di Pimoroni, UK

Kit suara AIY; 25 £ di Pimoroni, UK

Pelarian sensor jarak digital Pololu dengan sensor Sharp, 5 cm; 5.90 € di Exp-tec.de

Dua servo 9g

Dua LED putih dan perintang

Beberapa header dan kabel pelompat

Plat Forex 2 mm, 250 x 500 mm; 1.70 € di Modulor, Berlin, Jerman

Skru, mur dan mesin basuh M3, untuk menyambungkan semua bahagian yang bergerak. Saya menggunakan enam skru Nilon 10 dan empat 16 mm.

Enam skru dan mur M2, untuk memasang servo ke pinggan dan menyambungkan lengan servo dan gear.

Beberapa titisan gam plastik

Langkah 2: Pemasangan dan Penggunaan Peranti

Pemasangan dan Penggunaan Peranti
Pemasangan dan Penggunaan Peranti
Pemasangan dan Penggunaan Peranti
Pemasangan dan Penggunaan Peranti
Pemasangan dan Penggunaan Peranti
Pemasangan dan Penggunaan Peranti

Mengenai kit suara AIY itu sendiri, ikuti arahan dalam keterangan yang disertakan dengan kit, termasuk bahagian mengenai servo. Saya mengesyorkan untuk memasangkan beberapa header tiga pin ke port servo pada pelarian suara AIY, jadi anda mungkin menghubungkan servo, sensor dan LED dengan mudah dengan HAT.

Mengenai jack jumping, anda boleh menggunakan gambar yang saya sediakan di sini sebagai fail svg- dan PDF sebagai templat, atau hanya mengubahnya mengikut idea anda sendiri. Anda mungkin ingin memastikan susun atur asas gear menggerakkan kaki dan lengan jack jump, memastikan jarak antara titik pusing dan gear sama pada servo, lengan dan kaki.

Sebagai alternatif, anda juga boleh membuat versi jika lengan dan kaki digerakkan secara langsung oleh empat servo yang berasingan, atau dengan gear yang lebih maju.

Dengan menggunakan gambar, potong kepingan dari plat Forex, kadbod atau papan lapis dan gerudi lubang pada kedudukan yang sesuai. Lekatkan jarak ke titik lengan dan kaki yang berpusing, memastikan penjajaran lubang yang baik.

Betulkan servo dan bahagian yang bergerak ke plat asas. Tambahkan sensor jarak dan LED seperti yang ditunjukkan. Servo dipasang dengan skru M2, semua bahagian bergerak dengan skru M3. Saya menggunakan skru Nylon M3, tetapi hanya untuk alasan estetik.

Periksa sama ada lengan servo diletakkan di kedudukan tengah. Sambungkan lengan servo dan gear, saya menggunakan skru M2 untuk tujuan ini.

Pasang servo, LED dan sensor jarak ke penyambung servo pada papan AIY. Anda mungkin memerlukan beberapa kabel pemanjangan / pelompat. 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 fail "Hampelmann.py" yang disediakan ke subfolder AIY "src" dan buat ia boleh dilaksanakan secara langsung untuk sesiapa sahaja. Untuk melakukannya, anda boleh memilih fail dalam pengurus fail, kemudian klik kanan dan pilih Properties, pilih Permissions, pergi ke Execute, pilih ~ sesiapa. Atau tulis "chmod + x src / Hampelmann.py" di konsol dev.

Periksa sama ada semuanya di tempat dan tetap, atau boleh bergerak apabila diperlukan. Buka baris perintah Dev, masukkan "src / Hampelmann.py" dan mulakan program. Sekiranya anda menggerakkan tangan atau jari anda di hadapan sensor jarak, unit AIY akan meminta pesanan dan LED akan berkelip. Pesanan yang dilaksanakan adalah “kanan / kiri / tangan atas / bawah / tengah”, “tarian”, “LED hidup / mati” dan “selamat tinggal”.

Main. Gerakkan tangan anda di hadapan sensor, bercakap semasa diminta, dan berikan sedikit masa kepada alat untuk bertindak balas. Latensi agak tinggi. Crtl + C atau "Selamat tinggal" akan menghentikan program ini.

Anda boleh mengubah suai fail menggunakan Nano atau penyunting teks ringkas yang lain.

Catatan: Perlu diketahui bahawa beberapa kata dan istilah diakui sebagai kata yang dimulai dengan huruf besar, sebagai 'Pusat' atau 'Pusat Kanan', kerana yang lain tidak, mis. 'Betul'. Anda harus menggunakan borang yang tepat yang diberikan oleh modul pengenalan suara untuk mencetuskan beberapa tindakan.

Langkah 3: Skrip Python

Seperti yang disebutkan sebelumnya, skrip berdasarkan skrip servo_demo.py dari arahan suara AIY, dengan beberapa penambahan. Versi pertama ialah fail Hampelmann.py yang akan anda lampirkan. AngularServo dari GPIOZero memungkinkan untuk menyekat jangkauan tindakan servo dan untuk menentukan dengan tepat sejauh mana bergerak. Tetapi saya lebih suka suara Inggeris daripada yang asli. Peranti itu juga boleh bercakap, tetapi tidak faham (?), Inggeris, Jerman, Itali, Perancis dan Sepanyol. Di bawah ini anda dapati skrip Hampelmann2.py, dengan suara Inggeris, dan sedikit bahasa Itali dan Jerman. Perlu diingat bahawa anda harus membuat skrip dapat dijalankan untuk menjalankannya.

#! / usr / bin / env python3 # Skrip ini adalah penyesuaian skrip servo_demo.py untuk suara AIY HAT, # dioptimumkan untuk AIY jumping jack import aiy.audio import aiy.cloudspeech import aiy.voicehat dari gpiozero import LED dari gpiozero import AngularServo dari gpiozero import Butang dari time import sleep def main (): recognitioniser = aiy.cloudspeech.get_recognizer () recognitionizer.expect_phrase ('right up') recognitionizer.expect_phrase ('right down') mengenali.expect_phrase ('Right Right) Tengah ') # huruf besar ada pada tujuan pengenal.expect_phrase (' kiri atas ') mengenali.expect_phrase (' kiri bawah ') mengenali.expect_phrase (' kiri kiri ') mengenali.expect_phrase (' tangan ke atas ') ('tangan ke bawah') mengenali.expect_phrase ('tangan tangan') mengenali.expect_phrase ('Dance') recognitionizer.expect_phrase ('LED on') recognitionizer.expect_phrase ('LED off') recognitionizer.expect_phrase ('selamat tinggal') aiy.audio.get_recorder (). start () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # sambung pertama atau, GPIO 26 servo2 = AngularServo (13, min_angle = -40, max_angle = 40) # penyambung ke-3, GPIO 13 led0 = LED (24) # LED disambungkan ke servo5 / GPIO 24 jarak = Butang (5) # sensor jarak disambungkan ke servo3 / GPIO 05 # yang lain: GPIO 6 di servo1, 12 di servo4 aiy.audio.say ("Hello!",) aiy.audio.say ("Untuk memulakan, gerakkan tangan anda dekat dengan sensor",) sambil Benar: led0.on () # LED dicetak ("Untuk mengaktifkan pengecaman suara, gerakkan tangan dekat ke sensor jarak, kemudian bercakap") cetak ('Kata kunci yang diharapkan adalah: tangan / kiri / kanan atas / bawah / tengah,') cetak ('Hidup / mati LED, tarian dan selamat tinggal.') cetak () jarak.wait_for_press () cetak ('Mendengarkan …') aiy.audio.say ("Sila berikan pesanan anda",) led0.blink () # cahaya berkedip teks = mengenali.recognize () jika teks Tiada: aiy.audio.say ('Maaf, saya tidak mendengar anda.',) lain: cetak ('Anda berkata "', teks, '"') # Membolehkan anda periksa tafsiran sistem jika 'betul ke atas' dalam teks: cetak ('Pindah servo0 ke posisi maksimum') servo0.angle = 35 elif 'kanan ke bawah' dalam teks: cetak ('Moving servo0 ke kedudukan minimum ') servo0.angle = -35 elif' Right Center 'dalam teks: #cocrect captials adalah cetakan kritikal (' Pindah servo0 ke posisi tengah ') servo0.angle = 0 elif' kiri atas 'dalam teks: print (' Memindahkan servo2 ke posisi maksimum ') servo2.angle = -35 elif' kiri bawah 'dalam teks: cetak (' Pindah servo2 ke kedudukan minimum ') servo2.angle = 35 elif' kiri pusat 'dalam teks: cetak (' Pindah servo2 ke kedudukan tengah ') servo2.angle = 0 elif' hands up 'dalam teks: cetak (' Pindah servo2 ke posisi maksimum ') servo2.angle = -35 servo0.angle = 35 elif' hands down 'dalam teks: print (' Moving servo2 ke posisi minimum ') servo2.angle = 35 servo0.angle = -35 elif' hands Center 'dalam teks: cetak (' Pindahkan servo2 ke posisi tengah ') servo2.angle = 0 servo0.angle = 0 elif' LED mati ' dalam teks: cetak ('mematikan LED luaran 0') led0.off () elif 'LED hidup' dalam teks: cetak ('menghidupkan LED luaran 0') led0.on () # cahaya elif 'menari' dalam teks: cetak ('sekarang tarian nombor satu') aiy.audio.say ("Baiklah, saya akan mencuba yang terbaik!",) led0.on () # lampu menyala untuk i dalam jarak (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 sleep (1) servo0.angle = 30 servo2.angle = 20 sleep (1) servo0.angle = 0 servo2.angle = 0 led0.off () # lampu mati elif 'selamat tinggal' dalam teks: aiy.audio.say ("Goodbye",) aiy.audio.say ('Arriveerci',) aiy.audio.say ('Auf Wiedersehen',) servo0.angle = 0 servo2.angle = 0 led0.off () sleep (3) print ('bye!') break another: print ('tiada kata kunci yang dikenali!') aiy.audio.say ("Maaf, saya tidak faham kamu",) jika _name_ == ' _main_ ': utama ()

Disyorkan: