Indholdsfortegnelse:
Video: A Voice Controlled Jumping Jack- Google Voice AIY Version: 3 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Så du har fået det AIY -stemmekit til jul, og har leget med det efter instruktionerne. Det er sjovt, men nu?
Projektet beskrevet i det følgende præsenterer en simpel enhed, der kan bygges ved hjælp af AIY voice HAT til Raspberry Pi. Det bruger Googles stemmegenkendelsessystem til at styre lysdioder og to servoer, der driver arme og ben på en springende jack med et meget simpelt gear.
Softwaren, der arbejder i baggrunden, er en ændring af servo_demo.py -scriptet, som det er beskrevet i AIY -stemmekitmanualen. Følg bare instruktionerne der for at konfigurere hard- og software. Selve enheden er let at bygge og kræver ikke meget håndværksmæssige færdigheder. Derudover ville en kniv, en boremaskine og et loddejern være en hjælp.
Hvis du aktiverer stemmegenkendelsessystemet med et blink i hånden og siger 'hænderne op', løfter hoftestikket hænder og ben, 'hænderne i midten' flytter begge servoer til midterpositionen og på 'hænderne ned' hænder og ben vil sænkes. På 'venstre op' hæves venstre hånd og ben og på 'højre ned' sænkes de højre, og 'højre op' omvendt. "Dans", vil få det til at danse, ja i hvert fald sådan. Det taler også. Tag et kig på den vedhæftede video.
Så med få anstrengelser kan du bygge din egen robot, der danser, chatter og synger.
For at forenkle brugen, især af mindre børn, og for at forbedre den 'magiske' faktor, blev knappen på AIY -boksen erstattet som trigger af en nærhedsføler. For sin enkelhed brugte jeg en digital afstandssensor breakout fra Pololu, som genkender, om et objekt er tættere end 5 cm, og kan bruges meget som en knap. Lysdioder angiver, når enheden venter på ordrer, lytter eller "tænker". Servoer, sensorer og lysdioder styres af GPIOZero softwarebiblioteket.
Prototypen blev bygget af Forex, PVC -skumplader, der kan skæres meget let med en kniv og limes, men er også ret stabil. Byg gerne en større, pænere, forbedret eller mere fancy version, men det ville være venligt, hvis du ville dokumentere og præsentere dine forbedringer.
Du kan bruge begge sider af kroppen, afhængigt af om du vil præsentere bevægelsesudstyret eller have et dejligt, børnevenligt layout. --------- "Hampelmann" er det tyske udtryk for "jumping jack", der har visse konnotationer.
Trin 1: Brugte materialer
Hindbær Pi 3; 32 £ hos Pimoroni, Storbritannien
AIY stemme Kit; 25 £ hos Pimoroni, Storbritannien
Pololu digital distance sensor breakout med Sharp sensor, 5 cm; 5,90 € på Exp-tec.de
To 9g servoer
To hvide lysdioder og en modstand
Nogle skæreborde og springkabler
En 2 mm Forex plade, 250 x 500 mm; 1,70 € hos Modulor, Berlin, Tyskland
M3 skruer, møtrikker og skiver, til at forbinde alle bevægelige dele. Jeg brugte seks 10 og fire 16 mm nylonskruer.
Seks M2 skruer og møtrikker til fastgørelse af servoerne til pladerne og tilslutning af servoarmene og gearene.
Et par dråber plastlim
Trin 2: Montering og brug af enheden
Hvad angår selve AIY -stemmesættet, skal du bare følge instruktionerne i beskrivelsen, der følger med sættet, herunder afsnittet om servoen. Jeg vil anbefale at lodde flere tre-benede headere til servo-portene på AIY-stemmeudbruddet, så du kan forbinde servoer, sensor og lysdioder meget let med HAT.
Hvad angår springstikket, kan du enten bruge de tegninger, jeg leverede her som svg- og PDF-filer som en skabelon, eller bare ændre dem efter dine egne ideer. Du vil måske gerne beholde det grundlæggende layout af gearet, der driver benene og armen på springkraften, og sikrer, at afstanden mellem drejepunktet og gearet er den samme på servoen, armen og benet.
Alternativt kan du også konstruere en version, hvor arme og ben drives direkte af fire separate servoer eller af et mere avanceret gear.
Ved hjælp af tegningen skæres stykkerne fra en Forex-, pap- eller krydsfinerplade og borer hullerne på de passende positioner. Lim afstandsstykkerne til de svingende punkter på arme og ben, hvilket sikrer god justering af hullerne.
Fastgør servoerne og de bevægelige dele til bundpladen. Tilføj afstandssensoren og LED som angivet. Servoerne er fastgjort med M2 skruer, alle bevægelige dele med M3 skruer. Jeg brugte Nylon M3 skruer, men bare af æstetiske årsager.
Kontroller, om servoarmene er placeret i midterpositionen. Tilslut servo arme og gear, jeg brugte M2 skruer til dette formål.
Fastgør servoer, lysdioder og afstandssensoren til servostikkene på AIY -kortet. Du har muligvis brug for nogle forlængelses-/springkabler. Jeg fastgjorde den venstre servo til “servo0” (GPIO 26) den højre servo til “servo2” (GPIO 13), lysdioderne til “servo5” (GPIO 24) og sensoren til “servo3” (GPIO 5) på AIY stemme HAT.
Kopier den medfølgende "Hampelmann.py" -fil til AIY "src" -mappen, og gør den direkte eksekverbar for alle. For at gøre dette kan du vælge filen i filhåndteringen, højreklikke og vælge Egenskaber, vælge Tilladelser, gå til Udfør, vælg ~ hvem som helst. Eller skriv “chmod +x src/Hampelmann.py” i dev -konsollen.
Kontroller, om alt er sat på plads og fast, eller bevægeligt, når det kræves. Åbn kommandolinjen Dev, indtast “src/Hampelmann.py” og start programmet. Hvis du bevæger din hånd eller fingre foran afstandssensoren, beder AIY -enheden om ordrer, og lysdioderne blinker. Implementerede ordrer er "højre/venstre/hænder op/ned/center", "dans", "LED tændt/slukket" og "farvel".
Spil. Bevæg hånden foran sensoren, tal når du bliver spurgt, og giv enheden lidt tid til at reagere. Latens er ret høj. Crtl+C eller “Farvel” stopper programmet.
Du kan ændre filen ved hjælp af Nano eller en anden simpel tekstredigerer.
Bemærkninger: Vær opmærksom på, at nogle ord og udtryk genkendes som ord, der starter med store bogstaver, som 'Center' eller 'Højre Center', som andre ikke er, f.eks. 'Lige op'. Du skal bruge den nøjagtige form, der er givet tilbage af stemmegenkendelsesmodulet for at udløse en handling.
Trin 3: Python -scriptet
Som tidligere nævnt er scriptet baseret på servo_demo.py -scriptet fra AIY -stemmeinstruktionerne, med nogle tilføjelser. Den første version er filen Hampelmann.py, du finder vedhæftet. AngularServo fra GPIOZero gør det muligt at begrænse servoens rækkevidde og definere nøjagtigt, hvor langt der skal bevæge sig. Men jeg foretrækker den britiske stemme frem for den originale. Og enheden kan også tale, men ikke forstå (?), Engelsk, tysk, italiensk, fransk og spansk. Nedenfor finder du Hampelmann2.py -scriptet med den britiske stemme og lidt italiensk og tysk. Husk, at du skal gøre scripts eksekverbare for at køre dem.
#!/usr/bin/env python3 # Dette script er en tilpasning af servo_demo.py -scriptet til AIY stemme HAT, # optimeret til AIY jumping jack import aiy.audio import aiy.cloudspeech import aiy.voicehat fra gpiozero import LED fra gpiozero import AngularServo fra gpiozero import Knap fra tid importer søvn def main (): anerkender = aiy.cloudspeech.get_recognizer () anerkender.forventet_frase ('højre op') anerkender.forventet_frase ('højre ned') genkender.forventet_frase ('Højre') Center ') # store bogstaver er der med vilje anerkender.forventet_frase (' venstre op ') genkender.forventet_frase (' venstre ned ') genkender.forventet_frase (' venstre center ') genkender.forventet_frase (' hænder op ') genkender.forventet_frase ('hænder ned') anerkender.forventet_frase ('hænder i midten') genkender.forventet_frase ('dans') genkender.forventet_frase ('LED tændt') igenkender.forventet_frase ('LED slukket') genkender.forventet_frase ('farvel') aiy.audio.get_recorder (). start () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # 1. forbindelse eller, GPIO 26 servo2 = AngularServo (13, min_angle = -40, max_angle = 40) # 3. stik, GPIO 13 led0 = LED (24) # LED'er er forbundet til servo5/GPIO 24 distance = Knap (5) # tilsluttet afstandssensor til servo3/GPIO 05 # andre: GPIO 6 ved servo1, 12 ved servo4 aiy.audio.say ("Hej!",) aiy.audio.say ("For at starte, flyt din hånd tæt på sensoren",) mens True: led0.on () # LED'er på udskrivning ("For at aktivere stemmegenkendelse skal du flytte en hånd tæt på afstandssensoren og derefter tale") udskrive ('Forventede søgeord er: hænder/venstre/højre op/ned/center') print ('LED on/off, dance and goodbye.') print () distance.wait_for_press () print ('Listening …') aiy.audio.say ("Please give your orders",) led0.blink () # light blink tekst = genkender.genkend () hvis teksten er Ingen: aiy.audio.say ('Beklager, jeg hørte dig ikke.',) else: print ('Du sagde "', tekst, '"') # Lader dig tjek systemfortolkningen, hvis 'lige op' i teksten: print ('Flytter servo0 til maksimal position') servo0.angle = 35 elif 'højre ned' i tekst: print ('Moving servo0 til minimumsposition ') servo0.angle = -35 elif' Right Center 'i teksten: #correct captions are critical print (' Moving servo0 to middle position ') servo0.angle = 0 elif' left up 'in text: print (' Flytter servo2 til maksimal position ') servo2.angle = -35 elif' venstre ned 'i tekst: print (' Flytter servo2 til minimumsposition ') servo2.angle = 35 elif' venstre Center 'i tekst: print (' Flytter servo2 til midterste position ') servo2.angle = 0 elif' hands up 'i tekst: print (' Moving servo2 to maximum position ') servo2.angle = -35 servo0.angle = 35 elif' hands down 'in text: print (' Moving servo2 til minimumsposition ') servo2.angle = 35 servo0.angle = -35 elif' hands Center 'i tekst: print (' Flytter servo2 til midterposition ') servo2.angle = 0 servo0.angle = 0 elif' LED slukket ' i tekst: print ('slukning af ekstern LED 0') led0.off () elif 'LED tændt' i tekst: print ('tænder ekstern LED 0') led0.on () # lys elif 'dans' i tekst: print ('udfører nu dans nummer et') aiy.audio.say ("Nå, jeg vil prøve mit bedste!",) led0.on () # lys tændt for i i område (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 () # light off elif 'farvel' i teksten: aiy.audio.say ("Farvel",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) servo0.angle = 0 servo2.angle = 0 led0.off () sleep (3) print ('farvel!') pause else: print ('intet søgeord genkendes!') aiy.audio.say ("Beklager, jeg forstod dig ikke",) hvis _name_ == ' _main_ ': main ()
Anbefalede:
Jumping-Jack Counter: 3 trin
Jumping-Jack Counter: Jeg ville have en måde at tælle mine jumping jacks og til at opmuntre mig selv til at blive ved, når jeg præformede jumping jacks, så jeg skabte en jumping jack tæller, der lyder en klokke fra Super Mario Brothers hver gang jeg gennemfører en jump jack
Alexa Voice Controlled Raspberry Pi Drone Med IoT og AWS: 6 trin (med billeder)
Alexa Voice Controlled Raspberry Pi Drone Med IoT og AWS: Hej! Mit navn er Armaan. Jeg er en 13-årig dreng fra Massachusetts. Denne vejledning viser, som du kan udlede af titlen, hvordan man bygger en Raspberry Pi Drone. Denne prototype demonstrerer, hvordan droner udvikler sig, og også hvor stor en rolle de kan spille i
Hjem/Lab Voice Controlled Assistant: 14 trin (med billeder)
Hjem/Lab Stemmestyret assistent: Om mig Hej! Dette er min første instruerbare, jeg er 17 år gammel. Jeg er fra Grækenland, så mit engelsk er måske ikke perfekt, men jeg skal gøre mit bedste. Så jeg designede først denne app for 2 år siden, og jeg fandt denne konkurrence en mulighed for at opdatere mit gamle projekt
MATRIX Voice og MATRIX Creator, der kører Alexa (C ++ version): 7 trin
MATRIX Voice og MATRIX Creator, der kører Alexa (C ++ version): Påkrævet hardware Lad os gennemgå, hvad du skal bruge, inden du går i gang. Raspberry Pi 3 (anbefalet) eller Pi 2 Model B (understøttet). MATRIX Voice eller MATRIX Creator - Raspberry Pi har ikke en indbygget mikrofon, MATRIX Voice/Creator har en
En talende farvesensor, baseret på AIY Voice Kit: 4 trin
En talende farvesensor, baseret på AIY Voice Kit: Efter at have lært lidt om punktskrift for nylig, spekulerede jeg på, om jeg kunne bygge noget ved hjælp af AIY voice kit til Raspberry Pi, der kan have en reel fordel for synshandicappede . Så beskrevet i det følgende finder du en prototy