Satura rādītājs:

Ar balsi kontrolējams lēciens- Google Voice AIY versija: 3 soļi
Ar balsi kontrolējams lēciens- Google Voice AIY versija: 3 soļi

Video: Ar balsi kontrolējams lēciens- Google Voice AIY versija: 3 soļi

Video: Ar balsi kontrolējams lēciens- Google Voice AIY versija: 3 soļi
Video: ФИНАЛЬНЫЙ БОСС Часть 2 #6 Прохождение Bloodstained: Ritual of the Night 2024, Novembris
Anonim
Ar balsi kontrolējams lecamais domkrats- Google Voice AIY versija
Ar balsi kontrolējams lecamais domkrats- Google Voice AIY versija
Ar balsi kontrolējams lecamais domkrats- Google Voice AIY versija
Ar balsi kontrolējams lecamais domkrats- Google Voice AIY versija
Ar balsi kontrolējams lecamais domkrats- Google Voice AIY versija
Ar balsi kontrolējams lecamais domkrats- Google Voice AIY versija
Ar balsi kontrolējams lecamais domkrats- Google Voice AIY versija
Ar balsi kontrolējams lecamais domkrats- Google Voice AIY versija

Tātad jūs esat ieguvis šo AIY balss komplektu Ziemassvētkiem un spēlējāties ar to, ievērojot norādījumus. Tas ir smieklīgi, bet tagad?

Turpmāk aprakstītais projekts piedāvā vienkāršu ierīci, kuru var izveidot, izmantojot AIY balss HAT Raspberry Pi. Tas izmanto Google balss atpazīšanas sistēmu, lai kontrolētu gaismas diodes un divus servos, ar ļoti vienkāršu pārnesumu vadot lecošā domkrata rokas un kājas.

Fonā strādājošā programmatūra ir servo_demo.py skripta modifikācija, kā tas ir aprakstīts AIY balss komplekta rokasgrāmatā. Vienkārši izpildiet tur sniegtos norādījumus, lai iestatītu cieto un programmatūru. Ierīci ir viegli uzbūvēt, un tai nav vajadzīgas daudz rokdarbu prasmes. Turklāt būtu noderīgs griezējnazis, urbis un lodāmurs.

Ja aktivizējat balss atpazīšanas sistēmu ar plaukstas mirkšķināšanu un sakāt “rokas uz augšu”, lēciena domkrats pacels rokas un kājas, “roku centrs” pārvietos abus servos vidējā pozīcijā, bet “rokas uz leju” - rokas un kājas. nolaist. No kreisās puses uz augšu kreisā roka un kājas tiks paceltas, bet “pa labi uz leju” - nolaistās, uz labo pusi - otrādi. "Deja", liks tai dejot, nu vismaz sava veida. Tas arī runā, lūdzu, ieskatieties pievienotajā video.

Tātad ar nelielām pūlēm jūs varat izveidot savu dejojošo, tērzējošo un dziedošo robotu.

Lai vienkāršotu tā lietošanu, jo īpaši maziem bērniem, un lai uzlabotu “burvju” faktoru, AIY kastes pogu kā sprūdu nomainīja tuvuma sensors. Vienkāršības labad es izmantoju Pololu digitālo attāluma sensoru, kas atpazīst, vai objekts ir tuvāk par 5 cm, un to var izmantot ļoti līdzīgi pogai. Gaismas diodes norāda, kad ierīce gaida pasūtījumus, klausās vai “domā”. Servo, sensoru un gaismas diodes kontrolē GPIOZero programmatūras bibliotēka.

Prototips tika veidots no Forex, PVC putuplasta plāksnēm, kuras var ļoti viegli sagriezt ar griezējnazi un pielīmēt, bet ir arī diezgan stabils. Jūtieties brīvi izveidot lielāku, jaukāku, uzlabotu vai izsmalcinātāku versiju, taču būtu laipni, ja dokumentētu un prezentētu savus uzlabojumus.

Jūs varat izmantot abas ķermeņa puses atkarībā no tā, vai vēlaties uzrādīt kustīgo aprīkojumu vai jauku, bērniem draudzīgu izkārtojumu. --------- "Hampelmann" ir vācu valodas termins "lecošais džeks", kam ir noteikta pieskaņa.

1. darbība. Izmantotie materiāli

Izmantotie materiāli
Izmantotie materiāli
Izmantotie materiāli
Izmantotie materiāli

Raspberry Pi 3; 32 £ Pimoroni, Lielbritānijā

AIY balss komplekts; 25 £ Pimoroni, Lielbritānijā

Pololu digitālā attāluma sensora izlaušanās ar Sharp sensoru, 5 cm; 5,90 € vietnē Exp-tec.de

Divi 9 g servo

Divas baltas gaismas diodes un rezistors

Dažas galvenes un pārejas kabeļi

2 mm Forex plāksne, 250 x 500 mm; 1,70 € Modulorā, Berlīnē, Vācijā

M3 skrūves, uzgriežņi un paplāksnes, lai savienotu visas kustīgās daļas. Es izmantoju sešas 10 un četras 16 mm neilona skrūves.

Sešas M2 skrūves un uzgriežņi, lai piestiprinātu servos pie plāksnēm un savienotu servosargus un zobratus.

Daži pilieni plastmasas līmes

2. darbība: ierīces montāža un lietošana

Ierīces montāža un lietošana
Ierīces montāža un lietošana
Ierīces montāža un lietošana
Ierīces montāža un lietošana
Ierīces montāža un lietošana
Ierīces montāža un lietošana

Attiecībā uz pašu AIY balss komplektu vienkārši izpildiet komplektā iekļautajā aprakstā sniegtos norādījumus, ieskaitot sadaļu par servo. Es ieteiktu pielodēt AIY balss pārrāvuma servoportos vairākas trīs kontaktu galvenes, lai ar HAT varētu ļoti viegli savienot servosistēmas, sensorus un gaismas diodes.

Attiecībā uz lecošo domkratu, jūs varat vai nu izmantot šeit sniegtos zīmējumus kā svg- un PDF failus kā veidni, vai vienkārši pārveidot tos atbilstoši savām idejām. Jūs varētu vēlēties saglabāt pamata pārnesuma izkārtojumu, kas virza lēciena domkrata kājas un roku, nodrošinot, ka attālums starp pagrieziena punktu un pārnesumu pie servo, rokas un kājas ir vienāds.

Varat arī izveidot versiju, ja rokas un kājas vada tieši ar četriem atsevišķiem servopārvadātājiem vai ar modernāku pārnesumu.

Izmantojot zīmējumu, izgrieziet gabalus no Forex, kartona vai saplākšņa plāksnes un urbiet caurumus attiecīgajās vietās. Līmējiet attāluma gabalus pie roku un kāju grozāmiem punktiem, nodrošinot labu caurumu izlīdzināšanu.

Piestipriniet servo un kustīgās daļas pie pamatnes. Pievienojiet attāluma sensoru un gaismas diodi, kā norādīts. Servos ir fiksētas ar M2 skrūvēm, visas kustīgās daļas ar M3 skrūvēm. Es izmantoju neilona M3 skrūves, bet tikai estētisku apsvērumu dēļ.

Pārbaudiet, vai servo sviras ir novietotas vidējā stāvoklī. Savienojiet servo sviras un pārnesumus, šim nolūkam es izmantoju M2 skrūves.

Pievienojiet servo, gaismas diodes un attāluma sensoru AIY plates servo savienotājiem. Jums var būt nepieciešami daži pagarinājuma/džemperu kabeļi. Es pievienoju kreiso servo “servo0” (GPIO 26), labo servo “servo2” (GPIO 13), gaismas diodes - “servo5” (GPIO 24) un sensoru AIY “servo3” (GPIO 5) balss CEPURIS.

Kopējiet piedāvāto “Hampelmann.py” failu AIY “src” apakšmapē un padariet to tieši izpildāmu ikvienam. Lai to izdarītu, failu pārvaldniekā varat atlasīt failu, pēc tam ar peles labo pogu noklikšķiniet un atlasiet Rekvizīti, atlasiet Atļaujas, dodieties uz Izpildīt, atlasiet ~ ikviens. Vai arī izstrādātāja konsolē ierakstiet “chmod +x src/Hampelmann.py”.

Pārbaudiet, vai viss ir uzstādīts vietā un fiksēts, vai, ja nepieciešams, ir pārvietojams. Atveriet komandrindu Dev, ievadiet “src/Hampelmann.py” un palaidiet programmu. Ja pārvietojat roku vai pirkstus attāluma sensora priekšā, AIY iekārta lūgs pasūtījumus un gaismas diodes mirgos. Īstenotie rīkojumi ir “pa labi/pa kreisi/rokas uz augšu/uz leju/centrs”, “deja”, “LED ieslēgšana/izslēgšana” un “ardievas”.

Spēlēt. Pārvietojiet roku sensora priekšā, runājiet, kad tiek prasīts, un dodiet ierīcei nedaudz laika reaģēt. Latentums ir diezgan augsts. Crtl+C vai “Goodbye” pārtrauks programmu.

Jūs varat modificēt failu, izmantojot Nano vai citu vienkāršu teksta redaktoru.

Piezīmes: Lūdzu, ņemiet vērā, ka daži vārdi un termini tiek atpazīti kā vārdi, kas sākas ar lielo burtu, kā “Centrs” vai “Labais centrs”, bet citi nav, piem. 'Tieši uz augšu'. Lai aktivizētu kādu darbību, jums jāizmanto precīza balss atpazīšanas moduļa sniegtā forma.

3. darbība: Python skripts

Kā minēts iepriekš, skripts ir balstīts uz servo_demo.py skriptu no AIY balss instrukcijām, ar dažiem papildinājumiem. Pirmā versija ir pievienots Hampelmann.py fails. AngularServo no GPIOZero ļauj ierobežot servo darbības diapazonu un precīzi noteikt, cik tālu jāpārvietojas. Bet es dodu priekšroku britu balsij, nevis sākotnējai. Un ierīce var arī runāt, bet nesaprast (?), Angļu, vācu, itāļu, franču un spāņu valodu. Zemāk jūs atradīsit Hampelmann2.py skriptu ar britu balsi un mazliet itāļu un vācu valodu. Lūdzu, ņemiet vērā, ka skripti ir jāizpilda, lai tos palaistu.

#!/usr/bin/env python3 # Šis skripts ir servo_demo.py skripta adaptācija AIY balss HAT, # optimizēta AIY lecošā domkrata importēšanai aiy.audio import aiy.cloudspeech import aiy.voicehat no gpiozero importēšanas LED no gpiozero importa AngularServo no gpiozero importa Poga no laika importēšanas miega def main (): atpazīšanas ierīce = aiy.cloudspeech.get_recognizer () tunnizētājs.expect_frāze ('uz augšu') atpazīšanas ierīce.expect_frāze ('pa labi uz leju') atpazīšana.expect_phrase ('Pa labi Centrs ') # lielie burti tur ir ar nolūku atpazīšanas līdzeklis.gaidīt_frāze (' pa kreisi ') atpazītājs.gaidīt frāze (' pa kreisi uz leju ') atpazītājs.gaidīt frāze (' kreisais centrs ') atpazītājs.gaidīt_frāze (' rokas uz augšu ') atpazītājs.redzēt frāzi ('nolaistas rokas') atpazīšanas ierīce.expect_phrase ('roku centrs') atpazīšanas ierīce.expect_phrase ('deju') atpazīšanas ierīce.expect_frāze ('gaismas diode ieslēgta') atpazīšanas iekārta.expect_frāze ('gaismas diode izslēgta') atpazīšanas ierīce.expect_phrase ('uz redzēšanos') ai.audio.get_recorder (). start () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # pirmais savienojums vai, GPIO 26 servo2 = AngularServo (13, min_angle = -40, max_angle = 40) # 3. savienotājs, GPIO 13 led0 = LED (24) # LED ir savienoti ar servo5/GPIO 24 distance = Poga (5) # pievienots attāluma sensors uz servo3/GPIO 05 # citi: GPIO 6 pie servo1, 12 pie servo4 aiy.audio.say ("Sveiki!",) aiy.audio.say ("Lai sāktu, pārvietojiet roku tuvu sensoram"), bet True: led0.on () # gaismas diodes uz drukas ("Lai aktivizētu balss atpazīšanu, pārvietojiet roku tuvumā attāluma sensoram, pēc tam runājiet") drukāt ('Paredzētie atslēgvārdi ir: rokas/pa kreisi/pa labi uz augšu/uz leju/centrs,') print ('LED ieslēgts/izslēgts, dejo un ardievas.') print () distance.wait_for_press () print ('Klausīšanās …') aiy.audio.say ("Lūdzu, dod pasūtījumus",) led0.blink () # light mirkšķināt tekstu = atpazītājs.atzīt (), ja teksts nav: aiy.audio.say ('Atvainojiet, es jūs nedzirdēju.',) cits: print ('Jūs teicāt' ', teksts' '') # Ļauj pārbaudiet sistēmas interpretāciju, ja teksts ir “uz augšu”: print (“Servo0 pārvietošana uz maksimālo pozīciju”) servo0.angle = 35 elif “pa labi uz leju” tekstā: print ('Moving servo0 līdz minimālajai pozīcijai ') servo0.angle = -35 elif' Labais centrs 'tekstā: #pareizi uzraksti ir kritiski drukāti (' Servo0 pārvietošana uz vidējo pozīciju ') servo0.angle = 0 elif' pa kreisi 'tekstā: print (' Servo2 pārvietošana uz maksimālo pozīciju ') servo2.angle = -35 elif' pa kreisi uz leju 'tekstā: print (' Servo2 pārvietošana uz minimālo pozīciju ') servo2.angle = 35 elif' kreisais centrs 'tekstā: print (' Servo2 pārvietošana uz vidējā pozīcija ') servo2.angle = 0 elif' rokas uz augšu 'tekstā: print (' Servo2 pārvietošana uz maksimālo pozīciju ') servo2.angle = -35 servo0.angle = 35 elif' rokas uz leju 'tekstā: print (' Moving servo2 līdz minimālajai pozīcijai. tekstā: print ('ārējā LED izslēgšana 0') led0.off () elif 'LED on' tekstā: print ('ieslēdzot ārējo LED 0') led0.on () # light elif 'dance' in text: print ('tagad izpilda deju numur viens') aiy.audio.say ("Nu, es centīšos visu iespējamo!",) led0.on () # gaismas ieslēgtas i diapazonā (3): servo0.angle = 0 servo2.angle = 0 miega (1) servo0.angle = 35 servo2.angle = -35 miega (1) servo0.angle = 0 servo2.angle = -35 miega (1) servo0.angle = -25 servo2.angle = 0 miega (1) servo0.angle = 30 servo2.angle = 20 miega (1) servo0.angle = 0 servo2.angle = 0 led0.off () # gaismas izslēgts elifs 'goodbye' tekstā: aiy.audio.say ("Goodbye",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) servo0.angle = 0 servo2.angle = 0 led0.off () gulēt (3) print ('bye!') break else: print ('neviens atslēgvārds nav atpazīts!') aiy.audio.say ("Atvainojiet, es jūs nesapratu",) ja _name_ == ' _main_ ': main ()

Ieteicams: