Tartalomjegyzék:

Egy hangvezérelt ugró Jack- Google Voice AIY verzió: 3 lépés
Egy hangvezérelt ugró Jack- Google Voice AIY verzió: 3 lépés

Videó: Egy hangvezérelt ugró Jack- Google Voice AIY verzió: 3 lépés

Videó: Egy hangvezérelt ugró Jack- Google Voice AIY verzió: 3 lépés
Videó: Предсказания на Семейство Симпсънс Които Все Още не са се Сбъднали 2024, November
Anonim
Hangvezérelt ugró Jack- Google Voice AIY verzió
Hangvezérelt ugró Jack- Google Voice AIY verzió
Hangvezérelt ugró Jack- Google Voice AIY verzió
Hangvezérelt ugró Jack- Google Voice AIY verzió
Hangvezérelt ugráló Jack- Google Voice AIY verzió
Hangvezérelt ugráló Jack- Google Voice AIY verzió
Hangvezérelt ugró Jack- Google Voice AIY verzió
Hangvezérelt ugró Jack- Google Voice AIY verzió

Tehát megvan az AIY hangkészlet karácsonyra, és az utasításokat követve játszott vele. Vicces, de most?

Az alábbiakban ismertetett projekt egy egyszerű eszközt mutat be, amelyet a Raspberry Pi AIY hangkalapjával lehet összeállítani. A Google hangfelismerő rendszerét használja a LED -ek és két szervó vezérlésére, és egy nagyon egyszerű sebességváltón hajtja az ugró jack karjait és lábait.

A háttérben működő szoftver a servo_demo.py parancsfájl módosítása, amint azt az AIY hangkészlet kézikönyvében leírták. Csak kövesse az ott található utasításokat a hardver és a szoftver beállításához. Maga az eszköz könnyen megépíthető, és nem igényel sok kézműves készséget. Ezen kívül egy kés, egy fúró és egy forrasztópáka is hasznos lehet.

Ha egy kézmozdulattal aktiválja a hangfelismerő rendszert, és azt mondja: „kezek felfelé”, az ugrófej felemeli a kezét és a lábát, a „kezek középpontja” mindkét szervót középső helyzetbe, a „lefelé” kezét és lábát pedig le kell engedni. „Balról felfelé” a bal kéz és a lábak felemelkednek, a „jobb lefelé” a jobbak pedig leereszkednek, a „jobb felfelé” pedig fordítva. "Tánc", táncolni fog, legalábbis valamiféle. Ez is beszél, kérjük, nézze meg a mellékelt videót.

Így kis erőfeszítéssel saját táncoló, csevegő és éneklő robotot építhet.

A használat egyszerűsítése érdekében, különösen a kisebb gyermekek körében, és a „varázslatos tényező” fokozása érdekében, az AIY doboz gombját egy közelségérzékelő váltotta ki. Az egyszerűség kedvéért a Pololu digitális távolságérzékelőjét használtam, amely felismeri, ha egy tárgy 5 cm -nél közelebb van, és gombként is használható. A LED -ek jelzik, hogy a készülék mikor várja a megrendeléseket, hallgat vagy „gondolkodik”. A szervókat, az érzékelőket és a LED -eket a GPIOZero szoftverkönyvtár vezérli.

A prototípus Forex, PVC hablemezekből készült, amelyek vágókéssel nagyon egyszerűen vághatók és ragaszthatók, de meglehetősen stabil is. Nyugodtan készítsen nagyobb, szebb, továbbfejlesztett vagy divatosabb verziót, de jó lenne, ha dokumentálná és bemutatná a fejlesztéseit.

A test mindkét oldalát használhatja, attól függően, hogy bemutatja-e a mozgó felszerelést, vagy szép, gyermekbarát elrendezésű. --------- A "Hampelmann" a német "jumping jack" kifejezés, bizonyos konnotációkkal.

1. lépés: Használt anyagok

Felhasznált anyagok
Felhasznált anyagok
Felhasznált anyagok
Felhasznált anyagok

Raspberry Pi 3; 32 £ Pimoroni -ban, Egyesült Királyságban

AIY hangkészlet; 25 £ Pimoroni -ban, Egyesült Királyságban

Pololu digitális távolságérzékelő kitörés Sharp érzékelővel, 5 cm; 5,90 € az Exp-tec.de oldalon

Két 9 g -os szervó

Két fehér LED és egy ellenállás

Néhány fejléc és áthidaló kábel

2 mm -es Forex lemez, 250 x 500 mm; 1,70 € a Modulorban, Berlin, Németország

M3 csavarok, anyák és alátétek az összes mozgó alkatrész csatlakoztatásához. Hat 10 és négy 16 mm -es nylon csavart használtam.

Hat M2 csavar és anya a szervók rögzítéséhez a lemezekhez, valamint a szervokarok és fogaskerekek csatlakoztatásához.

Néhány csepp műanyag ragasztó

2. lépés: Az eszköz összeszerelése és használata

A készülék összeszerelése és használata
A készülék összeszerelése és használata
A készülék összeszerelése és használata
A készülék összeszerelése és használata
A készülék összeszerelése és használata
A készülék összeszerelése és használata

Magával az AIY hangkészlettel kapcsolatban kövesse a készlethez tartozó leírásban található utasításokat, beleértve a szervóról szóló részt is. Azt javaslom, hogy több hárompólusú fejlécet forrasztjunk az AIY hangkibocsátó szervo portjaihoz, így a szervót, az érzékelőt és a LED-eket nagyon egyszerűen csatlakoztathatja a HAT segítségével.

Ami az ugró aljzatot illeti, használhatja sablonként az itt megadott rajzokat svg- és PDF-fájlként, vagy egyszerűen módosíthatja azokat saját elképzelései szerint. Lehet, hogy meg akarja tartani az ugróemelő lábait és karjait vezérlő fogaskerék alapvető elrendezését, biztosítva, hogy a forgópont és a fogaskerék közötti távolság azonos legyen a szervó, a kar és a láb között.

Alternatív megoldásként létrehozhat egy verziót is, ha a karokat és a lábakat négy külön szervó vagy egy fejlettebb sebességváltó hajtja.

A rajz segítségével vágja le a darabokat egy Forex, karton vagy rétegelt lemezről, és fúrja ki a lyukakat a megfelelő pozíciókban. Ragassza a távolságtartó darabokat a karok és lábak forgó pontjaihoz, biztosítva a lyukak megfelelő igazítását.

Rögzítse a szervókat és a mozgó alkatrészeket az alaplemezhez. Adja hozzá a távolságérzékelőt és a LED -et a jelzések szerint. A szervókat M2 csavarokkal, minden mozgó alkatrészt M3 csavarokkal rögzítik. Nylon M3 csavarokat használtam, de csak esztétikai okokból.

Ellenőrizze, hogy a szervókarok középső helyzetben vannak -e. Csatlakoztassa a szervókarokat és fogaskerekeket, erre a célra M2 csavarokat használtam.

Csatlakoztassa a szervókat, a LED -eket és a távolságérzékelőt az AIY -kártya szervocsatlakozóihoz. Szükség lehet néhány hosszabbító/áthidaló kábelre. A bal szervót a „servo0” -hoz (GPIO 26), a jobb szervót a „servo2” -hez (GPIO 13), a LED -eket a „servo5” -hez (GPIO 24), az érzékelőt pedig a „servo3” -hoz (GPIO 5) csatlakoztattam az AIY -n hang kalap.

Másolja a mellékelt „Hampelmann.py” fájlt az AIY „src” almappájába, és tegye azt bárki számára közvetlenül végrehajthatóvá. Ehhez válassza ki a fájlt a fájlkezelőben, majd kattintson a jobb egérgombbal, és válassza a Tulajdonságok lehetőséget, válassza az Engedélyek lehetőséget, lépjen a Végrehajtás menübe, és válassza a ~ bárki lehetőséget. Vagy írja be a „chmod +x src/Hampelmann.py” szót a fejlesztői konzolba.

Ellenőrizze, hogy minden a helyén van -e és rögzítve van, vagy szükség esetén mozgatható. Nyissa meg a Dev parancssort, írja be az „src/Hampelmann.py” parancsot, és indítsa el a programot. Ha a kezét vagy az ujjait a távolságérzékelő elé mozgatja, az AIY egység parancsokat kér, és a LED -ek villogni kezdenek. A végrehajtott parancsok: „jobb/bal/kéz fel/le/középre”, „tánc”, „LED be/ki” és „viszlát”.

Játék. Mozgassa a kezét az érzékelő előtt, beszéljen, amikor felkérik, és hagyjon egy kis időt a készüléknek a reagálásra. A késleltetés meglehetősen magas. A Crtl+C vagy a „Goodbye” leállítja a programot.

A fájlt Nano vagy más egyszerű szövegszerkesztő segítségével módosíthatja.

Megjegyzések: Kérjük, vegye figyelembe, hogy egyes szavak és kifejezések nagybetűvel kezdődő szavakként, „Középként” vagy „Középső” néven ismerhetők fel, míg mások nem, pl.’Rögtön’. A hangfelismerő modul által megadott pontos űrlapot kell használnia bizonyos műveletek kiváltásához.

3. lépés: A Python -szkript

Amint korábban említettük, a szkript az AIY hangutasításokból származó servo_demo.py parancsfájlra épül, néhány kiegészítéssel. Az első verzió a csatolt Hampelmann.py fájl. Az AngularServo a GPIOZero -tól lehetővé teszi a szervó működési tartományának korlátozását, és pontosan meghatározza, hogy milyen messzire kell mozognia. De én inkább a brit hangot részesítem előnyben az eredetivel szemben. És a készülék beszél, de nem ért (()) angolul, németül, olaszul, franciául és spanyolul. Az alábbiakban megtalálja a Hampelmann2.py forgatókönyvet, brit hanggal, valamint egy kicsit olaszul és németül. Kérjük, ne feledje, hogy a szkripteket futtathatóvá kell tenni a futtatáshoz.

#!/usr/bin/hu from gpiozero import AngularServo from gpiozero import Button from time import alvó def main (): tunnista = aiy.cloudspeech.get_recognizer () felismerő.expect_fázis ('jobbra felfelé') felismerő.expect_frázis ('jobbra le') felismerő.expect_phrase ('Jobb Közép ') # a nagybetűk szándékosan ott vannak ('kéz lefelé') felismerő.expect_frázis ('kézközép') felismerő.expect_frázis ('tánc') felismerő.expect_frázis ('LED világít') felismerő.expect_frázis ('LED ki') felismerő.expect_phrase ('viszlát') aiy.audio.get_recorder (). start () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # 1st connect vagy, GPIO 26 szervo2 = AngularServo (13, min_angle = -40, max_angle = 40) # 3. csatlakozó, GPIO 13 led0 = LED (24) # LED csatlakozik a servo5/GPIO 24 távolsághoz = gomb (5) # távolságérzékelő csatlakoztatva to servo3/GPIO 05 # others: GPIO 6 at servo1, 12 at servo4 aiy.audio.say ("Hello!",) aiy.audio.say ("Kezdéshez mozgassa a kezét az érzékelőhöz"), míg True: led0.on () # LED nyomtatáskor ("A hangfelismerés aktiválásához mozgassa a kezét a távolságérzékelőhöz, majd beszéljen") print ("A várt kulcsszavak: kéz/bal/jobb fel/le/középen,") print ('LED be/ki, táncolj és viszlát.') print () distance.wait_for_press () print ('Hallgatás …') aiy.audio.say ("Kérlek add meg a rendeléseidet",) led0.blink () # light villogó szöveg = felismerő.felismeri (), ha a szöveg nincs ellenőrizze a rendszer értelmezését, ha 'jobbra' a szövegben: print ('Servo0 mozgatása a maximális pozícióba') servo0.angle = 35 elif 'jobbra le' a szövegben: print ('Servo0 mozgatása a minimális pozícióig ') servo0.angle = -35 elif' Jobb közép 'a szövegben: #correct captials kriitikus print (' Servo0 áthelyezése középső pozícióba ') servo0.angle = 0 elif' balra 'a szövegben: print (' Szervo2 áthelyezése a maximális pozícióba ') servo2.angle = -35 elif' balra le 'szövegben: print (' Servo2 mozgatása a minimális pozícióba ') servo2.angle = 35 elif' bal oldali Közép 'szövegben: print (' Servo2 áthelyezése középső pozíció ') servo2.angle = 0 elif' kéz fel 'szövegben: print (' Servo2 mozgatása a maximális pozícióba ') servo2.angle = -35 servo0.angle = 35 elif' lefelé 'szövegben: print (' Moving szervo2 minimális pozícióba ') servo2.angle = 35 servo0.angle = -35 elif' kezek középre 'a szövegben: print (' Servo2 áthelyezése középső helyzetbe ') servo2.angle = 0 servo0.angle = 0 elif' LED off ' szövegben: print ('külső LED 0 kikapcsolása') led0.off () elif 'LED be' szövegben: print ('külső LED bekapcsolása') led0.on () # light elif 'dance' szövegben: print ('most az első tánc előadása') aiy.audio.say ("Nos, megpróbálok minden tőlem telhetőt!",) led0.on () # fények bekapcsolva i esetén a (3) tartományban: szervo0.angle = 0 servo2.angle = 0 sleep (1) servo0.angle = 35 servo2.angle = -35 sleep (1) servo0.angle = 0 servo2.angle = -35 sleep (1) szervo0.angle = -25 servo2.angle = 0 sleep (1) servo0.angle = 30 servo2.angle = 20 sleep (1) servo0.angle = 0 servo2.angle = 0 led0.off () # light off elif 'viszlát' szövegben: aiy.audio.say ("Goodbye",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) servo0.angle = 0 servo2.angle = 0 led0.off () alvás (3) print ('szia!') szünet else: print ('nem ismeri fel a kulcsszót!') aiy.audio.say ("Sajnálom, nem értelek"), ha _name_ == ' _main_ ': main ()

Ajánlott: