Tartalomjegyzék:
- 1. lépés: Használt anyagok
- 2. lépés: Az eszköz összeszerelése és használata
- 3. lépés: A Python -szkript
Videó: Egy hangvezérelt ugró Jack- Google Voice AIY verzió: 3 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
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
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
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:
Egy Raspberry Pi NAS, amely valóban úgy néz ki, mint egy NAS: 13 lépés (képekkel)
Egy Raspberry Pi NAS, ami tényleg úgy néz ki, mint egy NAS: Miért egy Raspberry Pi NAS? Nos, én egy gyönyörű, de helytakarékos Raspberry Pi NAS -t kerestem az internetről, és nem találtam semmit. Találtam néhány NAS -konstrukciót, egy Raspberry Pi -t fa alapra ragasztva, de nem ezt akarom. Azt akarom
Ébressz fel egy őskori dinoszauruszt egy IBM PS2 55SX!: 15 lépés
Ébressz fel egy őskori dinoszauruszt … egy IBM PS2 55SX! egyébként azt javaslom, hogy olvassa el az összes bejegyzést
Hogyan építsünk egy 8x8x8 LED -es kockát és vezéreljük egy Arduino segítségével: 7 lépés (képekkel)
Hogyan készítsünk 8x8x8 LED -es kockát és vezéreljük azt egy Arduino -val: 2020. január szerkesztés: Hagyom, ha valaki ötletek generálására szeretné használni, de már nincs értelme kocka építeni ezen utasítások alapján. A LED -illesztőprogram -IC -k már nem készülnek, és mindkét vázlatot a régi verzióban írták
Hogyan használjunk egy while ciklust egy tömb iterálására Java -ban: 9 lépés
Hogyan használjunk egy while ciklust egy tömb megismétléséhez a Java -ban: Ma megmutatom, hogyan használhatja a Java -t egy ciklus létrehozásához, amely használható számok vagy szavak listájának iterálására. Ez a koncepció belépő szintű programozók és azok számára készült, akik gyorsan szeretnének felfrissülni a Java hurkokról és tömbökről
A MATRIX Voice és a MATRIX Creator futó Alexa (C ++ verzió): 7 lépés
MATRIX Voice és MATRIX Creator Alexa (C ++ verzió): Szükséges hardver Mielőtt elkezdené, nézzük át, mire lesz szüksége. Raspberry Pi 3 (ajánlott) vagy Pi 2 B modell (támogatott). MATRIX Voice vagy MATRIX Creator - A Raspberry Pi nem rendelkezik beépített mikrofonnal, a MATRIX Voice/Creator rendelkezik egy