Sisällysluettelo:

Ääniohjattu hyppyliitin- Google Voice AIY -versio: 3 vaihetta
Ääniohjattu hyppyliitin- Google Voice AIY -versio: 3 vaihetta

Video: Ääniohjattu hyppyliitin- Google Voice AIY -versio: 3 vaihetta

Video: Ääniohjattu hyppyliitin- Google Voice AIY -versio: 3 vaihetta
Video: Путеводитель, как в полной мере насладиться возрожденной Токийской башней в 2023 году (Токио Япония) 2024, Joulukuu
Anonim
Ääniohjattu hyppyliitin- Google Voice AIY -versio
Ääniohjattu hyppyliitin- Google Voice AIY -versio
Ääniohjattu hyppyliitin- Google Voice AIY -versio
Ääniohjattu hyppyliitin- Google Voice AIY -versio
Ääniohjattu hyppyliitin- Google Voice AIY -versio
Ääniohjattu hyppyliitin- Google Voice AIY -versio
Ääniohjattu hyppyliitin- Google Voice AIY -versio
Ääniohjattu hyppyliitin- Google Voice AIY -versio

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

Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
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ö

Laitteen kokoaminen ja käyttö
Laitteen kokoaminen ja käyttö
Laitteen kokoaminen ja käyttö
Laitteen kokoaminen ja käyttö
Laitteen kokoaminen ja käyttö
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: