Comment développer votre propre Google Aiy sans l’ensemble de l’ensemble
Google’s Voice Assistant existe depuis un moment et quand Amazon a publié son API Alexa et porté le code de cloud PAAS à la framboise PI 2 C’était juste une question de temps avant que chacun d’autre ait sauté sur le train rapide pour le royaume des fabricants. Google a juste fait-il de style.
Peu de comprendre que l’API d’Assistant Google pour la Raspberry Pi 3 a été disponible depuis longtemps, toutefois, quand ils ont décidé de fournir un ensemble gratuit avec les problèmes de mai 2017 du magazine Magazine de mai 2017, ils ont fait une perception sur tout le monde. Malheureusement, le monde a plus de créateurs, ainsi que des pirates informatiques, ainsi que le nombre de copies du magazine sont limités.
Dans cette écriture, je concevons la version de bricolage de l’AIY SET pour tout le monde qui souhaite parler à une boîte en carton. Je vais mieux regarder le kit gratuit, le retirez-le, placez-le ainsi que le remplacer par la magie de bricolage. Pour rendre les choses plus pratiques, j’ai également conçu un boîtier que vous pouvez imprimer 3D pour totaliser le kit. Commençons.
La déchirure
Un cri à mon pote [Shabaz] au Royaume-Uni pour m’envoyer une copie du Magpi. Le “Kit de voix” Google Aiy Jobs “(désormais compris comme le kit) contient deux PCB ainsi que beaucoup d’autres choses. Le chapeau vocal qui apparaît comme un diète de carte sonore a un nombre extrêmement restreint de composants. Je détaillerai chaque section et dessine le schéma de Kicad pour le même par un
Servos
À partir du côté gauche, il y a 6 ensembles d’en-têtes à 3 broches étiquetés «Servos». La gestion desservo signifiable est rendue possible en utilisant le module PWM à bord de Raspberry Pi 3. Chaque ensemble a une broche GPIO, 5V ainsi que la connexion GND. La goupille GPIO ne relie pas directement à l’en-tête de la Raspberry Pi 3 plutôt que des résistances de limitation actuelles de 220OHM (étiquetées R1-R6).
Source de courant
Juste au sud de ceux-ci sont des gadgets identifiés Q5 ainsi que Q6 que je suppose que je présume une partie d’un circuit de choix d’alimentation. Corrigez-moi si je me trompe cependant ici est mon estimation. Le fonctionnement est simple où Q5 s’allume uniquement lorsque la tension d’entrée est supérieure à celle du 5V du port USB. Un comparateur simple devrait donc utiliser le LM393 pour référence.
EDIT: [RAIVSR] a expliqué que cela pourrait être l’équivalent de la “diode idéale” de la Raspberry Pi.
Interfaces de communication
Le nord des en-têtes «Servo» est étiqueté J15 I2C qui se trouve directement vers l’en-tête de Raspberry Pi 3. Cela signifie que ceux-ci ne doivent pas être liés à rien avec des pull-ups 5V. Ils ne sont pas utilisés au conseil, mais nous en discuterons plus tard. Juste à côté de celui-ci est le SPI ainsi que des en-têtes UART à 2 broches. Encore une fois, ces liens directement à l’en-tête principale et ne servent que comme une éclatement.
Le CAD ainsi que EEPROM
Un peu plus basse aussi bien que nous montrons au circuit en boîte avec un QFN de 16 broches marqué ‘AKK BDQ’ ‘. Ceci est la maxime max98357A (PDF) qui est un DAC I2S avec un amplificateur de classe D. Il conduit le haut-parleur directement néanmoins car il n’y a qu’une seule sortie, elle ne peut être que mono ou stéréo intégrée. Il est toujours assez basculant pour le budget.
La chose fascinante est l’existence de JP6 qui semble avoir toutes les connexions I2S de la maxime max98357A ainsi que de quelques autres lignes. Intégré aux deux vias qui relient à la deuxième sortie de haut-parleurs, vous pourriez potentiellement mettre en forme une carte de brise de plus en haut pour obtenir un son stéréo. Je vais faire le schéma et le rendre téléchargeable aussi bien que si vous voulez lui fournir un coup, laissez-moi comprendre les résultats. Pensez-y les devoirs facultatifs.
À côté du DAC, un SSOP à 8 broches est un EEPROM I2C 24C32 (PDF). Il n’est pas lié à l’en-tête I2C que j’ai parlé plus tôt, mais plutôt aux broches 27 ainsi que 28 de l’en-tête de Raspberry Pi 3. Selon le blog de la Fondation Raspberry Pi Foundation.
“L’EEPROM détient les informations du fabricant de la carte, la configuration GPIO ainsi qu’une chose appelée fragment” arborescence de périphérique “- essentiellement une description du matériel connecté qui permet à Linux de tonnes de conducteurs nécessaires.”
Donc, il a obtenu une certaine sauce supplémentaire qui fait que les choses cochent aussi bien que je pourrais utiliser une promotion de la boire pour vider les données, mais je ne sais pas si Google le considère comme une propriété résidentielle intellectuelle ou commerciale, donc je ne le ferai pas. J’ai un alternatif pour cela aussi tellement vérifié.
Conducteurs
Se déplacer vers la droite, nous découvrons 4 en-têtes marqués des «pilotes». Ce sont des circuits en mosfet pour contrôler des tonnes telles que des relais. [Shabaz] Une tâche fantastique a-t-elle une tâche fantastique sur celle-ci ainsi que les 3 broches sont GPIO, 5V ainsi que le conducteur.
Les mosfets peuvent conduire des tonnes de 500 mms chacun grâce à une polyswitch Néanmoins, les GPIO sont proposés également à l’utilisation directe. Des tonnes à piloter doivent être liées entre les broches marquées “+” ainsi que “-“. La goupille d’en-tête à gauche est un gain direct ACCESS AUX TO GPIOS Les broches d’en-tête de Raspberry Pi 3 ainsi que le schéma représentent la même chose.
Utilisez-les pour relier des voyants ou des gadgets similaires pour suggérer le fonctionnement des relais ou des charges.
Microphone ainsi que les connecteurs de bouton
Des trucs plus fascinants se produisent sur la partie supérieure droite du côté droit avec un bouton-poussoir ainsi que deux connecteurs JST. Le connecteur 4 broches est destiné au bouton-poussoir qui repose sur le boîtier assemblé. Le petit bouton-poussoir monté sur PCB est câblé en parallèle avec le commutateur extérieur et peut être utilisé à son emplacement tout en mettant en place ainsi que des tests. Le JST 5 broches est pour le connecteur de microphone ainsi que toutes les broches I2S.
Les microphones
Enfin, la carte de microphone est marquée 432 qdf21g, ainsi que des microphones numériques SPH0645LM4H MEMS qui parlent directement.
C’est ça!
Cela relee sur la démarche ainsi que toutes les informations nécessaires pour créer votre propre kit AIY. Les données schématiques KICAD sont proposées pour le téléchargement de Github, je vous laisse avec la partie amusante qui est la conception ainsi que le routage.
Voici un peu de grain à moudre. Certaines pièces peuvent être omises ainsi que la taille du chapeau peuvent être réduites au PI zéro phat.
Pour des raisons de simplicité, j’utilise la photo de système d’exploitation préconfigurée de la page Google Aiy. C’est un peu de 900 Mo ainsi que de télécharger directement à partir de Goolge (fichier énorme).
Ajouter un bouton d’arrêt
Vous avez probablement remarqué le petit bouton d’or à côté de l’énorme bouton écologique de l’image ci-dessus, ainsi que la toute première partie de l’exercice. Il s’agit d’un bouton d’arrêt et est ajouté car je ne veux pas ssh à la boîte à chaque fois que je veux l’éteindre en toute sécurité.
Obtenez le bouton que vous souhaitez utiliser et ajoutez deux fils avec des en-têtes femelles. Ce bit fonctionne même sans le chapeau vocal, alors n’hésitez pas à l’essayer. Ensuite, si vous avez un chapeau vocal, ajoutez des en-têtes masculins à la partie I2C. Vous pouvez sélectionner n’importe quel type d’autres broches ainsi que cela fonctionnera toujours. Liez le bouton de la SDA ou du GPIO 2 ainsi que de la démarrage du PI 3.
Ouvrez votre éditeur de texte préféré ainsi que Copy-coller le respect de code.
1
2
3
4
5
6
7
8
9
dix
11
12
13
14
15
16
17
18
19
20
21
22
23
#! / bin / python
# Script simple pour la fermeture du PI de framboise à la pression d’un bouton.
# par InderPreet Singh
import rpi.gpio comme GPIO
temps d’importation
OS Importer
# Utilisez les numéros de broche Broadcom SOC
# Configuration La goupille avec des pullulations intérieures activées ainsi que la broche en mode de lecture.
Gpio.setmode (gpio.bcm)
Gpio.setup (02, gpio.in, pull_up_down = gpio.pud_up)
# Notre fonction sur quoi faire lorsque le bouton est enfoncé
Def Shutdown (canal):
OS.System (“Sudo Shutdown -h maintenant”)
# Ajoutez notre fonction pour exécuter lorsque le bouton enfoncé l’événement se produit
Gpio.add_event_detect (02, gpio.falking, rappel = arrêt, bouncetime = 2000)
# Attendez maintenant!
tandis que 1:
temps.sleep (1)
Enregistrez les données dans votre dossier / home / pi comme shutdown.py
Dans un type de terminal, le respect des commandes
1
chmod + x shutdown.py python shutdown.py & amp;
Cela devrait faire fonctionner le script en arrière-plan. Si vous appuyez sur le bouton, le PI doit arrêter immédiatement. Vous pouvez sélectionner pour ajouter un délai en déconnant l’appel du téléphone de veille dans le code exemple. Sinon, vous pouvez également modifier le GPPIO en remplaçant le nombre approprié dans le script Python.
Frais! Maintenant, nous pouvons arrêter de faire pression sur un bouton.
Ajouter une carte de bruit USB
L’alternance évidente au Google Aiy Voice Hat est d’utiliser n’importe quel type de cartes USB proposant à partir de plusieurs sources. La méthode la plus simple consiste simplement à brancher un dans et à configurer l’application logicielle pour utiliser cela au lieu du chapeau, mais lorsqu’il existe deux pilotes installés, les scripts Python doivent être reconfigurés pour faire ce qui est transparent.
Une fois que vous avez branché la carte son, la toute première chose à faire est d’inspecter si cela a été reconnu ou non. Dans la fenêtre du terminal, tapez:
1
aplay – l
‘Aplay’ est utilisé par les scripts pour parler les réponses afin de pouvoir voir deux dispositifs de bruit. Notez que le bruit intégré a été désactivé de l’intérieur de la section config.txt (voir référence Gadget Tree) et peut être activé si vous envisagez d’utiliser un microphone USB au lieu de la carte de bruit. La sortie Windows devrait ressembler à l’image ci-dessous.
Je souhaite définir la carte de bruit USB comme son par défaut, ainsi que pour que nous exigeons personnaliser le /etc/asound.conf.
1
sudo nano /etc/asound.conf
Supprimez le matériel existant et remplacez-le avec du texte comme indiqué ci-dessous. Bien que cela définit l’entrée par défaut ainsi que le gadget de sortie sur le périphérique USB, il y a une autre étape pour que les choses fonctionnent. (Pour sortir nano, utilise Ctrl + X, Y, retour)
Ensuite, nous modifions vers Audio.py Data qui gère toute la lecture audio ainsi que la fonctionnalité d’enregistrement. Pour cela, ouvrez les données de votre éditeur de texte préféré; Le mien est nano:
1
sudo nano /home/pi/voice-recognizer-raspi/src/audio.py
Faites défiler jusqu’à la partie queÉtats ‘Arecord’ qui est dans la fonction __init__. De toute évidence, il existe un processus dévoué qui maintient l’enregistreur fonctionnant comme je montrerai dans la vidéo. Pour l’instant, nous voulons modifier les arguments pour vous assurer qu’il utilise la carte USB pour attraper son audio au lieu du chapeau vocal d’origine. Un simple ajustement à utiliser ‘-d’, ‘SysDefault: la carte = 1′ devrait suffire comme indiqué dans l’image ci-dessous.
Une modification similaire est nécessaire pour la fonction APLai un peu plus loin dans le code.
Avec cela, le hack est complet! Double-cliquez sur “Test_audio.py” pour inspecter si l’audio fonctionne. Nous ne manquons qu’une partie du puzzle, cependant – le bouton “Écouter”! Donc, il suffit de câbler un bouton-poussoir entre GPIO23 ainsi que la goupille de terre adjacente et ensuite exécuter «src / main.py» pour commencer à jouer avec un bricolage Google Aiy.
Une démo
Une petite démonstration vidéo du hack suggéré avec une carte de bruit USB, un haut-parleur extérieur ainsi qu’un microphone peu coûteux.
Un boîtier
Le boîtier imprimé 3D est conçu dans Fusion360 ainsi que les données STL font partie du référentiel GitHub. Vous pouvez utiliser exactement le même boîtier pour un certain nombre d’emplois car il y a des stands pour la Raspberry PI ainsi que les ports sont mis en place de commodité. Il y a beaucoup de superficie à l’intérieur pour ajouter des chapeaux ainsi que des circuits supplémentaires.
J’ai fait scinder l’enceinte du milieu pour vous assurer qu’il devient simple d’avoir accès aux GPIOS. Le tout appuiera en forme, y compris le capuchon supérieur qui a des trous pour trois boutons. Je pense qu’il serait logique d’avoir des boutons plus petits car le résultat devrait être plus difficile que le carton. Il y a une vaste zone pour le haut-parleur si vous sélectionnez pour inclure un qui est quelque peu différent.
Je n’ai pas eu la possibilité d’imprimer un aussi bien que de mettre à jour cette page lorsqu’il y a un type de développement dans le sujet. ici est le rendu de la conception.
Sommaire
Google a déjà eu leurs API à la disposition du public, mais l’image fraspbian préconfigurée aidera beaucoup de gens à démarrer. J’ai essayé de concevoir les principes fondamentaux de la carte de bruit en plus de fournir les plans de carte équivalente si vous souhaitez en faire un. Pour d’autres, le choix d’utiliser une carte de bruit extérieure est expliqué ainsi que démontré et j’espère que cela influence les personnes de réellement entrer dans de tels projets. Le monde a besoin de plus d’AIY aussi bien que votre possibilité de commencer, alors qu’attendez-vous? Obtenez le piratage.