Taula de continguts:

Un salt de control controlat per veu: versió de Google Voice AIY: 3 passos
Un salt de control controlat per veu: versió de Google Voice AIY: 3 passos

Vídeo: Un salt de control controlat per veu: versió de Google Voice AIY: 3 passos

Vídeo: Un salt de control controlat per veu: versió de Google Voice AIY: 3 passos
Vídeo: Шумеры - падение первых городов 2024, Desembre
Anonim
Un salt de control controlat per veu: versió de Google Voice AIY
Un salt de control controlat per veu: versió de Google Voice AIY
Un salt de control controlat per veu: versió de Google Voice AIY
Un salt de control controlat per veu: versió de Google Voice AIY
Un salt de control controlat per veu: versió de Google Voice AIY
Un salt de control controlat per veu: versió de Google Voice AIY
Un salt de control controlat per veu: versió de Google Voice AIY
Un salt de control controlat per veu: versió de Google Voice AIY

Per tant, teniu aquest kit de veu AIY per Nadal i hi heu estat jugant seguint les instruccions. És curiós, però ara?

El projecte que es descriu a continuació presenta un dispositiu senzill que es pot construir mitjançant el AIAT de veu HAT per al Raspberry Pi. Utilitza el sistema de reconeixement de veu de Google per controlar els LED i dos servos, conduint els braços i les cames d’un gat saltant mitjançant un equip molt senzill.

El programari que funciona en segon pla és una modificació de l'script servo_demo.py, tal com s'ha descrit al manual del kit de veu AIY. Només cal que seguiu les instruccions que s’hi donen per configurar programari i programari. El dispositiu en si és fàcil de construir i no requereix gaire habilitat artesanal. A més, seria útil un ganivet, un trepant i un soldador.

Si activeu el sistema de reconeixement de veu amb una picada d'ullet a la mà i dieu "mans amunt", el gat saltador elevarà les mans i les cames, el "centre de les mans" mourà els dos servos a la posició central i, a les mans baixes, les mans i les cames ser rebaixat. A l’esquerra cap amunt s’aixecaran la mà esquerra i les cames i a la “dreta cap avall” es baixaran les dretes, a la dreta cap amunt, a la inversa. "Ballar", el farà ballar, almenys una mena de. També parla, si us plau, mireu el vídeo adjunt.

Així, amb pocs esforços, podeu construir el vostre propi robot de ball, xerrada i cant.

Per simplificar-ne l’ús, especialment per als nens més petits, i per millorar el factor ‘màgic’, el botó del quadre AIY es va substituir com a activador per un sensor de proximitat. Per la seva simplicitat, he utilitzat un sensor digital de distància de Pololu que reconeix si un objecte té més de 5 cm i es pot utilitzar com un botó. Els LED indiquen quan el dispositiu espera comandes, escolta o "pensa". Els servos, els sensors i els LED estan controlats per la biblioteca de programari GPIOZero.

El prototip es va construir a partir de plaques d’escuma de Forex, Forex, que es poden tallar molt fàcilment amb un ganivet tallador i enganxar-les, però també són bastant estables. No dubteu a construir una versió més gran, més maca, millorada o més elegant, però seria bo que documentéssiu i presentéssiu les vostres millores.

Podeu utilitzar els dos costats del cos, segons si vulgueu presentar l’engranatge en moviment o tenir un disseny agradable i adequat per als nens. --------- "Hampelmann" és el terme alemany per a "salt saltador", que té certes connotacions.

Pas 1: materials utilitzats

Materials utilitzats
Materials utilitzats
Materials utilitzats
Materials utilitzats

Raspberry Pi 3; 32 £ a Pimoroni, Regne Unit

Kit de veu AIY; 25 £ a Pimoroni, Regne Unit

Sensor de distància digital Pololu amb sensor Sharp, de 5 cm; 5,90 € a Exp-tec.de

Dos servos de 9 g

Dos LEDs blancs i una resistència

Algunes capçaleres i cables de pont

Una placa Forex de 2 mm, 250 x 500 mm; 1,70 € a Modulor, Berlín, Alemanya

Cargols M3, femelles i volanderes, per connectar totes les parts mòbils. He utilitzat sis cargols de niló de 10 i quatre de 16 mm.

