Mündəricat:

Səslə idarə olunan atlama jakı- Google Voice AIY versiyası: 3 addım
Səslə idarə olunan atlama jakı- Google Voice AIY versiyası: 3 addım

Video: Səslə idarə olunan atlama jakı- Google Voice AIY versiyası: 3 addım

Video: Səslə idarə olunan atlama jakı- Google Voice AIY versiyası: 3 addım
Video: Да я ж нажимал! Дважды. Генетиро Асина ► 5 Прохождение Sekiro: Shadows Die Twice 2024, Dekabr
Anonim
Səslə idarə olunan atlama jakı- Google Voice AIY versiyası
Səslə idarə olunan atlama jakı- Google Voice AIY versiyası
Səslə idarə olunan atlama jakı- Google Voice AIY versiyası
Səslə idarə olunan atlama jakı- Google Voice AIY versiyası
Səslə idarə olunan atlama jakı- Google Voice AIY versiyası
Səslə idarə olunan atlama jakı- Google Voice AIY versiyası
Səslə idarə olunan atlama jakı- Google Voice AIY versiyası
Səslə idarə olunan atlama jakı- Google Voice AIY versiyası

Beləliklə, Milad üçün AIY səs dəstiniz var və təlimatları izləyərək onunla oynayırsınız. Gülməlidir, amma indi?

Aşağıda təsvir olunan layihə, Raspberry Pi üçün AIY səs HAT istifadə edərək qurula bilən sadə bir cihazı təqdim edir. LEDləri və iki servo idarə etmək üçün Google səs tanıma sistemindən istifadə edir, atlama jakının qollarını və ayaqlarını çox sadə bir dişli ilə idarə edir.

Arxa planda işləyən proqram təminatı, AIY səs dəsti təlimatında təsvir edildiyi kimi servo_demo.py skriptinin modifikasiyasıdır. Sərt və proqram qurmaq üçün orada verilən təlimatları izləyin. Cihazın özü qurmaq asandır və çox əl işi bacarıqları tələb etmir. Əlavə olaraq bir bıçaq, bir qazma və bir lehimləmə dəmiri faydalı olardı.

Səs tanıma sistemini əllərinizi qırparaq aktivləşdirsəniz və "əllər yuxarı" desəniz, atlama jakı əlləri və ayaqlarını qaldıracaq, "əllər mərkəzi" hər iki servoları orta vəziyyətə, "əllər aşağı" əllər və ayaqlarda hərəkət edəcək. endirilmək. "Soldan yuxarıya" sol əllər və ayaqlar qaldırılacaq və "sağdan aşağı" sağlar aşağı salınacaq, "sağdan yuxarı" əksinə. "Dance", rəqs edəcək, heç olmasa bir növ. Həm də danışılır, zəhmət olmasa əlavə olunan videoya baxın.

Kiçik səylərlə öz rəqs, söhbət və oxuma robotunuzu qura bilərsiniz.

Xüsusilə kiçik uşaqlar tərəfindən istifadəsini asanlaşdırmaq və 'sehrli' faktoru artırmaq üçün AIY qutusundakı düymə yaxınlıq sensoru ilə tetik olaraq dəyişdirildi. Sadəliyi üçün, bir obyektin 5 sm -dən daha yaxın olub -olmadığını tanıyan və düymə kimi çox istifadə oluna bilən Pololu -dan rəqəmsal məsafə sensoru kəsicisini istifadə etdim. LEDlər cihazın sifariş gözlədiyini, dinlədiyini və ya "düşündüyünü" göstərir. Servolar, sensorlar və LEDlər GPIOZero proqram kitabxanası tərəfindən idarə olunur.

Prototip, kəsici bıçaqla çox asan kəsilərək yapışdırıla bilən, PVC köpüklü lövhələrdən, Forex -dən hazırlanmışdır, lakin olduqca sabitdir. Daha böyük, daha gözəl, təkmilləşdirilmiş və ya daha fantastik bir versiya qurmaqdan çekinmeyin, ancaq təkmilləşdirmələrinizi sənədləşdirib təqdim etsəniz yaxşı olar.

Hərəkətli dişliləri təqdim etmək və ya gözəl, uşaq dostu bir plana sahib olmaq istəyinizə bağlı olaraq bədənin hər iki tərəfini istifadə edə bilərsiniz. --------- "Hampelmann", müəyyən mənaları olan "atlama jakı" üçün Alman dilidir.

Addım 1: İstifadə olunan materiallar

İstifadə olunan materiallar
İstifadə olunan materiallar
İstifadə olunan materiallar
İstifadə olunan materiallar

Moruq Pi 3; Pimoroni, İngiltərədə 32 funt

AIY səs dəsti; Pimoroni, İngiltərədə 25 funt

Sharp sensoru ilə Pololu rəqəmsal məsafə sensoru qırılması, 5 sm; Exp-tec.de saytında 5.90 €

İki ədəd 9g servo

İki ağ LED və bir rezistor

Bəzi başlıqlar və tullanan kabellər

2 mm Forex lövhəsi, 250 x 500 mm; 1.70 €, Modulor, Berlin, Almaniya

Bütün hərəkət edən hissələri birləşdirmək üçün M3 vintlər, qoz -fındıq və yuyucular. Altı 10 və dörd ədəd 16 mm neylon vintlərdən istifadə etdim.

Altı M2 vida və qoz -fındıq, servoları lövhələrə bağlamaq və servo qollarını və dişliləri birləşdirmək üçün.

Bir neçə damla plastik yapışqan

Addım 2: Cihazın montajı və istifadəsi

Cihazın montajı və istifadəsi
Cihazın montajı və istifadəsi
Cihazın montajı və istifadəsi
Cihazın montajı və istifadəsi
Cihazın montajı və istifadəsi
Cihazın montajı və istifadəsi

AIY səs dəsti ilə əlaqədar olaraq, servo haqqında bölmə də daxil olmaqla dəstlə birlikdə gələn təsvirdəki təlimatları izləyin. AIY səs kəsilməsindəki bir neçə üç pinli başlığı servo portlarına lehimləməyi məsləhət görürəm, buna görə də HAT ilə servoları, sensoru və LEDləri çox asanlıqla bağlaya bilərsiniz.

Atlama jakına gəldikdə, burada təqdim etdiyim rəsmləri şablon olaraq svg və PDF faylları kimi istifadə edə və ya sadəcə öz fikirlərinizə uyğun olaraq dəyişdirə bilərsiniz. Dönmə nöqtəsi ilə dişli arasındakı məsafənin servoda, qolda və ayaqda eyni olmasını təmin edərək, atlama krikosunun ayaqları və qolunu idarə edən dişli çarxın əsas sxemini saxlamaq istəyə bilərsiniz.

Alternativ olaraq, qolların və ayaqların birbaşa dörd ayrı servo və ya daha inkişaf etmiş bir dişli ilə idarə edildiyi bir versiyanı da qura bilərsiniz.

Rəsmdən istifadə edərək parçaları Forex, karton və ya kontrplak lövhədən kəsin və uyğun yerlərdə deliklər qazın. Deliklərin yaxşı hizalanmasını təmin edərək, məsafə parçalarını qolların və ayaqların dönmə nöqtələrinə yapışdırın.

Servoları və hərəkət edən hissələri baza plakasına yapışdırın. Göstərildiyi kimi məsafə sensoru və LED əlavə edin. Servolar M2 vintlər, bütün hərəkət edən hissələr M3 vintlər ilə sabitlənir. Neylon M3 vintlərindən istifadə etdim, ancaq estetik səbəblərdən.

Servo qolların orta mövqedə yerləşdiyini yoxlayın. Servo qolları və dişliləri bağlayın, bu məqsəd üçün M2 vintlərindən istifadə etdim.

AIY lövhəsindəki servo konnektorlarına servoları, LEDləri və məsafə sensorunu bağlayın. Bəzi uzanma/atlama kabellərinə ehtiyacınız ola bilər. Sol servo "servo0" (GPIO 26), sağ servo "servo2" (GPIO 13), LEDlər "servo5" (GPIO 24) və sensör AIY üzərindəki "servo3" (GPIO 5) ilə bağlandım. səs HAT.

Təqdim olunan "Hampelmann.py" faylını AIY "src" alt qovluğuna kopyalayın və hər kəs üçün birbaşa icra olun. Bunu etmək üçün fayl menecerində faylı seçə bilərsiniz, sonra sağ vurun və Xüsusiyyətlər seçin, İcazələr seçin, İcra bölməsinə gedin, ~ hər kəs seçin. Və ya dev konsolunda "chmod +x src/Hampelmann.py" yazın.

Hər şeyin yerində olub olmadığını və lazım olduqda sabit olub olmadığını yoxlayın. Dev əmr satırını açın, "src/Hampelmann.py" daxil edin və proqramı başladın. Əlinizi və ya barmaqlarınızı məsafə sensoru qarşısında hərəkət etdirsəniz, AIY vahidi sifariş verəcək və LEDlər yanıb sönəcək. Həyata keçirilən sifarişlər "sağ/sol/əllər yuxarı/aşağı/mərkəz", "rəqs", "LED aç/söndür" və "əlvida" dır.

Oynamaq. Əlinizi sensorun önünə keçirin, soruşulduqda danışın və cihaza reaksiya vermək üçün bir az vaxt verin. Gecikmə nisbətən yüksəkdir. Crtl+C və ya "Əlvida" proqramı dayandıracaq.

Nano və ya başqa bir sadə mətn redaktoru istifadə edərək faylı dəyişdirə bilərsiniz.

Qeydlər: Unutmayın ki, bəzi sözlər və terminlər böyük hərflə başlayan sözlər kimi tanınır, 'Mərkəz' və ya 'Sağ Mərkəz', digərləri olmadığı üçün. 'Düz yuxarı'. Bəzi hərəkətləri tetiklemek üçün səs tanıma modulu tərəfindən verilən dəqiq formadan istifadə etməlisiniz.

Addım 3: Python Script

Daha əvvəl qeyd edildiyi kimi, skript AIY səsli təlimatlarının servo_demo.py skriptinə və bəzi əlavələrə əsaslanır. İlk versiya, əlavə olaraq tapacağınız Hampelmann.py sənədidir. GPIOZero -dan AngularServo, servonun hərəkət aralığını məhdudlaşdırmağa və nə qədər uzaqlaşacağını dəqiq müəyyən etməyə imkan verir, amma orijinal səsdən daha çox İngilis səsini üstün tuturam. Cihaz həm də İngilis, Alman, İtalyan, Fransız və İspan dillərində danışa bilər, amma anlamır (?). Aşağıda İngilis səsi olan bir az İtalyan və Almanca olan Hampelmann2.py skriptini tapa bilərsiniz. Unutmayın ki, onları işlətmək üçün skriptləri işlək hala gətirməlisiniz.

#!/usr/bin/env python3 # Bu skript, AIY səs HAT üçün servo_demo.py skriptinin uyğunlaşdırılmasıdır, # AIY atlama jakı idxal aiy.audio idxal aiy.cloudspeech idxal aiy.voicehat gpiozero idxal LED -dən gpiozero idxalından AngularServo gpiozero idxalından Zaman idxalı düyməsi yuxu def main (): tanıyıcı = aiy.cloudspeech.get_recognizer () tanıyıcı.expect_phrase ('sağdan yuxarı') tanıyıcı. Mərkəz ') # böyük hərflər məqsədli olaraq tanıyıcıdır. Gözlənilən söz (' yuxarıdan yuxarı ') tanıyıcı. Gözləmə ifadəsi (' aşağıdan aşağı ') tanıyıcı. ('əllər aşağı') tanıyıcı.səhifə_fazası ('əllər Mərkəzi') tanıyıcı.özgöz ifadəsi ('Rəqs') tanıyıcı..audio.get_recorder (). start () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # 1-ci əlaqə və ya, GPIO 26 servo2 = AngularServo (13, min_angle = -40, max_angle = 40) # 3-cü bağlayıcı, GPIO 13 led0 = LED (24) # LEDlər servo5/GPIO 24 məsafəyə = Düymə (5) # məsafə sensoru bağlıdır servo3/GPIO 05 # digərlərinə: servo1 -də GPIO 6, servo4 -də 12 aiy.audio.say ("Salam!",) aiy.audio.say ("Başlamaq üçün əlinizi sensora yaxınlaşdırın",) True: led0.on () Çapdakı # LEDlər ("Səs tanınmasını aktivləşdirmək üçün əlinizi məsafə sensoruna yaxınlaşdırın, sonra danışın") çap edin ('Gözlənilən açar sözlər: əllər/sol/sağ yuxarı/aşağı/mərkəz,') çap ('LED yandırma/söndürmə, rəqs və vida.') print () məsafə.wait_for_press () çap ('Dinləyir …') aiy.audio.say ("Zəhmət olmasa sifarişlərinizi verin",) led0.blink () # işıq yanıb -sönən mətn = tanınan mətndə 'sağa doğru' varsa sistemlərin şərhini yoxlayın: çap edin ('servo0 maksimum mövqeyə köçürülür') servo0.angle = 35 elif 'sağa aşağı' mətndə: çap ('servo0 hərəkət edir minimum mövqeyə ') servo0.angle = -35 elif' Sağ Mərkəz 'mətnində: #düzgün başlıqlar kritik çapdır (' servo0 orta mövqeyə köçürülür ') servo0.angle = 0 elif' sola yuxarı 'mətndə: print (' Servo2-ni maksimum mövqeyə köçürmək ') servo2.angle = -35 elif' soldan 'mətndə: çap (' servo2 minimum mövqeyə köçürülür ') servo2.angle = 35 elif' sol mərkəzdə 'mətndə: print (' servo2-ni hərəkət etdirmək orta mövqe ') servo2.angle = 0 elif' əllər yuxarı 'mətnində: çap (' Servo2 maksimum mövqeyə köçürülür ') servo2.angle = -35 servo0.angle = 35 elif' əlləri aşağı 'mətndə: çap (' Hərəkət servo2 minimum mövqeyə ') servo2.angle = 35 servo0.angle = -35 elif' əlləri ortada 'mətndə: çap edin (' servo2 orta vəziyyətə köçürülür ') servo2.angle = 0 servo0.angle = 0 elif' LED söndü ' mətndə: yazdır ('xarici LED 0 söndürülür') led0.off () elif 'LED yanır' mətndə: çap ('xarici LED 0 açılır') led0.on () # işıq elif 'rəqs' mətndə: print ('indi bir nömrəli rəqs ifa edir') aiy.audio.say ("Yaxşı, əlimdən gələni edəcəyəm!",) led0.on () # işıqlar yanır i üçündür (3): servo0.angle = 0 servo2.angle = 0 yuxu (1) servo0.angle = 35 servo2.angle = -35 yuxu (1) servo0.angle = 0 servo2.angle = -35 yuxu (1) servo0.angle = -25 servo2.angle = 0 yuxu (1) servo0.angle = 30 servo2.angle = 20 yuxu (1) servo0.angle = 0 servo2.angle = 0 led0.off () # işıq sönmüş elif mətndə 'əlvida': aiy.audio.say ("Əlvida",) aiy.audio.say ('Gələnlər',) aiy.audio.say ('Auf Wiedersehen',) servo0.angle = 0 servo2.angle = 0 led0.off () yuxu (3) çap ('sağol!') fasilə başqa: print ('heç bir açar söz tanınmadı!') aiy.audio.say ("Bağışlayın, sizi başa düşmədim",) əgər _name_ == ' _main_ ': əsas ()

Tövsiyə: