Innehållsförteckning:
Video: A Voice Controlled Jumping Jack- Google Voice AIY Version: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Så du har fått det AIY -röstsatsen till jul och har lekt med det enligt instruktionerna. Det är roligt, men nu?
Projektet som beskrivs i det följande presenterar en enkel enhet som kan byggas med AIY -rösthatten för Raspberry Pi. Den använder Googles röstigenkänningssystem för att styra lysdioder och två servon, som driver armarna och benen på en hoppande jack med en mycket enkel växel.
Programvaran som fungerar i bakgrunden är en ändring av servo_demo.py -skriptet, som det har beskrivits i AIY -röstkitmanualen. Följ bara instruktionerna där för att konfigurera hård- och programvara. Själva enheten är enkel att bygga och kräver inte mycket handarbete. Dessutom skulle en skärkniv, en borr och ett lödkolv vara till hjälp.
Om du aktiverar röstigenkänningssystemet med en blinkning av handen och säger "händerna upp" kommer hoppkraften att höja händer och ben, "händer i mitten" flyttar båda servon till mittläget och på "händer ner" händer och ben kommer sänkas. På "vänster upp" höjs vänster hand och ben och på "höger ner" sänks de högra, på "höger upp" tvärtom. "Dans", kommer att få det att dansa, ja åtminstone typ. Det pratar också, ta en titt på den bifogade videon.
Så med små ansträngningar kan du bygga din egen dans-, chatt- och sjungande robot.
För att förenkla användningen, särskilt för mindre barn, och för att förstärka den”magiska” faktorn, byttes knappen på AIY -lådan som utlösare av en närhetssensor. För enkelhetens skull använde jag en digital distanssensorutbrott från Pololu som känner igen om ett föremål är närmare än 5 cm och kan användas väldigt mycket som en knapp. Lysdioder indikerar när enheten väntar på order, lyssnar eller "tänker". Servos, sensorer och lysdioder styrs av programbiblioteket GPIOZero.
Prototypen byggdes av Forex, PVC -skumplattor, som kan skäras mycket enkelt med en skärkniv och limmas, men är också ganska stabil. Bygg gärna en större, snyggare, förbättrad eller snyggare version, men det vore snällt om du skulle dokumentera och presentera dina förbättringar.
Du kan använda båda sidor av kroppen, beroende på om du vill presentera rörelseutrustningen eller ha en trevlig, barnvänlig layout. --------- "Hampelmann" är den tyska termen för "jumping jack", med vissa konnotationer.
Steg 1: Material som används
Hallon Pi 3; 32 £ på Pimoroni, Storbritannien
AIY röstsats; 25 £ på Pimoroni, Storbritannien
Pololu digital distanssensor bryter med Sharp sensor, 5 cm; 5,90 € på Exp-tec.de
Två 9g servon
Två vita lysdioder och ett motstånd
Några sidhuvuden och bygelkablar
En 2 mm Forex -platta, 250 x 500 mm; 1,70 € på Modulor, Berlin, Tyskland
M3 skruvar, muttrar och brickor, för att ansluta alla rörliga delar. Jag använde sex 10 och fyra 16 mm nylonskruvar.
Sex M2 skruvar och muttrar för att fästa servon på plattorna och ansluta servosarmarna och kugghjulen.
Några droppar plastlim
Steg 2: Montering och användning av enheten
Angående själva AIY -röstsatsen följer du bara instruktionerna i beskrivningen som medföljer satsen, inklusive avsnittet om servon. Jag skulle rekommendera att löda flera trepoliga rubriker till servoportarna på AIY-röstutbrottet, så att du kan ansluta servon, sensorer och lysdioder väldigt enkelt med HAT.
När det gäller hoppjacket kan du antingen använda ritningarna som jag tillhandahållit här som svg- och PDF-filer som en mall, eller bara ändra dem enligt dina egna idéer. Du kanske vill behålla den grundläggande utformningen av växeln som driver benen och armen på hoppjacket, så att avståndet mellan svängningspunkten och växeln är detsamma vid servon, armen och benet.
Alternativt kan du också konstruera en version där armar och ben drivs direkt av fyra separata servon eller av en mer avancerad växel.
Med hjälp av ritningen, klipp bitarna från en Forex-, kartong- eller plywoodplatta och borra hålen vid lämpliga positioner. Limma avståndsstyckena till de svängbara punkterna på armar och ben, för att säkerställa en bra inriktning av hålen.
Fäst servon och de rörliga delarna på bottenplattan. Lägg till avståndssensorn och lysdioden enligt indikationen. Servon fixeras med M2 -skruvar, alla rörliga delar med M3 -skruvar. Jag använde Nylon M3 -skruvar, men bara av estetiska skäl.
Kontrollera om servoarmarna är placerade i mittläget. Anslut servo armar och kugghjul, jag använde M2 skruvar för detta ändamål.
Anslut servon, lysdioder och avståndssensorn till servokontakterna på AIY -kortet. Du kan behöva några förlängnings-/bygelkablar. Jag fäst den vänstra servon på “servo0” (GPIO 26) den högra servon till “servo2” (GPIO 13), lysdioderna till “servo5” (GPIO 24) och sensorn till “servo3” (GPIO 5) på AIY röst HAT.
Kopiera den medföljande "Hampelmann.py" -filen till AIY "src" -mappen och gör den direkt körbar för alla. För att göra det kan du välja filen i filhanteraren, högerklicka och välj Egenskaper, välj Behörigheter, gå till Utför, välj ~ vem som helst. Eller skriv “chmod +x src/Hampelmann.py” i dev -konsolen.
Kontrollera om allt är på plats och fast, eller rörligt vid behov. Öppna kommandoraden Dev, ange “src/Hampelmann.py” och starta programmet. Om du flyttar din hand eller fingrar framför avståndssensorn kommer AIY -enheten att be om beställningar och lysdioderna blinkar. Implementerade beställningar är”höger/vänster/händer upp/ner/center”,”dans”,”LED på/av” och”adjö”.
Spela. Flytta handen framför sensorn, tala när du blir tillfrågad och ge enheten lite tid att reagera. Latensen är ganska hög. Crtl+C eller “Goodbye” stoppar programmet.
Du kan ändra filen med Nano eller en annan enkel textredigerare.
Anmärkningar: Tänk på att vissa ord och termer känns igen som ord som börjar med stor bokstav, som "Center" eller "Right Center", som andra inte är, t.ex. 'Rätt upp'. Du måste använda det exakta formuläret som röstigenkänningsmodulen har gett tillbaka för att utlösa vissa åtgärder.
Steg 3: Python -skriptet
Som tidigare nämnts är skriptet baserat på servo_demo.py -skriptet från AIY -röstinstruktionerna, med några tillägg. Den första versionen är filen Hampelmann.py som du hittar bifogad. AngularServo från GPIOZero gör det möjligt att begränsa servos åtgärdsområde och definiera exakt hur långt som ska flyttas. Men jag föredrar den brittiska rösten framför den ursprungliga. Och enheten kan också tala, men inte förstå (?), Engelska, tyska, italienska, franska och spanska. Nedan hittar du Hampelmann2.py -manuset med den brittiska rösten och lite italienska och tyska. Tänk på att du måste göra skripten körbara för att köra dem.
#!/usr/bin/env python3 # Detta skript är en anpassning av servo_demo.py -skriptet för AIY -rösthatten, # optimerad för AIY -hoppa -jackimport aiy.audioimport aiy.cloudspeech -import aiy.voicehat från gpiozero -import -LED från gpiozero import AngularServo från gpiozero import Knapp från tid importera sömn def main (): igenkänare = aiy.cloudspeech.get_recognizer () igenkänna.förvänta_fras ("höger upp") igenkänna.förvänta "fras (" höger ner ") igenkännare.förvänta_fras (" Höger ") Center ') # stora bokstäver finns där avsiktligt igenkännare.förvänta_fras (' vänster upp ') igenkänna.förvänta_fras (' vänster ned ') igenkänna.förvänta_fras (' vänster mitten ') igenkänna.förvänta_fras (' händer upp ') igenkännare.förvänta_fras ('hands down') igenkännare.förvänta_fras ('händer i mitten') igenkänna.förvänta_fras ('dansa') igenkänna.förvänta_fras ('LED på') igenkänna.förvänta_fras ('LED av') igenkänna.förvänta 'fras (' adjö ') aiy.audio.get_recorder (). start () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # 1: a anslutning eller, GPIO 26 servo2 = AngularServo (13, min_angle = -40, max_angle = 40) # 3: e kontakt, GPIO 13 led0 = LED (24) # LED är anslutna till servo5/GPIO 24 distans = Knapp (5) # avståndssensor ansluten till servo3/GPIO 05 # andra: GPIO 6 vid servo1, 12 vid servo4 aiy.audio.say ("Hej!",) aiy.audio.say ("För att börja, flytta handen nära sensorn",) medan True: led0.on () # lysdioder på utskrift ("För att aktivera röstigenkänning, flytta en hand nära avståndssensorn och tala sedan") utskrift ('Förväntade nyckelord är: händer/vänster/höger upp/ner/centrum') print ('LED on/off, dance and goodbye.') print () distance.wait_for_press () print ('Listening …') aiy.audio.say ("Please give your orders",) led0.blink () # light blinka text = igenkännare.igenkänna () om texten är Ingen: aiy.audio.say ('Tyvärr, jag hörde dig inte.',) else: print ('Du sa "', text, '"') # Låter dig kontrollera systemtolkningen om 'höger upp' i text: skriv ut ('Flyttar servo0 till maximal position') servo0.angle = 35 elif 'höger ner' i text: print ('Flyttande servo0 till lägsta position ') servo0.angle = -35 elif' Right Center 'i text: #correct captions are critical print (' Moving servo0 to middle position ') servo0.angle = 0 elif' left up 'in text: print (' Flytta servo2 till maximal position ') servo2.angle = -35 elif' left down 'i text: print (' Moving servo2 to minimum position ') servo2.angle = 35 elif' left Center 'in text: print (' Moving servo2 to mittläge ') servo2.angle = 0 elif' hands up 'i text: print (' Moving servo2 to maximum position ') servo2.angle = -35 servo0.angle = 35 elif' hands down 'in text: print (' Moving servo2 till lägsta position ') servo2.angle = 35 servo0.angle = -35 elif' hands Center 'i text: tryck (' Flyttar servo2 till mittläge ') servo2.angle = 0 servo0.angle = 0 elif' LED off ' i text: skriva ut ('stänga av extern LED 0') led0.off () elif 'LED tänd' i text: print ('slå på extern LED 0') led0.on () # ljus elif 'dans' i text: print ('spelar nu dans nummer ett') aiy.audio.say ("Tja, jag ska göra mitt bästa!",) led0.on () # lampor tända för 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 'adjö' i text: aiy.audio.say ("Goodbye",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) servo0.angle = 0 servo2.angle = 0 led0.off () sleep (3) print ('hejdå!') paus annars: print ('inget sökord känns igen!') aiy.audio.say ("Tyvärr, jag förstod dig inte",) om _name_ == ' _main_ ': main ()
Rekommenderad:
Jumping-Jack Counter: 3 steg
Jumping-Jack Counter: Jag ville ha ett sätt att räkna mina hoppjackar och att uppmuntra mig själv att fortsätta när jag förformade hoppjackar, så jag skapade en hoppande jackräknare som låter en klocka från Super Mario Brothers varje gång jag slutför en hoppjack
Arduino Guitar Jack Key Holder With Jack Recognition & OLED: 7 Steg
Arduino Guitar Jack Key Holder With Jack Recognition & OLED: Intro: This instructable will detail build of my Arduino based Guitar Jack plugin key holderThis is my first everable so please bear with me as I may make changes / updates along the way
MATRIX Voice och MATRIX Creator som kör Alexa (version C ++): 7 steg
MATRIX Voice och MATRIX Creator som kör Alexa (C ++ -version): Obligatorisk maskinvara Innan vi sätter igång, låt oss granska vad du behöver. Raspberry Pi 3 (rekommenderas) eller Pi 2 modell B (stöds). MATRIX Voice eller MATRIX Creator - Raspberry Pi har ingen inbyggd mikrofon, MATRIX Voice/Creator har en
Raspberry Pi Voice Controlled Home Automation: 5 steg
Raspberry Pi Voice Controlled Home Automation: Målet med denna instruerbara är att ge en steg-för-steg-handledning om hur du konfigurerar en hallon pi som kan automatisera lampor / lysdioder med dina röstkommandon
En talande färgsensor, baserad på AIY Voice Kit: 4 steg
En talande färgsensor, baserad på AIY Voice Kit: Efter att ha lärt mig lite om punktskrift nyligen undrade jag om jag kunde bygga något med AIY-röstsatsen för Raspberry Pi, som kan ha en verklig nytta för synskadade. . Så beskrivet i det följande hittar du en prototy