Sis cargols i femelles M2 per fixar els servos a les plaques i connectar els braços i els engranatges de servos.

Unes gotes de cola de plàstic

Pas 2: Muntatge i ús del dispositiu

Muntatge i ús del dispositiu
Muntatge i ús del dispositiu
Muntatge i ús del dispositiu
Muntatge i ús del dispositiu
Muntatge i ús del dispositiu
Muntatge i ús del dispositiu

Pel que fa al kit de veu AIY, seguiu les instruccions de la descripció que s'inclou amb el kit, inclosa la secció sobre el servo. Recomanaria soldar diverses capçaleres de tres pins als servos ports de la sortida de veu AIY, de manera que podeu connectar servos, sensor i LED molt fàcilment amb el HAT.

Pel que fa al saltador, podeu utilitzar els dibuixos que he proporcionat aquí com a fitxers svg i PDF com a plantilla o simplement modificar-los segons les vostres idees. És possible que vulgueu mantenir la disposició bàsica de l’engranatge que condueix les potes i el braç del gat saltant, assegurant-vos que la distància entre el punt de pivotament i l’engranatge sigui la mateixa al servo, al braç i a la cama.

Com a alternativa, també podeu construir una versió si els braços i les cames estiguin conduïts directament per quatre servos separats o per un engranatge més avançat.

Amb el dibuix, talleu les peces d’una placa de divisa, cartró o contraxapat i foradeu els forats a les posicions adequades. Enganxeu les peces de distància als punts de pivot de braços i cames, assegurant una bona alineació dels forats.

Fixeu els servos i les parts mòbils a la placa base. Afegiu el sensor de distància i el LED tal com s’indica. Els servos es fixen amb cargols M2, totes les parts mòbils amb cargols M3. He utilitzat cargols de niló M3, però només per motius estètics.

Comproveu si els servo braços estan col·locats a la posició mitjana. Connecteu els braços i engranatges servo, he utilitzat cargols M2 per a aquest propòsit.

Connecteu servos, LEDs i el sensor de distància als servoconectors de la placa AIY. És possible que necessiteu alguns cables d’allargament / pont. He connectat el servo esquerre a “servo0” (GPIO 26), el servo dret a “servo2” (GPIO 13), els LED a “servo5” (GPIO 24) i el sensor a “servo3” (GPIO 5) de l’AIY veu HAT.

Copieu el fitxer "Hampelmann.py" proporcionat a la subcarpeta AIY "src" i feu-lo directament executable per a tothom. Per fer-ho, podeu seleccionar el fitxer al gestor de fitxers, fer clic amb el botó dret i seleccionar Propietats, seleccionar Permisos, anar a Executar, seleccionar ~ qualsevol. O escriviu "chmod + x src / Hampelmann.py" a la consola de desenvolupament.

Comproveu si tot està fixat i fixat, o bé es pot moure quan calgui. Obriu la línia d'ordres Dev, introduïu "src / Hampelmann.py" i inicieu el programa. Si moveu la mà o els dits davant del sensor de distància, la unitat AIY us demanarà ordres i els LED parpellejaran. Les ordres implementades són "dreta / esquerra / mans amunt / avall / centre", "ball", "LED encès / apagat" i "adéu".

Jugar. Mou la mà davant del sensor, parla quan se't demana i dóna al dispositiu una mica de temps per reaccionar. La latència és bastant alta. Crtl + C o "Adéu" aturarà el programa.

Podeu modificar el fitxer mitjançant Nano o un altre editor de text senzill.

Observacions: tingueu en compte que algunes paraules i termes es reconeixen com a paraules que comencen amb majúscula, com a "Centre" o "Centre dret", ja que d'altres no, per exemple. 'A la dreta'. Heu d’utilitzar el formulari exacte que us ha retornat el mòdul de reconeixement de veu per activar alguna acció.

Pas 3: l’escriptura Python

Com s'ha esmentat anteriorment, l'script es basa en l'script servo_demo.py de les instruccions de veu AIY, amb algunes addicions. La primera versió és el fitxer Hampelmann.py que trobareu adjunt. AngularServo de GPIOZero permet restringir el rang d’acció del servo i definir exactament fins on es mourà. Però prefereixo la veu britànica per sobre de l’original. I el dispositiu també pot parlar, però no entendre (?), Anglès, alemany, italià, francès i espanyol. A continuació trobareu l’escriptura Hampelmann2.py, amb veu britànica, i una mica d’italià i alemany. Tingueu en compte que heu de fer que els scripts siguin executables per executar-los.

#! / usr / bin / env python3 # Aquest script és una adaptació de l'script servo_demo.py per al AIAT de veu HAT, # optimitzat per a la importació AIY jumping jack importació aiy.audio importació aiy.cloudspeech importació aiy.voicehat des del LED d'importació gpiozero des de la importació de gpiozero AngularServo des de la importació de gpiozero Botó de la importació del temps sleep def main (): recognizer = aiy.cloudspeech.get_recognizer () recognizer.expect_phrase ('right up') recognizer.expect_phrase ('right down') recognizer.expect_phrase ('Right Centre ') # les majúscules hi són a propòsit recognizer.expect_phrase (' left up ') recognizer.expect_phrase (' left down ') recognizer.expect_phrase (' left left ') recognizer.expect_phrase (' hands up ') recognizer.expect_phrase ('hands down') recognizer.expect_phrase ('hands Center') recognizer.expect_phrase ('Dance') recognizer.expect_phrase ('LED encès') recognizer.expect_phrase ('LED apagat') recognizer.expect_phrase ('adéu') aiy.audio.get_recorder (). start () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # 1a connexió o bé, GPIO 26 servo2 = AngularServo (13, min_angle = -40, max_angle = 40) # tercer connector, GPIO 13 led0 = LED (24) # LED connectats a servo5 / GPIO 24 distància = botó (5) # sensor de distància connectat a servo3 / GPIO 05 # altres: GPIO 6 a servo1, 12 a servo4 aiy.audio.say ("Hola!",) aiy.audio.say ("Per començar, acosteu la mà al sensor") mentre és True: led0.on () # LEDs d'impressió ("Per activar el reconeixement de veu, acosteu una mà al sensor de distància i, a continuació, parleu") imprimeix ("Les paraules clau esperades són: mans / esquerra / dreta amunt / avall / centre") print ('LED encès / apagat, ball i adéu.') print () distance.wait_for_press () print ('Listening …') aiy.audio.say ("Si us plau, doneu les vostres comandes",) led0.blink () # light parpellejar text = recognizer.recognize () si el text és Cap: aiy.audio.say ('Ho sento, no us he sentit.',) else: print ('Heu dit "', text, '"') # Us permet comproveu la interpretació del sistema si està "cap amunt" al text: print ("Movent servo0 a la posició màxima") servo0.angle = 35 elif "cap avall" al text: print ("Movent servo0 a la posició mínima ') servo0.angle = -35 elif' Centre dret 'en el text: #capitals correctes són impresos crítics (' Moving servo0 to middle position ') servo0.angle = 0 elif' left up 'in text: print (' Movent servo2 a la posició màxima ') servo2.angle = -35 elif' esquerra cap avall 'al text: imprimir (' Movent servo2 a la posició mínima ') servo2.angle = 35 elif' esquerra Centre 'al text: imprimeix ("Movent servo2 a posició mitjana ') servo2.angle = 0 elif' mans amunt 'en el text: print (' Moving servo2 to maximum position ') servo2.angle = -35 servo0.angle = 35 elif' hands down 'in text: print (' Moving servo2 a la posició mínima ') servo2.angle = 35 servo0.angle = -35 elif' centre de les mans 'al text: imprimir (' Moving servo2 a la posició mitjana ') servo2.angle = 0 servo0.angle = 0 elif' LED apagat ' al text: imprimir ("apagar el LED extern 0") led0.off () elif "LED encès" al text: imprimir ("activar el LED extern 0") led0.on () # llum elif "ballar" al text: print ('ara es realitza el ball número u') aiy.audio.say ("Bé, faré tot el possible!",) led0.on () # llums enceses per a l’interval (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 "adéu" al text: aiy.audio.say ("Adéu",) aiy.audio.say ("Arrivederci",) aiy.audio.say ("Auf Wiedersehen",) servo0.angle = 0 servo2.angle = 0 led0.off () sleep (3) print ('bye!') break else: print ('no es reconeix cap paraula clau!') aiy.audio.say ("Disculpeu, no us he entès",) si _name_ == ' _main_ ': main ()

Recomanat: