Laissez les robots Raspberry Pi suivre leur propre voix (partie 5)

Raspberry Pi Roboter der eigenen Stimme folgen lassen

Comme fonctionnalité supplémentaire, nous voulons maintenant que notre petit robot suive le son de notre voix. Si le mode est activé, le robot doit naviguer automatiquement dans la direction à partir de laquelle l’appel a été effectué.

Il existe également de petits capteurs de détection de son analogiques, qui sont lus via un convertisseur ADC MCP3008, puis le robot Raspberry Pi oriente en conséquence dans cette direction.

Comme avec la plupart des tutoriels précédents sur le robot Raspberry Pi, vous pouvez les ignorer ou les adapter si vous souhaitez que votre robot ait des fonctionnalités différentes.

Pièces matérielles requises

Si vous souhaitez recréer ce didacticiel, vous aurez besoin des composants suivants:

Sinon, la colle chaude continue de faciliter l’assemblage.

Construction et câblage

Brochage Raspberry Pi MCP3008

Les 8 canaux qui peuvent être lus en analogique sont situés sur le côté gauche du MCP3008.

Tout d’abord, nous connectons les capteurs. Pour ce faire, trois câbles volants doivent être connectés par capteur. Si vos capteurs ont 4 broches, il vous suffit de connecter VCC, GND et A0. Désormais, les modules peuvent être simplement collés au corps. Avant de le réparer définitivement (avec de la colle chaude ou similaire), vous devez d’abord trouver la meilleure position (plus à ce sujet plus tard). J’ai branché un capteur à l’avant, ainsi qu’un à droite et un à gauche. Autres détecteurs de son, p.ex. à fixer à l’arrière ou à 45 °.

Détection du son du robot Raspberry Pi

Le prochain est le MCP3008. La communication a lieu via SPI, nous obtenons uniquement la tension de 3,3 V d’une autre broche libre:

Raspberry Pi MCP3008
Broche 17 (3,3 V) Broche 16 (VDD)
Broche 17 (3,3 V) Broche 15 (VREF)
Broche 25 (GND) Broche 14 (AGND)
Broche 23 (SCLK) Broche 13 (CLK)
Broche 21 (MISO) Broche 12 (DOUT)
Broche 19 (MOSI) Broche 11 (DIN)
Broche 24 (CE0) Broche 10 (CS / SHDN)
Broche 25 (GND) Broche 9 (DGND)

De l’autre côté se trouvent les 8 canaux auxquels des capteurs analogiques (données ou broche A0) peuvent être connectés. Nous connectons le capteur avant à CH0, le capteur droit à CH1 et le gauche à CH2. La broche VCC des trois modules est également connectée à 3,3 V et GND à une connexion GND du Raspberry Pi.

La structure (y compris nos modules connectés précédents) ressemble à ceci:

Laissez les robots Raspberry Pi suivre leur propre voix partie

Convertisseur ADC MCP3008

Nous créons donc un nouveau fichier dans le dossier avec nos autres fichiers Python Robot, qui contient une classe pour le convertisseur analogique-numérique:

sudo nano MCP3008.py

Il ne vous reste plus qu’à enregistrer (CTRL + O) et à quitter l’éditeur (CTRL + X).

Élargir le code

Dans notre robot.py fichier, nous importons d’abord le fichier créé:

À la fin du cours, une autre fonction doit également être créée, qui peut être utilisée pour répondre à la reconnaissance vocale. Ajoutons donc le code suivant:

Vous pouvez expérimenter avec les valeurs de seuil (le volume auquel la réaction se produit). Comme les moteurs sont assez bruyants, j’ai réglé le seuil des microphones latéraux plus haut. Dès que vous avez trouvé une bonne position (ou ajustez les valeurs de seuil en conséquence), les détecteurs de son peuvent également être fixés au corps.

Si le fichier est développé en conséquence, nous pouvons exécuter un petit test. Pour ce faire, nous ouvrons la console Python (sudo python) et entrez le code suivant:

Malheureusement, les capteurs de bruit ne sont pas trop précis, c’est pourquoi suivre la voix ne fonctionne pas toujours de manière optimale – en tant que gadget, c’est certainement une bonne chose.

Avec l’aide de la commande infrarouge, que nous avons créée auparavant, nous pouvons par exemple spécifier un bouton qui active le mode de suivi vocal.

Avec un vrai microphone, vous pourriez même faire en sorte que le robot Raspberry Pi réponde aux commandes vocales. Seuls certains mots de code devraient être réagis (avant, droite, gauche, arrêt, etc.) et les actions correspondantes appelées.

Dans la partie suivante, nous laissons le robot être contrôlé à distance via le contrôleur / joystick Xbox 360.