Sommario:

Un Jumping Jack a comando vocale - Versione AIY di Google Voice: 3 passaggi
Un Jumping Jack a comando vocale - Versione AIY di Google Voice: 3 passaggi

Video: Un Jumping Jack a comando vocale - Versione AIY di Google Voice: 3 passaggi

Video: Un Jumping Jack a comando vocale - Versione AIY di Google Voice: 3 passaggi
Video: Quando provi a fare un complimento a una ragazza... 2024, Novembre
Anonim
Un Jumping Jack a comando vocale - Versione AIY di Google Voice
Un Jumping Jack a comando vocale - Versione AIY di Google Voice
Un Jumping Jack a comando vocale - Versione AIY di Google Voice
Un Jumping Jack a comando vocale - Versione AIY di Google Voice
Un Jumping Jack a comando vocale - Versione AIY di Google Voice
Un Jumping Jack a comando vocale - Versione AIY di Google Voice
Un Jumping Jack a comando vocale - Versione AIY di Google Voice
Un Jumping Jack a comando vocale - Versione AIY di Google Voice

Quindi hai ricevuto quel kit vocale AIY per Natale e ci hai giocato, seguendo le istruzioni. È divertente, ma ora?

Il progetto descritto di seguito presenta un semplice dispositivo che può essere costruito utilizzando l'HAT vocale AIY per Raspberry Pi. Utilizza il sistema di riconoscimento vocale di Google per controllare i LED e due servi, guidando le braccia e le gambe di un jack da salto con un ingranaggio molto semplice.

Il software che lavora in background è una modifica dello script servo_demo.py, come è stato descritto nel manuale del kit vocale AIY. Basta seguire le istruzioni fornite per configurare hardware e software. Il dispositivo stesso è facile da costruire e non richiede molte abilità manuali. Inoltre sarebbe utile un taglierino, un trapano e un saldatore.

Se attivi il sistema di riconoscimento vocale strizzando l'occhio e pronunciando "mani in alto", il martinetto solleverà mani e gambe, "mani centrali" sposterà entrambi i servi nella posizione centrale e su "mani in basso" mani e gambe essere abbassato. Su 'sinistra su' la mano sinistra e le gambe saranno sollevate e su "destra giù" quelle destre abbassate, su 'destra su' viceversa. "Dance", lo farà ballare, almeno in un certo senso. Sta anche parlando, per favore dai un'occhiata al video allegato.

Quindi, con pochi sforzi, puoi costruire il tuo robot che balla, chiacchiera e canta.

Per semplificarne l'utilizzo, soprattutto da parte dei bambini più piccoli, e per aumentare il fattore "magico", il pulsante sulla scatola AIY è stato sostituito come trigger da un sensore di prossimità. Per la sua semplicità, ho utilizzato un breakout del sensore di distanza digitale di Pololu che riconosce se un oggetto è più vicino di 5 cm e può essere utilizzato in modo molto simile a un pulsante. I LED indicano quando il dispositivo è in attesa di ordini, ascoltando o "pensando". Servo, sensore e LED sono controllati dalla libreria software GPIOZero.

Il prototipo è stato costruito in Forex, lastre in PVC espanso, che possono essere tagliate molto facilmente con un taglierino e incollate, ma è anche abbastanza stabile. Sentiti libero di creare una versione più grande, più bella, migliorata o più fantasiosa, ma sarebbe gentile se documentassi e presentassi i tuoi miglioramenti.

Puoi usare entrambi i lati del corpo, a seconda che tu voglia presentare l'attrezzatura in movimento o avere una bella disposizione a misura di bambino. ---------"Hampelmann" è il termine tedesco per "jumping jack", con determinate connotazioni.

Passaggio 1: materiali utilizzati

Materiali usati
Materiali usati
Materiali usati
Materiali usati

lampone pi 3; 32 £ a Pimoroni, Regno Unito

Kit vocale AIY; 25 £ a Pimoroni, Regno Unito

Sensore di distanza digitale Pololu breakout con sensore Sharp, 5 cm; 5,90 € su Exp-tec.de

Due servi da 9 g

Due LED bianchi e un resistore

Alcune intestazioni e cavi jumper

Una piastra in Forex da 2 mm, 250 x 500 mm; 1,70 € al Modulor, Berlino, Germania

Viti M3, dadi e rondelle, per collegare tutte le parti mobili. Ho usato sei viti in nylon da 10 e quattro da 16 mm.

Sei viti e dadi M2, per fissare i servi alle piastre e collegare i bracci e gli ingranaggi dei servi.

Qualche goccia di colla per plastica

Passaggio 2: montaggio e utilizzo del dispositivo

Assemblaggio e utilizzo del dispositivo
Assemblaggio e utilizzo del dispositivo
Assemblaggio e utilizzo del dispositivo
Assemblaggio e utilizzo del dispositivo
Assemblaggio e utilizzo del dispositivo
Assemblaggio e utilizzo del dispositivo

Per quanto riguarda lo stesso kit vocale AIY, basta seguire le istruzioni nella descrizione fornita con il kit, inclusa la sezione relativa al servo. Consiglierei di saldare diverse intestazioni a tre pin alle porte dei servi sul breakout vocale AIY, in modo da poter collegare servi, sensori e LED molto facilmente con l'HAT.

Per quanto riguarda il jack da salto, puoi utilizzare i disegni che ho fornito qui come file svg e PDF come modello o semplicemente modificarli secondo le tue idee. Potresti voler mantenere la disposizione di base dell'ingranaggio che guida le gambe e il braccio del martinetto, assicurandoti che la distanza tra il punto di rotazione e l'ingranaggio sia la stessa al servo, al braccio e alla gamba.

In alternativa, puoi anche costruire una versione in cui braccia e gambe sono azionate direttamente da quattro servi separati o da un ingranaggio più avanzato.

Usando il disegno, taglia i pezzi da una piastra in Forex, cartone o compensato e pratica i fori nelle posizioni appropriate. Incollare i distanziali ai punti di articolazione di braccia e gambe, assicurando un buon allineamento dei fori.

Fissare i servi e le parti mobili alla piastra di base. Aggiungere il sensore di distanza e il LED come indicato. I servi sono fissati con viti M2, tutte le parti mobili con viti M3. Ho usato viti Nylon M3, ma solo per motivi estetici.

Controllare se i bracci del servo sono posizionati in posizione centrale. Collega i bracci del servo e gli ingranaggi, ho usato le viti M2 per questo scopo.

Collega i servi, i LED e il sensore di distanza ai connettori dei servi sulla scheda AIY. Potrebbero essere necessari dei cavi di allungamento/ponticello. Ho collegato il servo sinistro a "servo0" (GPIO 26) il servo destro a "servo2" (GPIO 13), i LED a "servo5" (GPIO 24) e il sensore a "servo3" (GPIO 5) sull'AIY voce CAPPELLO.

Copia il file "Hampelmann.py" fornito nella sottocartella AIY "src" e rendilo direttamente eseguibile per chiunque. Per fare ciò, puoi selezionare il file nel file manager, quindi fare clic con il pulsante destro del mouse e selezionare Proprietà, selezionare Permessi, andare su Esegui, selezionare ~ chiunque. Oppure scrivi "chmod +x src/Hampelmann.py" nella console di sviluppo.

Controlla se tutto è a posto e fisso, o spostabile quando richiesto. Apri la riga di comando Dev, inserisci "src/Hampelmann.py" e avvia il programma. Se muovi la mano o le dita davanti al sensore di distanza, l'unità AIY chiederà ordini e i LED lampeggeranno. Gli ordini implementati sono "destra/sinistra/mani su/giù/centro", "danza", "accensione/spegnimento LED" e "arrivederci".

Giocare a. Muovi la mano davanti al sensore, parla quando ti viene chiesto e dai al dispositivo un po' di tempo per reagire. La latenza è piuttosto alta. Crtl+C o "Arrivederci" fermeranno il programma.

Puoi modificare il file usando Nano o un altro semplice editor di testo.

Note: Si prega di essere consapevoli del fatto che alcune parole e termini sono riconosciuti come parole che iniziano con una lettera maiuscola, come "Centro" o "Centro destro", mentre altri non lo sono, ad es. 'proprio sopra'. Devi utilizzare il modulo esatto restituito dal modulo di riconoscimento vocale per attivare alcune azioni.

Passaggio 3: lo script Python

Come accennato in precedenza, lo script è basato sullo script servo_demo.py delle istruzioni vocali AIY, con alcune aggiunte. La prima versione è il file Hampelmann.py che troverai allegato. AngularServo di GPIOZero permette di restringere il raggio d'azione del servo e di definire esattamente quanto lontano si sposterà. Ma io preferisco la voce britannica a quella originale. E il dispositivo può anche parlare, ma non capire (?), inglese, tedesco, italiano, francese e spagnolo. Di seguito trovate lo script Hampelmann2.py, con la voce britannica, e un po' di italiano e tedesco. Tieni presente che devi rendere eseguibili gli script per eseguirli.

#!/usr/bin/env python3# Questo script è un adattamento dello script servo_demo.py per AIY voice HAT, # ottimizzato per AIY jump jack import aiy.audio import aiy.cloudspeech import aiy.voicehat from gpiozero import LED from gpiozero import AngularServo from gpiozero import Pulsante from time import sleep def main(): riconosciutor = aiy.cloudspeech.get_recognizer() riconosciutor.expect_phrase('right up') riconosciutor.expect_phrase('right down') riconosciutor.expect_phrase('Right Center') # le lettere maiuscole sono lì apposta riconoscer.expect_phrase('left up') requirer.expect_phrase('left down') requirer.expect_phrase('left Center') requirer.expect_phrase('hands up') requirer.expect_phrase ('mani giù') riconoscer.expect_phrase('centro mani') riconoscer.expect_phrase('Danza') riconoscer.expect_phrase('LED acceso') riconoscer.expect_phrase('LED spento') riconoscer.expect_phrase('arrivederci') aiy.audio.get_recorder().start() servo0 = AngularServo(26, min_angle=-40, max_angle=40) # 1a connessione oppure, GPIO 26 servo2 = AngularServo(13, min_angle=-40, max_angle=40) # 3° connettore, GPIO 13 led0 = LED(24) # I LED sono collegati al servo5/GPIO 24 distance= Button(5) # sensore di distanza collegato a servo3/GPIO 05 # altri: GPIO 6 a servo1, 12 a servo4 aiy.audio.say("Ciao!",) aiy.audio.say("Per iniziare, avvicina la mano al sensore",) while True: led0.on() # LEDs on print("Per attivare il riconoscimento vocale, avvicinare una mano al sensore di distanza, quindi parlare") print('Le parole chiave previste sono: mani/sinistra/destra su/giù/centro, ') print('LED acceso/spento, balli e arrivederci.') print() distance.wait_for_press() print('Ascolto…') aiy.audio.say("Per favore dai i tuoi ordini",) led0.blink() # light testo lampeggiante = riconoscer.recognize() se il testo è Nessuno: aiy.audio.say('Scusa, non ti ho sentito.',) else: print('Hai detto "', text, '"') # Ti permette controlla l'interpretazione del sistema se 'verso l'alto' nel testo: print('Sposta servo0 alla posizione massima') servo0.angle=35 elif 'verso il basso' nel testo: print('Sposta servo0 alla posizione minima') servo0.angle=-35 elif 'Right Center' nel testo: #le maiuscole corrette sono critiche print('Spostando servo0 alla posizione centrale') servo0.angle=0 elif 'left up' nel testo: print(' Spostare servo2 alla posizione massima') servo2.angle=-35 elif 'sinistra in basso' nel testo: print('Spostare servo2 alla posizione minima') servo2.angolo=35 elif 'sinistra al centro' nel testo: print('Spostare servo2 alla posizione centrale') servo2.angle=0 elif 'mani in alto' nel testo: print('Spostare servo2 alla posizione massima') servo2.angle=-35 servo0.angle=35 elif 'mani in basso' nel testo: print('Spostare servo2 alla posizione minima') servo2.angle=35 servo0.angle=-35 elif 'lancette Center' nel testo: print('Spostamento servo2 alla posizione centrale') servo2.angle=0 servo0.angle=0 elif 'LED spento' in text: print ('spegnimento led esterno 0') led0.off() elif 'led acceso' in text: print ('accensione led esterno 0') led0.on() # light elif 'dance' in text: print ('ora esegue il ballo numero uno') aiy.audio.say("Beh, farò del mio meglio!",) led0.on() # luci accese per i nell'intervallo (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 'arrivederci' nel testo: aiy.audio.say("Arrivederci",) aiy.audio.say('Arrivederci',) aiy.audio.say('Auf Wiedersehen',) servo0.angle=0 servo2.angle=0 led0.off() sleep (3) print('ciao!') break else: print('nessuna parola chiave riconosciuta!') aiy.audio.say("Scusa, non ho capito",) if _name_ == ' _main_': principale()

Consigliato: