Kazalo:
Video: Glasovno nadzorovani skakalni vtič- različica Google Voice AIY: 3 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Torej imate za božič tisti glasovni komplet AIY in se z njim po navodilih poigrali. Smešno, a zdaj?
Projekt, opisan v nadaljevanju, predstavlja preprosto napravo, ki jo je mogoče zgraditi z glasovalnim klobukom AIY za Raspberry Pi. Uporablja Googlov sistem za prepoznavanje glasu za krmiljenje LED in dveh servomotorjev, ki z zelo preprosto prestavo poganja roke in noge skakalnega vtičnice.
Programska oprema, ki deluje v ozadju, je sprememba skripta servo_demo.py, kot je opisano v priročniku za glasovni komplet AIY. Upoštevajte tam navedena navodila za nastavitev strojne in programske opreme. Naprava je enostavna za izdelavo in ne zahteva veliko ročnih spretnosti. Poleg tega bi bili v pomoč nož za rezanje, vrtalnik in spajkalnik.
Če z miganjem roke aktivirate sistem za prepoznavanje glasu in rečete "roke navzgor", bo skakalna vtičnica dvignila roke in noge, "središče rok" bo premaknilo oba servomotorja v srednji položaj, na rokah in nogah pa "roke navzdol" znižati. Na levi strani navzgor bodo leva roka in noge dvignjene, na desni pa spuščene desne, na desni navzgor pa obratno. "Ples", bo naredil ples, no vsaj nekako. Prav tako govori, poglejte v priloženem videoposnetku.
Tako lahko z malo truda sestavite svojega plesnega, klepetajočega in pojočega robota.
Da bi poenostavili njegovo uporabo, zlasti pri manjših otrocih, in povečali "čarobni" faktor, je gumb na škatli AIY kot sprožilec zamenjal senzor bližine. Zaradi enostavnosti sem uporabil digitalni senzor razdalje Pololu, ki prepozna, če je predmet bližje 5 cm, in ga lahko uporabljamo zelo podobno kot gumb. LED diode označujejo, kdaj naprava čaka na naročila, posluša ali "razmišlja". Servomotorje, senzor in LED diode nadzira knjižnica programske opreme GPIOZero.
Prototip je bil izdelan iz Forex -ovih plošč iz PVC pene, ki jih je mogoče zelo enostavno razrezati z rezalnim nožem in lepiti, vendar je tudi precej stabilen. Ne pozabite zgraditi večje, lepše, izboljšane ali bolj domišljijske različice, vendar bi bilo vljudno, če bi dokumentirali in predstavili svoje izboljšave.
Uporabite lahko obe strani telesa, odvisno od tega, ali želite predstaviti premično opremo ali imeti lepo, otrokom prijazno postavitev. --------- "Hampelmann" je nemški izraz za "jumping jack", ki ima določene konotacije.
Korak: Uporabljeni materiali
Malina Pi 3; 32 £ v Pimoroniju v Veliki Britaniji
Glasovni komplet AIY; 25 £ v Pimoroniju v Veliki Britaniji
Pololu digitalni senzor razdalje z Sharp senzorjem, 5 cm; 5,90 € na Exp-tec.de
Dva servomotorja po 9 g
Dve beli LED in upor
Nekaj glav in mostičnih kablov
2 mm Forex plošča, 250 x 500 mm; 1,70 € v Modulorju, Berlin, Nemčija
Vijaki, matice in podložke M3 za povezavo vseh gibljivih delov. Uporabil sem šest 10 in štirih 16 mm najlonskih vijakov.
Šest vijakov in matic M2 za pritrditev servomotorjev na plošče in povezavo servo krmilnikov in zobnikov.
Nekaj kapljic lepila za plastiko
2. korak: Montaža in uporaba naprave
Kar zadeva glasovni komplet AIY, sledite navodilom v opisu, ki je priložen kompletu, vključno z razdelkom o servo. Priporočam, da na servo vhode pri glasovni prekinitvi AIY spajkate več tri-polnih glav, tako da lahko s HAT-om zelo enostavno povežete servomotorje, senzor in LED.
Kar zadeva skakalnico, lahko kot predloge uporabite risbe, ki sem jih navedel tukaj, kot datoteke svg in PDF ali pa jih preprosto spremenite v skladu s svojimi zamislimi. Morda boste želeli ohraniti osnovno postavitev orodja, ki poganja noge in roko skakalne vtičnice, s čimer zagotovite, da je razdalja med vrtilno točko in prestavo enaka na servo, roki in nogi.
Lahko pa tudi sestavite različico, kjer bi roke in noge poganjali neposredno s štirimi ločenimi servomotorji ali z naprednejšo prestavo.
Z risbo izrežite kose iz plošče Forex, kartona ali vezanega lesa in izvrtajte luknje na ustreznih mestih. Kolence razdalje prilepite na vrtljive točke rok in nog, da zagotovite dobro poravnavo lukenj.
Servomotorje in gibljive dele pritrdite na osnovno ploščo. Dodajte senzor razdalje in LED, kot je prikazano. Servomotorji so pritrjeni z vijaki M2, vsi gibljivi deli z vijaki M3. Uporabil sem najlonske vijake M3, vendar samo iz estetskih razlogov.
Preverite, ali so servo ročice nameščene v srednjem položaju. Priključite servo ročice in zobnike, v ta namen sem uporabil vijake M2.
Na servo priključke na plošči AIY pritrdite servomotorje, LED in senzor razdalje. Morda boste potrebovali nekaj podaljškov/mostičnih kablov. Levi servo sem priključil na “servo0” (GPIO 26), desni servo na “servo2” (GPIO 13), LED na “servo5” (GPIO 24) in senzor na “servo3” (GPIO 5) na AIY glas KOP.
Kopirajte priloženo datoteko »Hampelmann.py« v podmapo AIY »src« in jo naredite neposredno izvedljivo za vsakogar. Če želite to narediti, lahko v upravitelju datotek izberete datoteko, nato z desno miškino tipko kliknete in izberete Lastnosti, izberete Dovoljenja, pojdite na Izvedi, izberite ~ kdorkoli. Ali pa v konzolo za razvijalce napišite »chmod +x src/Hampelmann.py«.
Preverite, ali je vse nameščeno in pritrjeno ali po potrebi premično. Odprite ukazno vrstico Dev, vnesite »src/Hampelmann.py« in zaženite program. Če premaknete roko ali prste pred senzorjem razdalje, bo enota AIY zahtevala naročila, LED -diode pa bodo utripale. Izvedena naročila so »desno/levo/roke gor/dol/na sredino«, »ples«, »LED vklop/izklop« in »zbogom«.
Igraj. Premaknite roko pred senzor, govorite, ko vas vprašajo, in dajte napravi nekaj časa, da se odzove. Latenca je precej velika. Crtl+C ali »Zbogom« bosta program ustavila.
Datoteko lahko spremenite z uporabo Nano ali drugega preprostega urejevalnika besedil.
Opombe: Zavedajte se, da so nekatere besede in izrazi prepoznani kot besede, ki se začnejo z veliko začetnico, kot 'Center' ali 'Right Center', saj druge niso, npr. 'Takoj gor'. Če želite sprožiti nekaj dejanj, morate uporabiti natančen obrazec, ki ga vrne modul za prepoznavanje glasu.
3. korak: Python Script
Kot smo že omenili, skript temelji na skriptu servo_demo.py iz glasovnih navodil AIY z nekaterimi dodatki. Prva različica je datoteka Hampelmann.py, ki jo najdete v priponki. AngularServo iz GPIOZero omogoča omejevanje obsega delovanja servo in natančno določitev, kako daleč se bo premikal. Naprava lahko govori, vendar ne razume (?), Angleško, nemško, italijansko, francosko in špansko. Spodaj najdete skript Hampelmann2.py z britanskim glasom ter malo italijanščine in nemščine. Upoštevajte, da morate za izvajanje skriptov narediti izvedljive.
#!/usr/bin/env python3 # Ta skripta je prilagoditev skripta servo_demo.py za glasovni klobuk AIY, # optimiziran za AIY skakalni uvoz aiy.audio uvoz aiy.cloudspeech uvoz aiy.voicehat iz gpiozero import LED iz gpiozero uvoz AngularServo iz gpiozero import Gumb iz časovnega uvoza sleep sleep def ((prepoznavalec = aiy.cloudspeech.get_recognizer () prepoznavalnik. Expect_phrase ('desno gor')) Sredina ') # velike začetnice so namenoma prepoznač.expect_phrase (' levo gor ') prepoznavalnik.expect_phrase (' levo dol ') prepoznavalnik.expect_phrase (' levo sredino ') prepoznaval.expect_phrase (' roke gor ') prepoznavalnik.expect_phrase ('roke dol') prepoznavalnik.expect_phrase ('center za roke') prepoznavalnik.expect_phrase ('Dance') prepoznavalnik.expect_phrase ('LED vklopljena') prepoznavalnik.expect_phrase ('LED ugasnjena') prepoznavalnik.expect_phrase ('zbogom') aiy.audio.get_recorder (). start () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # 1. povezovanje ali, GPIO 26 servo2 = AngularServo (13, min_angle = -40, max_angle = 40) # 3. priključek, GPIO 13 led0 = LED (24) # LED sta priključeni na servo5/GPIO 24 distance = Gumb (5) # senzor razdalje je priključen na servo3/GPIO 05 # drugi: GPIO 6 pri servo1, 12 na servo4 aiy.audio.say ("Pozdravljeni!",) aiy.audio.say ("Za začetek premaknite roko blizu senzorja",) medtem ko je True: led0.on () # LED na tiskanju ("Če želite aktivirati prepoznavanje glasu, pomaknite roko blizu senzorja razdalje in nato spregovorite") print ("Pričakovane ključne besede so: roke/levo/desno gor/dol/na sredino") print ('LED za vklop/izklop LED, ples in zbogom.') print () distance.wait_for_press () print ('Poslušanje …') aiy.audio.say ("Prosimo, dajte naročila",) led0.blink () # luč utripajoče besedilo = prepoznavnik.recognize (), če besedilo ni: aiy.audio.say ('Oprostite, nisem vas slišal.',) else: print ('Rekel si' ', besedilo,' "') # Omogoča vam preverite razlago sistemov, če je v besedilu "desno navzgor": print ("Premikanje servo0 v največji položaj") servo0.angle = 35 elif "desno navzdol" v besedilu: print ("Premikanje servo0 do najmanjšega položaja ') servo0.angle = -35 elif' Desno središče 'v besedilu: #pravilni začetniki so kritični natis (' Premik servo0 v srednji položaj ') servo0.angle = 0 elif' levo navzgor 'v besedilu: print (' Premikanje servo2 v največji položaj ') servo2.angle = -35 elif "levo navzdol" v besedilu: print ("Premik servo2 v minimalni položaj") servo2.angle = 35 elif "levo na sredini" v besedilu: print ("Premik servo2 v srednji položaj ') servo2.angle = 0 elif' roke navzgor 'v besedilu: print (' Premikanje servo2 v največji položaj ') servo2.angle = -35 servo0.angle = 35 elif' roke navzdol 'v besedilu: print (' Premikanje servo2 v minimalni položaj ') servo2.angle = 35 servo0.angle = -35 elif' roke na sredini 'v besedilu: print (' Premik servo2 v srednji položaj ') servo2.angle = 0 servo0.angle = 0 elif' LED izklopljen ' v besedilu: print ('izklop zunanje LED 0') led0.off () elif 'LED vklopljen' v besedilu: print ('vklop zunanje LED 0') led0.on () # light elif 'dance' v besedilu: print ('zdaj izvaja ples številka ena') aiy.audio.say ("No, potrudil se bom po najboljših močeh!",) led0.on () # luči vklopljene za i v območju (3): servo0.angle = 0 servo2.angle = 0 spanje (1) servo0.angle = 35 servo2.angle = -35 spanje (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 () # luč izklopljena elif "zbogom" v besedilu: aiy.audio.say ("zbogom",) aiy.audio.say ("Arrivederci",) aiy.audio.say ("Auf Wiedersehen",) servo0.angle = 0 servo2.angle = 0 led0.off () sleep (3) print ('adijo!') break else: print ('ključna beseda ni prepoznana!') aiy.audio.say ("Oprostite, nisem vas razumel",) if _name_ == ' _main_ ': main ()
Priporočena:
Glasovno nadzorovani raketni lansirnik na osnovi Alexa: 9 korakov (s slikami)
Raketni lansirni glasov, ki temelji na Alexa: z približevanjem zimske sezone; prihaja tisti čas v letu, ko se praznuje praznik luči. Da, govorimo o Diwaliju, ki je pravi indijski festival, ki ga praznujejo po vsem svetu. Letos je Diwali že konec in videti ljudi
Samodejni vtič RCA (moški / ženski) - Iz aluminija: 3 koraki
Samodejni vtič RCA (moški / ženski) | Iz aluminija: Oglejte si video: To je vtič RCA po meri, izdelan iz aluminija, moški in ženski. Tako se boste naučili, kako ga narediti, ko nimate vtičnic ali pa je zvočnik pokvarjen. Zdaj ga preprosto naredite doma in zamenjajte pokvarjenega ali pa ga uporabite le kot c
10 AA baterija DC12V vtič USB polnilec: 3 koraki
10 AA baterija DC12V vtič USB polnilec: Imam veliko baterij AA NiMH za ponovno polnjenje, ki sem jih želel uporabiti za polnjenje različnih mobilnih naprav. Moj cilj je bil, če je mogoče, popolnoma napolniti več naprav. Po iskanju elektronskih delov na eBayu sem prišel na idejo o uporabi baterije 10 AA
Pametni vtič s temperaturno nadzorovano funkcijo WiFi: 4 koraki
Pametni vtič z omogočeno temperaturo, ki podpira WiFi, bomo v tem nizu navodil pogledali, kako z uporabo preprostega ESP8266 za dvigovanje težkih delov in senzorja temperature/vlažnosti DHT11 sestaviti temperaturno sondo z omogočeno WiFi. Uporabili bomo tudi vezje, ki sem ga ustvaril, in
Alexa Echo + ESP 8266 = Pametni vtič: 4 koraki (s slikami)
Alexa Echo + ESP 8266 = Pametni napajalni vtič: Ta navodila, ki uporabljajo ALEXA ECHO neposredni nadzor ESP8266. Moj strežnik podpira samo avtorizacijo ESP8266 na strežniku Amazon.Moj strežnik ne varnostno kopira vaših podatkov. Glasujte zame: D Hvala