Sisukord:

Häälega juhitav hüppepistik- Google Voice AIY versioon: 3 sammu
Häälega juhitav hüppepistik- Google Voice AIY versioon: 3 sammu

Video: Häälega juhitav hüppepistik- Google Voice AIY versioon: 3 sammu

Video: Häälega juhitav hüppepistik- Google Voice AIY versioon: 3 sammu
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Häälega juhitav hüppepistik- Google Voice AIY versioon
Häälega juhitav hüppepistik- Google Voice AIY versioon
Häälega juhitav hüppepistik- Google Voice AIY versioon
Häälega juhitav hüppepistik- Google Voice AIY versioon
Häälega juhitav hüppepistik- Google Voice AIY versioon
Häälega juhitav hüppepistik- Google Voice AIY versioon
Häälega juhitav hüppepistik- Google Voice AIY versioon
Häälega juhitav hüppepistik- Google Voice AIY versioon

Nii et teil on jõuludeks see AIY häälekomplekt ja olete sellega juhiseid järgides mänginud. See on naljakas, aga nüüd?

Järgnevalt kirjeldatud projekt esitab lihtsa seadme, mida saab luua Raspberry Pi jaoks AIY häälkübara abil. See kasutab Google'i häältuvastussüsteemi, et juhtida LED -e ja kahte servot, juhtides hüppepistiku käsi ja jalgu väga lihtsa käiguga.

Taustal töötav tarkvara on servo_demo.py skripti modifikatsioon, nagu on kirjeldatud AIY häälkomplekti kasutusjuhendis. Kõva- ja tarkvara seadistamiseks järgige lihtsalt seal antud juhiseid. Seadet on lihtne ehitada ja see ei nõua palju käsitööoskusi. Lisaks oleks abiks lõiketera, puur ja jootekolb.

Kui aktiveerite hääletuvastussüsteemi käe pilgutamisega ja ütlete „käed üles”, tõstab hüppetõste käed ja jalad üles, nihutab „käed keskele” mõlemad servod keskmisesse asendisse ning käed alla ja käed ja jalad langetada. „Vasakul üles” tõstetakse vasak käsi ja jalad üles ning „paremal alla” paremad langetatakse, „paremal üles” vastupidi. "Tants" paneb tantsima, vähemalt omamoodi. See räägib ka, palun vaadake lisatud videot.

Nii saate väikeste jõupingutustega luua oma tantsu-, vestlus- ja lauluroboti.

Selle kasutamise lihtsustamiseks, eriti väiksematel lastel, ja võlufaktori täiustamiseks asendati AIY kasti nupp päästikuna lähedusanduriga. Lihtsuse huvides kasutasin Pololu digitaalset kaugusandurit, mis tuvastab, kui objekt on lähemal kui 5 cm, ja seda saab kasutada väga sarnaselt nupule. LED -id näitavad, millal seade ootab tellimusi, kuulab või mõtleb. Servosid, andureid ja LED -e juhib tarkvara raamatukogu GPIOZero.

Prototüüp ehitati Forexi PVC -vahtplaatidest, mida saab lõikurinoaga väga lihtsalt lõigata ja liimida, kuid mis on ka üsna stabiilne. Ehitage julgelt suurem, kenam, täiustatud või väljamõeldud versioon, kuid oleks hea, kui dokumenteeriksite ja esitaksite oma parandused.

Võite kasutada keha mõlemat külge, olenevalt sellest, kas soovite liikuvat varustust esitleda või kena, lastesõbraliku paigutusega. --------- "Hampelmann" on saksakeelne termin "hüppav jack", millel on teatud varjundid.

Samm: kasutatud materjalid

Kasutatud materjalid
Kasutatud materjalid
Kasutatud materjalid
Kasutatud materjalid

Vaarika Pi 3; 32 £ Pimoronis, Suurbritannias

AIY häälkomplekt; 25 naela Ühendkuningriigis Pimoronis

Pololu digitaalse kaugusanduri läbimurre Sharpi anduriga, 5 cm; 5,90 € saidil Exp-tec.de

Kaks 9g servot

Kaks valget LED -i ja takisti

Mõned päised ja hüppajakaablid

2 mm Forex plaat, 250 x 500 mm; 1,70 € Moduloris, Berliinis, Saksamaal

M3 kruvid, mutrid ja seibid kõigi liikuvate osade ühendamiseks. Kasutasin kuut 10 ja nelja 16 mm nailonkruvi.

Kuus M2 kruvi ja mutrit servode kinnitamiseks plaatide külge ning servohoobade ja hammasrataste ühendamiseks.

Paar tilka plastliimi

Samm: seadme kokkupanek ja kasutamine

Seadme kokkupanek ja kasutamine
Seadme kokkupanek ja kasutamine
Seadme kokkupanek ja kasutamine
Seadme kokkupanek ja kasutamine
Seadme kokkupanek ja kasutamine
Seadme kokkupanek ja kasutamine

AIY häälkomplekti enda kohta järgige lihtsalt komplektiga kaasasolevas kirjelduses olevaid juhiseid, sealhulgas jaotist servo kohta. Ma soovitaksin AIY häälkatkestuse servoportidesse joota mitu kolme kontaktiga päist, nii et saate HAT-iga ühendada servod, andurid ja LED-id väga lihtsalt.

Mis puudutab hüppavat pistikut, siis võite siin esitatud jooniseid kasutada mallina svg- ja PDF-failidena või lihtsalt muuta neid vastavalt oma ideedele. Võimalik, et soovite hoida hüppepistiku jalgu ja kätt juhtiva käigu põhipaigutust, tagades, et pöördepunkti ja käigu vaheline kaugus on servo, käe ja jala juures sama.

Teise võimalusena võite koostada ka versiooni, kui käsi ja jalgu juhivad otse neli eraldi servot või täiustatud käik.

Joonist kasutades lõigake tükid Forexi, papist või vineerplaadilt ja puurige augud sobivatesse kohtadesse. Liimige kaugustükid käte ja jalgade pöördepunktidesse, tagades aukude hea joondamise.

Kinnitage servod ja liikuvad osad alusplaadi külge. Lisage kaugusandur ja LED, nagu näidatud. Servod kinnitatakse M2 kruvidega, kõik liikuvad osad M3 kruvidega. Ma kasutasin nailon M3 kruvisid, kuid ainult esteetilistel põhjustel.

Kontrollige, kas servovarred on keskmises asendis. Ühendage servohoovad ja hammasrattad, ma kasutasin selleks M2 kruvisid.

Kinnitage servod, LED -id ja kaugusandur AIY -plaadi servoklemmidele. Teil võib tekkida vajadus pikendus-/hüppajakaablite järele. Ühendasin vasaku servo “servo0” (GPIO 26), parema servo “servo2” (GPIO 13) külge, valgusdioodid “servo5” (GPIO 24) ja anduri AIY külge “servo3” (GPIO 5) külge hääl MÜTS.

Kopeerige pakutav fail „Hampelmann.py” AIY „src” alamkausta ja tehke see kõigile otse käivitatavaks. Selleks võite failihalduris valida faili, seejärel paremklõpsata ja valida Atribuudid, valida Õigused, minna käsule Käivita, valida igaüks. Või kirjutage arendajakonsooli “chmod +x src/Hampelmann.py”.

Kontrollige, kas kõik on paigas ja fikseeritud või vajadusel teisaldatav. Avage käsurea arendaja, sisestage “src/Hampelmann.py” ja käivitage programm. Kui liigutate kätt või sõrmi kaugusanduri ette, küsib AIY -seade tellimusi ja LED -id hakkavad vilkuma. Rakendatud käsud on “parem/vasak/käed üles/alla/keskele”, “tants”, “LED sisse/välja” ja “hüvasti”.

Esita. Liigutage käsi anduri ette, rääkige, kui seda palutakse, ja andke seadmele veidi aega reageerida. Latentsus on üsna kõrge. Crtl+C või “Hüvasti” peatab programmi.

Faili saate muuta Nano või mõne muu lihtsa tekstiredaktori abil.

Märkused: pidage meeles, et mõned sõnad ja terminid tuntakse ära suure algustähega algavate sõnadena, nagu „Keskus” või „Parem Keskus”, teised aga mitte, nt. 'Otse üles'. Mõne toimingu käivitamiseks peate kasutama häältuvastusmooduli antud täpset vormi.

Samm: Pythoni skript

Nagu varem mainitud, põhineb skript AIY hääljuhiste skriptil servo_demo.py, mõned täiendused. Esimene versioon on fail Hampelmann.py, mille leiate manusena. AngularServo GPIOZero'st võimaldab piirata servo tegevuspiirkonda ja täpselt määratleda, kui kaugele see liigub. Kuid ma eelistan Briti häält algsele. Ja seade oskab ka rääkida, kuid ei mõista (?), Inglise, saksa, itaalia, prantsuse ja hispaania keelt. Altpoolt leiate Briti häälega skripti Hampelmann2.py ning natuke itaalia ja saksa keelt. Pidage meeles, et skriptid tuleb nende käivitamiseks muuta käivitatavaks.

#!/usr/bin/env python3 # See skript on kohandus servo_demo.py skriptist AIY häälmütsile, # optimeeritud AIY hüppetõkke importimiseks aiy.audio import aiy.cloudspeech import aiy.voicehat gpiozero import LED -ist alates gpiozero import AngularServo alates gpiozero import Nupp ajast importimine unerežiim def main (): tunnistaja = aiy.cloudspeech.get_recognizer () tunnistaja.expect_phrase ('õige üles') tunnistaja.expect_phrase ('otse alla') tunnistaja.expect_phrase ('Õige Keskel ') # suured tähed on olemas otstarbel äratundja.oota_lause („vasakule üles”) äratundja.oota_väljend („vasakule alla”) tunnistaja.oota_väljend („vasak keskele”) tunnistaja.oota_väljend („käed üles”) tunnistaja.oota_väljend ("käed alla") tunnistaja.expect_phrase ("käed keskel") tunnistaja.expect_phrase ("tants") tunnistaja.expect_phrase ("LED on") tunnistaja.expect_phrase ("LED väljas") tunnistaja.expect_phrase ("hüvasti") aiy.audio.get_recorder (). start () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # 1st connect või, GPIO 26 servo2 = AngularServo (13, min_angle = -40, max_angle = 40) # 3. pistik, GPIO 13 led0 = LED (24) # LED on ühendatud servo5/GPIO 24 distance = nupp (5) # kaugusandur on ühendatud to servo3/GPIO 05 # others: GPIO 6 at servo1, 12 at servo4 aiy.audio.say ("Tere!",) aiy.audio.say ("Alustamiseks liigutage käsi anduri lähedale"), samas kui True: led0.on () # LED -d printimisel ("Hääletuvastuse aktiveerimiseks liigutage käsi kaugusanduri lähedale ja seejärel rääkige") print ("Oodatud märksõnad on: käed/vasak/parem üles/alla/keskele,") print ('LED sisse/välja, tants ja hüvasti.') print () distance.wait_for_press () print ('Kuulamine …') aiy.audio.say ("Palun anna oma tellimused",) led0.blink () # light vilgub tekst = äratundja.tunnista (), kui tekst on Puudub: aiy.audio.say ('Vabandust, ma ei kuulnud sind.',) else: print ('Sa ütlesid ", tekst," "') # Võimaldab sul kontrollige süsteemide tõlgendust, kas tekstis on "õige üles": print ("Servo0 liigutamine maksimaalsesse asendisse") servo0.angle = 35 elif "paremale alla" tekstis: print ('Servo0 liigutamine minimaalsele positsioonile ') servo0.angle = -35 elif' Paremale keskele 'tekstis: #korrektsed vangistused on kriitilise tähtsusega print (' Servo0 viimine keskmisesse asendisse ') servo0.angle = 0 elif' vasakule 'tekstis: print (' Servo2 liigutamine maksimaalsesse asendisse ') servo2.angle = -35 elif' vasakule alla 'tekstis: print (' Servo2 liigutamine minimaalsesse asendisse ') servo2.angle = 35 elif' vasak keskel 'tekstis: print (' Servo2 teisaldamine keskmine asend ') servo2.angle = 0 elif' käed üles 'tekstis: print (' Servo2 liigutamine maksimaalsesse asendisse ') servo2.angle = -35 servo0.angle = 35 elif' käed alla 'tekstis: print (' Moving servo2 minimaalsesse asendisse ') servo2.angle = 35 servo0.angle = -35 elif' käed keskel 'tekstis: print (' Servo2 liigutamine keskmisesse asendisse ') servo2.angle = 0 servo0.angle = 0 elif' LED off ' tekstis: print ('välise LED 0 väljalülitamine') led0.off () elif 'LED on' tekstis: print ('välise LED 0 sisselülitamine') led0.on () # light elif 'dance' tekstis: print ('praegu esitav tants number üks') aiy.audio.say ("Noh, ma proovin endast parima!",) led0.on () # tuled põlevad i jaoks vahemikus (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 'hüvasti' tekstis: aiy.audio.say ("Hüvasti",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) servo0.angle = 0 servo2.angle = 0 led0.off () uni (3) print ('bye!') break else: print ('märksõna ei tuvastatud!') aiy.audio.say ("Vabandust, ma ei saanud sinust aru",) kui _name_ == ' _main_ ': main ()

Soovitan: