Sisällysluettelo:
Video: Ääniohjattu hyppyliitin- Google Voice AIY -versio: 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Joten sinulla on AIY -äänipaketti jouluksi ja olet leikkinyt sen kanssa ohjeiden mukaan. Se on hauskaa, mutta nyt?
Seuraavassa kuvattu projekti esittelee yksinkertaisen laitteen, joka voidaan rakentaa käyttämällä AIY -äänihattua Raspberry Pi: lle. Se käyttää Googlen puheentunnistusjärjestelmää LEDien ja kahden servon ohjaamiseen.
Taustalla toimiva ohjelmisto on servo_demo.py -komentosarjan muunnelma, kuten AIY -äänisarjan käyttöoppaassa on kuvattu. Asenna laitteisto ja ohjelmisto vain noudattamalla siellä annettuja ohjeita. Laite on helppo rakentaa eikä vaadi paljon käsityötaitoja. Lisäksi leikkuriveitsi, pora ja juotin ovat hyödyllisiä.
Jos aktivoit puheentunnistusjärjestelmän silmänräpäyksellä ja sanot "kädet ylös", hyppypistoke nostaa kädet ja jalat, "kädet keskellä" siirtää molemmat servot keskiasentoon ja kädet alas -kädet ja -jalat laskeutua. Vasemmalla ylöspäin vasen käsi ja jalat nostetaan ja "oikealla alas" oikeat lasketaan, "oikealla ylös" päinvastoin. "Tanssi" saa sen tanssimaan, ainakin tavallaan. Se myös puhuu, katsokaa oheista videota.
Joten pienellä vaivalla voit rakentaa oman tanssivan, juttelevan ja laulavan robotin.
Sen käytön helpottamiseksi erityisesti pienemmillä lapsilla ja "taika" -tekijän parantamiseksi AIY -laatikon painike korvattiin laukaisimena läheisyysanturilla. Yksinkertaisuutensa vuoksi käytin Pololun digitaalista etäisyysanturia, joka tunnistaa, onko kohde lähempänä kuin 5 cm, ja sitä voidaan käyttää hyvin kuin painiketta. LEDit osoittavat, milloin laite odottaa tilauksia, kuuntelee tai”ajattelee”. Servoja, anturia ja LED -valoja ohjaa GPIOZero -ohjelmistokirjasto.
Prototyyppi rakennettiin Forex -PVC -vaahtolevyistä, jotka voidaan leikata erittäin helposti leikkuuterällä ja liimata, mutta on myös melko vakaa. Voit vapaasti rakentaa suuremman, mukavamman, parannetun tai hienomman version, mutta olisi ystävällistä, jos dokumentoisit ja esittelisit parannuksesi.
Voit käyttää rungon molempia puolia sen mukaan, haluatko esitellä liikkuvan vaihteen tai sinulla on mukava, lapsiystävällinen ulkoasu. --------- "Hampelmann" on saksankielinen termi "jumping Jack", jolla on tiettyjä merkityksiä.
Vaihe 1: Käytetyt materiaalit
Vadelma Pi 3; 32 £ Pimoronissa, Iso -Britanniassa
AIY -äänisarja; 25 £ Pimoronissa, Iso -Britanniassa
Pololu digitaalinen etäisyysanturi, Sharp -anturi, 5 cm; 5,90 € Exp-tec.de-sivustolta
Kaksi 9 g servoa
Kaksi valkoista LEDiä ja vastus
Jotkut otsikot ja kytkentäkaapelit
2 mm: n Forex -levy, 250 x 500 mm; 1,70 € Modulorissa, Berliini, Saksa
M3 -ruuvit, mutterit ja aluslevyt kaikkien liikkuvien osien liittämiseen. Käytin kuutta 10 ja neljää 16 mm: n nailonruuvia.
Kuusi M2 -ruuvia ja mutteria servojen kiinnittämiseen levyihin ja servovarsien ja -vaihteiden liittämiseen.
Muutama tippa muoviliimaa
Vaihe 2: Laitteen kokoaminen ja käyttö
Mitä tulee AIY -äänisarjaan, noudata vain pakkauksen mukana tulevan kuvauksen ohjeita, mukaan lukien servoa käsittelevä osa. Suosittelen juottamaan useita kolminapaisia otsikoita AIY-äänisarjan servoportteihin, joten voit liittää servot, anturit ja LEDit erittäin helposti HAT: n avulla.
Mitä tulee hyppyliittimeen, voit joko käyttää tässä esittämiäni piirroksia svg- ja PDF-tiedostoina mallina tai muokata niitä omien ideoidesi mukaan. Voit halutessasi säilyttää hyppytangon jalkoja ja käsivarsia käyttävän vaihteiston perusasettelun varmistaen, että kääntöpisteen ja vaihteen välinen etäisyys on sama servossa, käsivarsissa ja jaloissa.
Vaihtoehtoisesti voit myös rakentaa version, jos käsiä ja jalkoja käytetään suoraan neljällä erillisellä servolla tai kehittyneemmällä vaihteella.
Leikkaa piirustuksen avulla palaset Forex-, pahvi- tai vanerilevystä ja poraa reiät sopiviin kohtiin. Liimaa etäisyyskappaleet käsivarsien ja jalkojen kääntöpisteisiin varmistaen reikien kohdistus.
Kiinnitä servot ja liikkuvat osat pohjalevyyn. Lisää etäisyysanturi ja LED ohjeiden mukaan. Servot kiinnitetään M2 -ruuveilla, kaikki liikkuvat osat M3 -ruuveilla. Käytin Nylon M3 -ruuveja, mutta vain esteettisistä syistä.
Tarkista, ovatko servovarret keskiasennossa. Yhdistä servovarret ja hammaspyörät, käytin tähän tarkoitukseen M2 -ruuveja.
Kiinnitä servot, LEDit ja etäisyysanturi AIY -kortin servoliittimiin. Saatat tarvita pidennys-/hyppyjohtoja. Kiinnitin vasemman servon servo0: een (GPIO 26), oikean servon servo2: een (GPIO 13), LEDit servo5: een (GPIO 24) ja anturin AIY: n servo3: een (GPIO 5) ääni HAT.
Kopioi toimitettu "Hampelmann.py" -tiedosto AIY "src" -alikansioon ja tee se suoraan suoritettavaksi kenelle tahansa. Voit tehdä tämän valitsemalla tiedoston tiedostonhallinnassa, napsauttamalla hiiren kakkospainikkeella ja valitsemalla Ominaisuudet, valitsemalla Käyttöoikeudet, siirtymällä Suorita ja valitsemalla ~ kuka tahansa. Tai kirjoita kehittäjäkonsoliin "chmod +x src/Hampelmann.py".
Tarkista, onko kaikki paikoillaan ja kiinteä tai tarvittaessa siirrettävissä. Avaa Dev -komentorivi, kirjoita”src/Hampelmann.py” ja käynnistä ohjelma. Jos siirrät kättäsi tai sormiasi etäisyysanturin eteen, AIY -yksikkö pyytää tilauksia ja LED -valot vilkkuvat. Toteutetut käskyt ovat "oikea/vasen/kädet ylös/alas/keskelle", "tanssi", "LED päälle/pois" ja "hyvästi".
Pelata. Siirrä kätesi anturin eteen, puhu pyydettäessä ja anna laitteelle vähän aikaa reagoida. Latenssi on melko korkea. Crtl+C tai “Hyvästi” pysäyttää ohjelman.
Voit muokata tiedostoa nanolla tai muulla yksinkertaisella tekstieditorilla.
Huomautuksia: Huomaa, että jotkut sanat ja termit tunnistetaan isoilla kirjaimilla alkaviksi sanoiksi”Keskusta” tai”Oikea keskusta”, kun taas toiset eivät, esim.’Aivan ylös’. Sinun on käytettävä tarkkaa puheentunnistusmoduulin antamaa lomaketta jonkin toiminnon käynnistämiseksi.
Vaihe 3: Python -skripti
Kuten aiemmin mainittiin, komentosarja perustuu AIY -ääniohjeiden servo_demo.py -komentosarjaan, johon on lisätty joitakin lisäyksiä. Ensimmäinen versio on liitteenä oleva Hampelmann.py -tiedosto. GPIOZeron AngularServon avulla voit rajoittaa servon toiminta -aluetta ja määrittää tarkasti, kuinka pitkälle on siirrettävä, mutta mieluummin brittiläinen ääni kuin alkuperäinen. Laite voi myös puhua, mutta ei ymmärtää (?), Englantia, saksaa, italiaa, ranskaa ja espanjaa. Alta löydät Hampelmann2.py -käsikirjoituksen brittiläisellä äänellä ja hieman italiaa ja saksaa. Muista, että sinun on tehtävä skriptit suoritettavaksi niiden suorittamiseksi.
#!/usr/bin/env python3 # Tämä skripti on mukautus servo_demo.py -komentosarjasta AIY -äänihatulle, # optimoitu AIY -hyppyliittimelle tuonti aiy.audio tuonti aiy.cloudspeech tuonti aiy.voicehat gpiozeron tuonti -LEDistä gpiozeron tuonnista AngularServo gpiozeron tuonnista Painike ajan tuonnin lepotilasta def main (): tunnistin = aiy.cloudspeech.get_recognizer () tunnistaja.expect_phrase ('oikealle') tunnistaja.expect_phrase ('oikea alas') tunnistin.expect_phrase ('Oikea Center ') # isot kirjaimet ovat tarkoituksellisesti tunnistin.expect_phrase (' vasen ylös ') tunnistaja.expect_phrase (' vasen alas ') tunnistaja.expect_phrase (' left Center ') tunnistaja.expect_phrase (' kädet ylös ') tunnistin.expect_phrase (`` kädet alas '') tunnistaja.expect_phrase (`` kädet keskellä '') tunnistaja.expect_phrase ('tanssi') tunnistaja.expect_phrase ('LED palaa') tunnistin.expect_phrase ('LED pois päältä') tunnistin.expect_phrase ('hyvästi') aiy.audio.get_recorder (). start () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # 1st connect tai, GPIO 26 servo2 = AngularServo (13, min_angle = -40, max_angle = 40) # 3. liitin, GPIO 13 led0 = LED (24) # LED on liitetty servo5/GPIO 24 distance = -painike (5) # etäisyysanturi kytketty to servo3/GPIO 05 # others: GPIO 6 at servo1, 12 at servo4 aiy.audio.say ("Hei!",) aiy.audio.say ("Aloita siirtämällä käsi lähelle anturia"), kun taas True: led0.on () # LED -valoa tulostettaessa ("Aktivoi äänentunnistus siirtämällä käsi lähelle etäisyysanturia ja puhu sitten") print ('Odotetut avainsanat ovat: kädet/vasen/oikea ylös/alas/keskelle,') print ('LED päälle/pois, tanssi ja hyvästit.') print () distance.wait_for_press () print ('kuunteleminen …') aiy.audio.say ("Anna tilauksesi",) led0.blink () # valo vilkkuva teksti = tunnistin.tunnistaa () jos teksti on Ei mitään: aiy.audio.say ('Anteeksi, en kuullut sinua.'),) else: print ('Sanoit ", teksti," "') # Antaa tarkista järjestelmän tulkinta, jos teksti on "oikealla": print ("Servo0: n siirtäminen maksimiasentoon") servo0.angle = 35 elif 'oikealle alas' tekstissä: print ('Moving servo0 minimiasentoon ') servo0.angle = -35 elif' Oikea keskikohta 'tekstissä: #correct captials are kriittinen print (' Servon siirtäminen keskiasentoon ') servo0.angle = 0 elif' vasemmalle 'tekstissä: print (' Servo2: n siirtäminen maksimiasentoon ') servo2.angle = -35 elif' vasen alas 'tekstissä: print (' Servo2: n siirtäminen minimiasentoon ') servo2.angle = 35 elif' vasen keskikohta 'tekstissä: print (' Servo2: n siirtäminen keskiasento ') servo2.angle = 0 elif' kädet ylös 'tekstissä: print (' Servon siirtäminen maksimiasentoon ') servo2.angle = -35 servo0.angle = 35 elif' kädet alas 'tekstissä: print (' Moving servo2 minimiasentoon ') servo2.angle = 35 servo0.angle = -35 elif' kädet Keskellä 'tekstissä: print (' Servo2: n siirtäminen keskiasentoon ') servo2.angle = 0 servo0.angle = 0 elif' LED off ' tekstissä: print ('ulkoisen LED -valon sammuttaminen 0') led0.off () elif 'LED on' tekstissä: print ('ulkoisen LED -valon kytkeminen päälle') led0.on () # light elif 'dance' tekstissä: tulosta ('nyt esiintyvä tanssi numero yksi') aiy.audio.say ("No, yritän parhaani!",) led0.on () # valot päällä i alueella (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 'hyvästi' tekstissä: aiy.audio.say ("Hyvästi",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) servo0.angle = 0 servo2.angle = 0 led0.off () uni (3) tulosta ('heippa!') tauko else: tulosta ('ei avainsanaa tunnistettu!') aiy.audio.say ("Anteeksi, en ymmärtänyt sinua",) jos _name_ == ' _main_ ': main ()
Suositeltava:
Alexa -pohjainen ääniohjattu raketinheitin: 9 vaihetta (kuvilla)
Alexa -pohjainen ääniohjattu raketinheitin: Talvikauden lähestyessä; tulee se aika vuodesta, jolloin valon juhlaa vietetään. Kyllä, puhumme Diwalista, joka on todellinen intialainen festivaali, jota vietetään ympäri maailmaa. Tänä vuonna Diwali on jo ohi ja nähdään ihmisiä
Alexa Ääniohjattu Raspberry Pi Drone IoT: llä ja AWS: llä: 6 vaihetta (kuvilla)
Alexa Ääniohjattu Raspberry Pi Drone IoT: llä ja AWS: llä: Hei! Nimeni on Armaan. Olen 13-vuotias Massachusettsin poika. Tämä opetusohjelma näyttää, kuten voit päätellä otsikosta, kuinka rakentaa Raspberry Pi Drone. Tämä prototyyppi osoittaa, kuinka dronit kehittyvät ja kuinka suuri rooli niillä voi olla
COVID-19-innoittama ääniohjattu koti-automaatio: 5 vaihetta
COVID-19-innoittama ääniohjattu kotiautomaatio: Noin viimeisen neljän vuoden aikana olen kokeillut 3 tai 4 erilaista Arduino-pohjaisen kodin ohjaimen muunnelmaa. Kaikkien mukavuuden vuoksi tässä on joidenkin kehitysteni kronologinen historia. Instructable 1 - lokakuussa 2015 käytettiin IR- ja RF -kommunikaatiota
Ääniohjattu älyavaimen pidike: 3 vaihetta (kuvilla)
Ääniohjattu älyavaimen haltija: Oletko sellainen henkilö, joka ei osaa hallita avaimia ja joutuu aina kokeilemaan jokaista avainta jokaista muuta lukkoa varten? aivan oma ääniohjattu älykäs avaimenpidike
Koti/Lab -ääniohjattu avustaja: 14 vaihetta (kuvien kanssa)
Koti/Lab -ääniohjattu avustaja: Tietoja minustaHello! Tämä on ensimmäinen ohjeeni, olen 17 -vuotias. Olen kreikkalainen, joten englannini ei ehkä ole täydellinen, mutta teen parhaani. Joten suunnittelin tämän sovelluksen ensin 2 vuotta sitten ja löysin tämän kilpailun tilaisuuden päivittää vanha projektini