Sadržaj:

Ulaz za skakanje s glasovnom kontrolom- Google Voice AIY verzija: 3 koraka
Ulaz za skakanje s glasovnom kontrolom- Google Voice AIY verzija: 3 koraka

Video: Ulaz za skakanje s glasovnom kontrolom- Google Voice AIY verzija: 3 koraka

Video: Ulaz za skakanje s glasovnom kontrolom- Google Voice AIY verzija: 3 koraka
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Studeni
Anonim
Ulaz za skakanje s glasovnom kontrolom- AIY verzija Google Voicea
Ulaz za skakanje s glasovnom kontrolom- AIY verzija Google Voicea
Džek za skakanje s glasovnom kontrolom- AIY verzija Google Voicea
Džek za skakanje s glasovnom kontrolom- AIY verzija Google Voicea
Ulaz za skakanje s glasovnom kontrolom- AIY verzija Google Voicea
Ulaz za skakanje s glasovnom kontrolom- AIY verzija Google Voicea
Džek za skakanje s glasovnom kontrolom- AIY verzija Google Voicea
Džek za skakanje s glasovnom kontrolom- AIY verzija Google Voicea

Dakle, dobili ste taj AIY glasovni komplet za Božić i igrali ste se s njim, slijedeći upute. Smiješno, ali sada?

Projekt opisan u nastavku predstavlja jednostavan uređaj koji se može izgraditi pomoću AIY voice HAT -a za Raspberry Pi. Koristi Googleov sustav za prepoznavanje glasa za upravljanje LED -icama i dva servo -a, upravljajući rukama i nogama skakačke utičnice vrlo jednostavnom brzinom.

Softver koji radi u pozadini modifikacija je skripte servo_demo.py, kako je opisano u priručniku AIY glasovnog kompleta. Samo slijedite upute za postavljanje hardvera i softvera. Sam uređaj je jednostavan za izradu i ne zahtijeva mnogo vještina ručne izrade. Osim toga, nož za rezanje, bušilica i lemilica bili bi od pomoći.

Ako treptanjem ruke aktivirate sustav za prepoznavanje glasa i izgovorite 'ruke gore', skakač će podići ruke i noge, 'središte ruku' pomaknut će oba servo pogona u srednji položaj, a na rukama 'i dolje' ruke i noge će biti spušten. Na 'lijevo gore' lijeva ruka i noge bit će podignute, a na 'desno dolje' desne spuštene, na 'desno gore' obrnuto. "Ples", učinit će to plesom, pa barem nekako. Također govori, pogledajte video u prilogu.

Tako uz malo truda možete izgraditi vlastitog robota za ples, čavrljanje i pjevanje.

Kako bi se pojednostavila njegova upotreba, osobito za manju djecu, i kako bi se poboljšao 'čarobni' faktor, gumb na AIY kutiji zamijenjen je kao okidač senzorom blizine. Radi svoje jednostavnosti, upotrijebio sam digitalni senzor udaljenosti iz Pololua koji prepoznaje je li objekt bliži od 5 cm i može se koristiti poput gumba. LED diode pokazuju kada uređaj čeka narudžbe, sluša ili „razmišlja“. Servo, senzor i LED diode kontroliraju softverska knjižnica GPIOZero.

Prototip je izrađen od Forexa, PVC pjene, koja se vrlo lako može rezati nožem za rezanje i lijepiti, ali je i prilično stabilna. Slobodno napravite veću, ljepšu, poboljšanu ili otmjeniju verziju, ali bilo bi ljubazno da dokumentirate i predstavite svoja poboljšanja.

Možete koristiti obje strane tijela, ovisno o tome želite li predstaviti pokretnu opremu ili imati lijep raspored prilagođen djeci. --------- "Hampelmann" je njemački izraz za "jumping jack", koji ima određene konotacije.

Korak 1: Korišteni materijali

Korišteni materijali
Korišteni materijali
Korišteni materijali
Korišteni materijali

Malina Pi 3; 32 £ u Pimoroniju, UK

AIY glasovni komplet; 25 £ u Pimoroniju, UK

Pololu digitalni senzor udaljenosti s Sharp senzorom, 5 cm; 5,90 € na Exp-tec.de

Dva servo servera od 9 g

Dvije bijele LED diode i otpornik

Neki zaglavlja i kratkospojni kablovi

Forex ploča od 2 mm, 250 x 500 mm; 1,70 € u Modulor -u, Berlin, Njemačka

M3 vijci, matice i podloške za spajanje svih pokretnih dijelova. Koristio sam šest 10 i četiri najlonska vijka od 16 mm.

Šest vijaka i matica M2 za pričvršćivanje servomotora na ploče i povezivanje servo pogona i zupčanika.

Nekoliko kapi ljepila za plastiku

Korak 2: Montaža i uporaba uređaja

Sklapanje i uporaba uređaja
Sklapanje i uporaba uređaja
Sklapanje i uporaba uređaja
Sklapanje i uporaba uređaja
Sklapanje i uporaba uređaja
Sklapanje i uporaba uređaja

Što se tiče samog AIY glasovnog kompleta, samo slijedite upute u opisu koji dolazi s kompletom, uključujući odjeljak o servo pogonu. Preporučio bih lemljenje nekoliko tropolnih zaglavlja na servo portove na AIY glasovnom prekidu, tako da možete vrlo jednostavno spojiti servo, senzor i LED diode pomoću HAT-a.

Što se tiče priključka za skakanje, crteže koje sam ovdje naveo možete koristiti kao svg i PDF datoteke kao predložak ili ih samo izmijeniti prema vlastitim zamislima. Možda biste željeli zadržati osnovni raspored zupčanika koji pokreće noge i ruku skakaonice, pazeći da razmak između točke zakretanja i zupčanika bude isti na servo, ruci i nozi.

Alternativno, također možete konstruirati inačicu u kojoj se ruke i noge pokreću izravno s četiri odvojena servo pogona ili naprednijim stupnjem prijenosa.

Pomoću crteža izrežite komade s ploče Forex, kartona ili šperploče i izbušite rupe na odgovarajućim položajima. Zalijepite komade udaljenosti na zakretne točke ruku i nogu, osiguravajući dobro poravnanje rupa.

Pričvrstite servomotore i pokretne dijelove na osnovnu ploču. Dodajte senzor udaljenosti i LED diodu kako je prikazano. Servomotori su učvršćeni vijcima M2, svi pokretni dijelovi vijcima M3. Koristio sam najlonske vijke M3, ali samo iz estetskih razloga.

Provjerite jesu li servo krakovi postavljeni u srednji položaj. Spojite servo krakove i zupčanike, u tu sam svrhu koristio vijke M2.

Priključite servo, LED diode i senzor udaljenosti na servo konektore na AIY ploči. Možda će vam trebati neki produžni/prespojni kabeli. Priključio sam lijevi servo na “servo0” (GPIO 26), desni na “servo2” (GPIO 13), LED diode na “servo5” (GPIO 24), a senzor na “servo3” (GPIO 5) na AIY -u glas ŠEŠIR.

Kopirajte priloženu datoteku “Hampelmann.py” u podmapu AIY “src” i učinite je izravno izvršnom za svakoga. Da biste to učinili, možete odabrati datoteku u upravitelju datoteka, zatim desnom tipkom miša odabrati Svojstva, odabrati Dopuštenja, otići na Izvršiti, odabrati ~ bilo koga. Ili napišite “chmod +x src/Hampelmann.py” u dev konzolu.

Provjerite je li sve postavljeno na svoje mjesto i fiksirano ili po potrebi pomično. Otvorite Dev naredbeni redak, unesite “src/Hampelmann.py” i pokrenite program. Ako pomaknete ruku ili prste ispred senzora udaljenosti, AIY jedinica zatražit će narudžbe, a LED diode će treptati. Provedene naredbe su “desno/lijevo/ruke gore/dolje/u sredinu”, “ples”, “LED uključeno/isključeno” i “zbogom”.

Igra. Pomaknite ruku ispred senzora, govorite kada se to od vas zatraži i dajte uređaju malo vremena da reagira. Latencija je prilično velika. Crtl+C ili "Goodbye" će zaustaviti program.

Datoteku možete izmijeniti pomoću Nano -a ili drugog jednostavnog uređivača teksta.

Napomene: Imajte na umu da se neke riječi i pojmovi prepoznaju kao riječi koje počinju velikim slovom, kao ‘centar’ ili ‘desno središte’, jer druge nisu, npr. 'Odmah gore'. Morate upotrijebiti točan obrazac koji je vratio modul za prepoznavanje glasa da biste pokrenuli neku radnju.

Korak 3: Python skripta

Kao što je ranije spomenuto, skripta se temelji na skripti servo_demo.py iz glasovnih uputa AIY, s nekim dodacima. Prva verzija je datoteka Hampelmann.py koju ćete pronaći u privitku. AngularServo iz GPIOZero -a omogućuje ograničavanje raspona djelovanja servo -a i točno definiranje udaljenosti kretanja. Ali više volim britanski glas od izvornog. Uređaj također može govoriti, ali ne razumije (?), Engleski, njemački, talijanski, francuski i španjolski. Dolje ćete pronaći skriptu Hampelmann2.py, s britanskim glasom, te malo talijanskog i njemačkog. Imajte na umu da morate izvršiti skripte da biste ih pokrenuli.

#!/usr/bin/env python3 # Ova skripta je adaptacija skripte servo_demo.py za AIY glas HAT, # optimizirana za AIY skakaonicu uvoz aiy.audio uvoz aiy.cloudspeech uvoz aiy.voicehat iz gpiozero import LED iz gpiozero uvoz AngularServo iz gpiozero import Gumb za vrijeme uvoza sleep sleep def ((prepoznavač = aiy.cloudspeech.get_recognizer () prepoznavač.expect_phrase ('desno gore') prepoznavač.expect_phrase ('desno dolje') prepoznavač.expect_phrase ('Desno') Centar ') # velika slova postoje namjerno prepoznavač.expect_phrase (' lijevo gore ') prepoznavač.expect_phrase (' lijevo dolje ') prepoznavač.expect_phrase (' lijevo središte ') prepoznavač.expect_phrase (' ruke gore ') prepoznavač.expect_phrase ('ruke dolje') prepoznavač.expect_phrase ('ruke Centar') prepoznavač.expect_phrase ('Ples') prepoznavač.expect_phrase ('LED uključen') prepoznavač.expect_phrase ('LED isključen') prepoznavač.expect_phrase ('zbogom') aiy.audio.get_recorder (). start () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # 1. povezivanje ili, GPIO 26 servo2 = AngularServo (13, min_angle = -40, max_angle = 40) # 3. konektor, GPIO 13 led0 = LED (24) # LED diode su spojene na servo5/GPIO 24 distance = Gumb (5) # senzor udaljenosti spojen na servo3/GPIO 05 # drugi: GPIO 6 na servo1, 12 na servo4 aiy.audio.say ("Zdravo!",) aiy.audio.say ("Za početak, pomaknite ruku blizu senzora",) dok je True: led0.on () # LED diode na ispisu ("Da biste aktivirali prepoznavanje glasa, pomaknite ruku blizu senzora udaljenosti, a zatim progovorite") print ("Očekivane ključne riječi su: ruke/lijevo/desno gore/dolje/u sredinu,") print ('LED za uključivanje/isključivanje, ples i zbogom.') print () distance.wait_for_press () print ('Slušanje …') aiy.audio.say ("Molimo dajte svoje naredbe",) led0.blink () # svjetlo treptajući tekst = prepoznavač.recognize () ako je tekst Ništa: aiy.audio.say ('Žao mi je, nisam vas čuo.',) else: print ('Rekli ste' ', tekst,' "') # Omogućuje vam provjerite tumačenje sustava ako je 'desno gore' u tekstu: print ('Pomicanje servo0 na maksimalni položaj') servo0.angle = 35 elif 'desno dolje' u tekstu: print ('Premještanje servo0 do minimalnog položaja ') servo0.angle = -35 elif' Desno središte 'u tekstu: #ispravni natpisi kritični su ispis (' Pomicanje servo0 u srednji položaj ') servo0.angle = 0 elif' lijevo gore 'u tekstu: print (' Premještanje servo2 u maksimalni položaj ') servo2.angle = -35 elif' lijevo dolje 'u tekstu: print (' Premještanje servo2 u minimalni položaj ') servo2.angle = 35 elif' lijevo središte 'u tekstu: print (' Premještanje servo2 u srednji položaj ') servo2.angle = 0 elif' ruke gore 'u tekstu: print (' Pomicanje servo2 na maksimalni položaj ') servo2.angle = -35 servo0.angle = 35 elif' ruke dolje 'u tekstu: print (' Premještanje servo2 do minimalnog položaja ') servo2.angle = 35 servo0.angle = -35 elif' ruke središte 'u tekstu: print (' Pomicanje servo2 u srednji položaj ') servo2.angle = 0 servo0.angle = 0 elif' LED isključen ' u tekstu: print ('isključivanje vanjske LED 0') led0.off () elif 'LED uključena' u tekstu: print ('uključivanje vanjske LED 0') led0.on () # light elif 'ples' u tekstu: print ('sada izvodi ples broj jedan') aiy.audio.say ("Pa, potrudit ću se!",) led0.on () # upaljena svjetla za i u rasponu (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 () # svjetlo isključeno elif 'zbogom' u tekstu: aiy.audio.say ("Zbogom",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) servo0.angle = 0 servo2.angle = 0 led0.off () sleep (3) print ('bye!') break else: print ('nijedna ključna riječ nije prepoznata!') aiy.audio.say ("Žao mi je, nisam vas razumio",) if _name_ == ' _main_ ': main ()

Preporučeni: