INHOUDSOPGAWE:

N Stembeheerde Jumping Jack- Google Voice AIY-weergawe: 3 stappe
N Stembeheerde Jumping Jack- Google Voice AIY-weergawe: 3 stappe

Video: N Stembeheerde Jumping Jack- Google Voice AIY-weergawe: 3 stappe

Video: N Stembeheerde Jumping Jack- Google Voice AIY-weergawe: 3 stappe
Video: nissan leaf 2023 2024, Julie
Anonim
'N Stembeheerde Jumping Jack- Google Voice AIY-weergawe
'N Stembeheerde Jumping Jack- Google Voice AIY-weergawe
'N Stembeheerde Jumping Jack- Google Voice AIY-weergawe
'N Stembeheerde Jumping Jack- Google Voice AIY-weergawe
'N Stembeheerde Jumping Jack- Google Voice AIY-weergawe
'N Stembeheerde Jumping Jack- Google Voice AIY-weergawe
'N Stembeheerde Jumping Jack- Google Voice AIY-weergawe
'N Stembeheerde Jumping Jack- Google Voice AIY-weergawe

U het dus die AIY -stemstel vir Kersfees, en u het daarmee gespeel volgens die instruksies. Dit is snaaks, maar nou?

Die projek wat in die volgende beskryf word, bied 'n eenvoudige toestel aan wat gebou kan word met behulp van die AIY -stemhoed vir die Raspberry Pi. Dit gebruik die Google spraakherkenningstelsel om LED's en twee servo's te bestuur, wat die arms en bene van 'n springkrag met 'n baie eenvoudige rat bestuur.

Die sagteware wat op die agtergrond werk, is 'n wysiging van die servo_demo.py -script, soos dit in die AIY -stemstelhandleiding beskryf is. Volg die instruksies wat daar gegee word om hardeware en sagteware op te stel. Die toestel self is maklik om te bou en vereis nie veel handgemaakte vaardighede nie. Boonop sal 'n snymes, 'n boor en 'n soldeerbout nuttig wees.

As u die spraakherkenningstelsel met 'n knipoog van u hand aktiveer en sê 'hande omhoog', sal die springkrag hande en bene opsteek, 'hande in die middel' sal beide servo's na die middelste posisie beweeg, en op 'hande na onder' sal die hande en bene verlaag word. Op 'links omhoog' word die linkerhand en bene opgelig, en 'regs af' word die regters laat sak, en 'regs omhoog' omgekeerd. "Dans", sal dit laat dans, ten minste soort van. Dit praat ook, kyk gerus na die aangehegte video.

Met min moeite kan u u eie dans-, gesels- en sangrobot bou.

Om die gebruik daarvan veral deur kleiner kinders te vereenvoudig en om die 'magiese' faktor te verbeter, is die knoppie op die AIY -boks vervang deur 'n nabyheidssensor. Vir sy eenvoud het ek 'n digitale afstandsensor -uitbraak van Pololu gebruik wat herken of 'n voorwerp nader as 5 cm is, en kan baie soos 'n knoppie gebruik word. LED's dui wel aan wanneer die toestel wag vir bestellings, luister of 'dink'. Servo's, sensors en LED's word beheer deur die GPIOZero sagtewarebiblioteek.

Die prototipe is gemaak van Forex, PVC -skuimplate, wat baie maklik met 'n snymes gesny kan word en vasgeplak kan word, maar dit is ook redelik stabiel. Bou gerus 'n groter, mooier, verbeterde of mooier weergawe, maar dit sal goed wees as u u verbeterings dokumenteer en aanbied.

U kan albei kante van die bak gebruik, afhangend of u die ratte wil voorstel of 'n mooi, kindervriendelike uitleg wil hê. --------- "Hampelmann" is die Duitse term vir "jumping jack", met sekere konnotasies.

Stap 1: Gebruikte materiaal

Materiaal wat gebruik word
Materiaal wat gebruik word
Materiaal wat gebruik word
Materiaal wat gebruik word

Framboos Pi 3; 32 £ by Pimoroni, Verenigde Koninkryk

AIY stemstel; £ 25 in Pimoroni, die Verenigde Koninkryk

Pololu digitale afstandsensor -breek met skerp sensor, 5 cm; 5,90 € by Exp-tec.de

Twee 9 g servo's

Twee wit LED's en 'n weerstand

'N Paar koppe en springkabels

'N Forex -plaat van 2 mm, 250 x 500 mm; 1,70 € by Modulor, Berlyn, Duitsland

M3 skroewe, moere en ringe om alle bewegende dele aan te sluit. Ek het ses 10 en vier 16 mm nylon skroewe gebruik.

Ses skroewe en moere van M2 om die servo's aan die plate vas te maak en die servos se arms en ratte aan te sluit.

'N Paar druppels plastiekgom

Stap 2: Samestelling en gebruik van die toestel

Samestelling en gebruik van die toestel
Samestelling en gebruik van die toestel
Samestelling en gebruik van die toestel
Samestelling en gebruik van die toestel
Samestelling en gebruik van die toestel
Samestelling en gebruik van die toestel

Wat die AIY -stemstel self betref, volg net die instruksies in die beskrywing wat by die kit kom, insluitend die gedeelte oor die servo. Ek sou aanbeveel om 'n paar drie-pen koppe aan die servo-poorte op die AIY-stembreuk te soldeer, sodat u baie maklik servo's, sensors en LED's met die HAT kan verbind.

Wat die springkrag betref, kan u die tekeninge wat ek hier verskaf as svg- en PDF-lêers as sjabloon gebruik, of dit net volgens u eie idees verander. U hou miskien die basiese uitleg van die rat wat die bene en arm van die springkrag aandryf, om te verseker dat die afstand tussen die draaipunt en die rat dieselfde is by die servo, arm en been.

Alternatiewelik kan u ook 'n weergawe saamstel waarin arms en bene direk deur vier afsonderlike servo's of deur 'n meer gevorderde rat aangedryf word.

Sny die stukke met behulp van die tekening van 'n Forex-, karton- of laaghoutplaat en boor die gate op die toepaslike posisies. Plak die stukke op die draaipunte van arms en bene vas sodat die gate goed in lyn is.

Bevestig die servo's en die bewegende dele aan die basisplaat. Voeg die afstandsensor en LED by soos aangedui. Die servo's word met M2 -skroewe vasgemaak, alle bewegende dele met M3 -skroewe. Ek het Nylon M3 -skroewe gebruik, maar net om estetiese redes.

Kyk of die servo -arms in die middelste posisie geplaas is. Koppel servo -arms en ratte aan; ek het M2 -skroewe hiervoor gebruik.

Koppel servo's, LED's en die afstandsensor aan die servo -aansluitings op die AIY -bord. Miskien het u 'n paar rek-/springkabels nodig. Ek het die linker servo vasgemaak aan "servo0" (GPIO 26) die regter servo aan "servo2" (GPIO 13), die LED's aan "servo5" (GPIO 24) en die sensor aan "servo3" (GPIO 5) op die AIY stem HAT.

Kopieer die verskafde 'Hampelmann.py' -lêer na die AIY' src 'submap en maak dit direk uitvoerbaar vir enigiemand. Om dit te kan doen, kan u die lêer in die lêerbestuurder kies, dan met die rechtermuisknop en Eienskappe kies, toestemmings kies, na Uitvoer gaan, ~ iemand kies. Of skryf "chmod +x src/Hampelmann.py" in die dev -konsole.

Kontroleer of alles op sy plek is en vas is, of beweegbaar is indien nodig. Open die Dev -opdragreël, voer "src/Hampelmann.py" in en begin die program. As u u hand of vingers voor die afstandsensor beweeg, sal die AIY -eenheid bestellings vra en die LED's sal knip. Geïmplementeerde bestellings is “regs/links/hande omhoog/af/middel”, “dans”, “LED aan/af” en “totsiens”.

Speel. Beweeg u hand voor die sensor, praat wanneer u gevra word, en gee die toestel 'n rukkie om te reageer. Latensie is redelik hoog. Crtl+C of "totsiens" sal die program stop.

U kan die lêer verander met behulp van Nano of 'n ander eenvoudige teksredakteur.

Opmerkings: Let asseblief daarop dat sommige woorde en terme herken word as woorde wat met 'n hoofletter begin, as 'Middel' of 'Regter Middel', soos ander nie, bv. 'reg tot'. U moet die presiese vorm wat deur die stemherkenningsmodule gegee word, gebruik om aksie te veroorsaak.

Stap 3: Die Python Script

Soos voorheen genoem, is die script gebaseer op die servo_demo.py -script van die AIY -steminstruksies, met enkele toevoegings. Die eerste weergawe is die Hampelmann.py -lêer wat u hierby vind. Met AngularServo van GPIOZero kan u die omvang van die servo beperk en presies bepaal hoe ver u moet beweeg, maar ek verkies die Britse stem bo die oorspronklike. En die toestel kan ook praat, maar nie verstaan nie (?), Duits, Italiaans, Frans en Spaans. Hieronder vind u die Hampelmann2.py -skrif, met die Britse stem, en 'n bietjie Italiaans en Duits. Hou in gedagte dat u die skrifte uitvoerbaar moet maak om dit te kan uitvoer.

#!/usr/bin/env python3 # Hierdie script is 'n aanpassing van die servo_demo.py -script vir die AIY -stemhoed, # geoptimaliseer vir die AIY spring jack import aiy.audio import aiy.cloudspeech import aiy.voicehat van gpiozero import LED vanaf gpiozero invoer AngularServo vanaf gpiozero invoer Knoppie van tyd af slaap slaap def main (): identifier = aiy.cloudspeech.get_recognizer () werkenster.verwag_frase ('regs') herkenner.verwag_frase ('regs af') herkener.verwag_frase ('regs') Middel ') # die hoofletters is doelbewus herkenbaar.verwag_frase (' links bo ') herkenner.verwag_frase (' links af ') herkenner.verwag_frase (' linker -middel ') herkenner.verwag_frase (' omhoog ') herkenning.verwag_frase ('hands down') identifier.expect_phrase ('hands Center') identifier.expect_phrase ('Dance') igenkenner.verwag_frase ('LED aan') igenkenner.verwag_frase ('LED af') igenkenner.verwag_frase ('totsiens') aiy.audio.get_recorder (). start () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # 1ste verbinding of, GPIO 26 servo2 = AngularServo (13, min_angle = -40, max_angle = 40) # 3de aansluiting, GPIO 13 led0 = LED (24) # LED's is gekoppel aan servo5/GPIO 24 afstand = Knoppie (5) # afstandsensor gekoppel na servo3/GPIO 05 # ander: GPIO 6 by servo1, 12 by servo4 aiy.audio.say ("Hallo!",) aiy.audio.say ("Om te begin, beweeg u hand naby die sensor",) terwyl True: led0.on () # LED's op druk ("Om stemherkenning te aktiveer, beweeg 'n hand naby die afstandsensor en spreek dan") druk ('Verwagte sleutelwoorde is: hande/links/regs op/af/middel,') print ('LED aan/uit, dans en totsiens.') print () distance.wait_for_press () print ('Luister …') aiy.audio.say ("Gee asseblief u bestellings",) led0.blink () # lig knip teks = herkener.herken () as teks Geen is: aiy.audio.say ('Jammer, ek het u nie gehoor nie.',) anders: druk ('U het gesê', teks, '' ') # Laat u toe kyk na die stelselinterpretasie as 'regs' in die teks: druk ('Servo0 na maksimum posisie beweeg') servo0.angle = 35 elif 'regs af' in teks: print ('Servo0 beweeg' na minimum posisie ') servo0.angle = -35 elif' Right Center 'in teks: #correct captions are critical print (' Moving servo0 to middle position ') servo0.angle = 0 elif' left up 'in text: print (' Beweeg servo2 na maksimum posisie ') servo2.angle = -35 elif' links af 'in teks: druk (' Skuif servo2 na minimum posisie ') servo2.angle = 35 elif' links middel 'in teks: druk (' Beweeg servo2 na middelste posisie ') servo2.angle = 0 elif' hande omhoog 'in teks: druk (' Beweeg servo2 na maksimum posisie ') servo2.angle = -35 servo0.angle = 35 elif' hande na onder 'in teks: druk (' Beweeg servo2 na minimum posisie ') servo2.angle = 35 servo0.angle = -35 elif' hande middel 'in teks: druk (' skuif servo2 na middelste posisie ') servo2.angle = 0 servo0.angle = 0 elif' LED af ' in teks: druk ('skakel eksterne LED 0' af) led0.off () elif 'LED aan' in teks: druk ('skakel eksterne LED 0' aan) led0.on () # lig elif 'dans' in teks: print ('dans tans nommer een') aiy.audio.say ("Wel, ek sal my bes probeer!",) led0.on () # ligte aan vir i in reeks (3): servo0.angle = 0 servo2.angle = 0 slaap (1) servo0.angle = 35 servo2.angle = -35 slaap (1) servo0.angle = 0 servo2.angle = -35 slaap (1) servo0.angle = -25 servo2.angle = 0 slaap (1) servo0.angle = 30 servo2.angle = 20 slaap (1) servo0.angle = 0 servo2.angle = 0 led0.off () # light off elif 'totsiens' in teks: aiy.audio.say ("totsiens",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) servo0.angle = 0 servo2.angle = 0 led0.off () slaap (3) druk ('bye!') breek anders: druk ('geen sleutelwoord herken nie!') aiy.audio.say ("Jammer, ek het jou nie verstaan nie",) as _name_ == ' _main_ ': main ()

Aanbeveel: