Table des matières:

Arduino devient Talking Tom : 6 étapes
Arduino devient Talking Tom : 6 étapes

Vidéo: Arduino devient Talking Tom : 6 étapes

Vidéo: Arduino devient Talking Tom : 6 étapes
Vidéo: My Talking Angela 2 🏳️🚦😱 Squid Game but Angela 2024, Novembre
Anonim
Arduino devient Talking Tom
Arduino devient Talking Tom
Arduino devient Talking Tom
Arduino devient Talking Tom

L'un de mes plus vieux souvenirs d'utilisation d'un smartphone était de jouer au jeu « Talking Tom ». Le jeu était assez simple. Il y a un chat, nommé Tom, qui peut parler, en quelque sorte. Dans le jeu, Tom écoutait toute entrée via le micro du téléphone, puis répétait tout ce qu'il entendait. Donc, quoi qu'il dise à Tom, il répéterait simplement la même chose de sa propre voix aiguë.

Bien que cela semble simple, toute cette procédure nécessite de nombreuses étapes complexes comme l'échantillonnage de l'entrée analogique du micro sous forme numérique, la manipulation de l'audio afin de donner à Tom sa voix unique, puis la reconstruction du signal à partir de toutes ces valeurs numériques pour le lire via le haut-parleur.. Toutes ces étapes complexes, mais le smartphone les a gérées comme un charme, même il y a 9 à 10 ans !

La chose intéressante serait de voir si la même chose peut être faite avec une carte Arduino basée sur un microcontrôleur bon marché. Ainsi, dans ce instructable, je vais montrer comment vous pouvez faire un simple projet de type Talking Tom à partir d'un Arduino et d'autres appareils électroniques peu coûteux.

Cette instructable a été écrite en collaboration avec Hatchnhack Makerspace à Delhi

REMARQUE: cette instructable est la première version du projet qui complète la fonctionnalité « Parler » de Talking Tom où l'arduino pourra répéter tout ce que vous lui dites. La partie changement de voix sera couverte dans la future version, bien qu'en raison de la résolution moindre de l'ADC intégré d'Arduino, l'audio enregistré sonne déjà un peu différent:P (cela peut être clairement remarqué dans la vidéo du projet).

Alors commençons !

Étape 1: Matériaux utilisés

Les matériaux utilisés
Les matériaux utilisés
Les matériaux utilisés
Les matériaux utilisés
Les matériaux utilisés
Les matériaux utilisés

Matériel:

  • Un Arduino UNO
  • Module de microphone MAX4466 avec gain réglable
  • Module de lecteur de carte SD basé sur SPI
  • carte SD
  • Amplificateur audio comme haut-parleur PC, module amplificateur PAM8403, etc.
  • Haut-parleurs pour la connexion à l'amplificateur
  • Prise audio femelle
  • 1 résistance de 1kohm
  • 2 résistances de 10 kohms
  • 1x10uF Condensateur
  • 2 x bouton poussoir
  • Fils de cavalier

Logiciel:

  • IDE Arduino
  • Audace (facultatif)
  • Bibliothèque TMRpcm et SD pour Arduino

Étape 2: Un aperçu de base du projet

Le projet a principalement 2 caractéristiques:

  • Il peut lire un son choisi au hasard à partir d'un ensemble de fichiers audio préinstallés sur la carte SD pour les effets sonores, etc.
  • Il peut enregistrer le son provenant du microphone, puis le lire dès que l'enregistrement s'arrête. Cela permet à l'arduino de répéter tout ce qu'il a entendu dans le micro.

L'interface utilisateur du projet se compose principalement de 2 boutons poussoirs dont chacun correspond à l'une des fonctionnalités ci-dessus.

Le travail principal d'enregistrement et de lecture des fichiers audio de la carte SD est géré par la bibliothèque TMRpcm

L'enregistrement audio utilise le module micro MAX4466, l'ADC interne d'arduino et la bibliothèque TMRpcm pour échantillonner l'audio, puis le stocker temporairement sur la carte SD en tant que fichier «.wav » pour la lecture. Les fichiers audio '.wav' utilisent PCM (Pulse Code Modulation) pour stocker les données audio au format numérique afin qu'elles puissent être facilement lues à nouveau. En règle générale, il est préférable d'utiliser un ADC externe pour les projets audio car la résolution de l'ADC d'Arduino n'est pas si élevée, mais cela fonctionne pour ce projet.

La lecture des fichiers audio (pré-installés et enregistrés) se fait également à l'aide de la bibliothèque TMRpcm qui émet l'audio sous forme de signal PWM à partir d'une broche activée PWM de l'arduino. Ce signal est ensuite introduit dans un filtre RC pour obtenir un signal analogique qui est ensuite introduit dans un amplificateur pour lire l'audio via un haut-parleur. Pour cette partie, vous pouvez également utiliser un DAC externe car arduino n'en a pas en interne. L'utilisation d'un DAC pourrait être une meilleure option car elle améliorerait considérablement la qualité audio.

La communication entre le module de carte SD et l'arduino s'effectue via SPI (Interface périphérique série). Le code utilise la bibliothèque SD & SPI pour accéder facilement au contenu de la carte SD.

Étape 3: préparer la carte SD et connecter le module de carte SD

Préparez la carte SD et connectez le module de carte SD
Préparez la carte SD et connectez le module de carte SD
Préparez la carte SD et connectez le module de carte SD
Préparez la carte SD et connectez le module de carte SD
Préparez la carte SD et connectez le module de carte SD
Préparez la carte SD et connectez le module de carte SD
Préparez la carte SD et connectez le module de carte SD
Préparez la carte SD et connectez le module de carte SD
  • Vous devez d'abord formater la carte SD avec un système de fichiers FAT16 ou FAT32 (vous pouvez utiliser votre smartphone pour formater la carte SD).
  • Maintenant, préinstallez certains fichiers audio.wav sur la carte SD. Vous pouvez générer des fichiers.wav avec Audacity (voir les instructions ci-dessous). N'oubliez pas de nommer les fichiers audio_1.wav, audio_2.wav, audio_3.wav et ainsi de suite.

Le module de carte SD utilise SPI pour communiquer les données avec l'arduino. Par conséquent, il se connecte uniquement aux broches sur lesquelles SPI est activé. Ces connexions sont les suivantes:

  • Vcc - 5v
  • TERRE - TERRE
  • MOSI (Master Out Slave In) - broche 11
  • MISO (Master In Slave Out) - broche 12
  • CLK (horloge) - broche 13
  • SS/CS (Sélection d'esclave/Sélection de puce) - broche 10

Génération du fichier '.wav' avec Audacity Software:

  • Ouvrez le fichier audio que vous souhaitez convertir en.wav dans Audacity.
  • Cliquez sur le nom du fichier, puis sélectionnez « Split Stereo to Mono ». Cette option divise l'audio stéréo en deux canaux mono. Vous pouvez maintenant fermer l'un des canaux.
  • Modifiez la valeur "Project Rate" en bas à 16000 Hz. Cette valeur correspond à la fréquence d'échantillonnage maximale de l'ADC interne de l'arduino.
  • Maintenant, allez dans Fichier-> Exporter/Exporter en WAV.
  • Choisissez l'emplacement et le nom appropriés du fichier. Dans le menu d'encodage, sélectionnez « PCM 8 bits non signé » car nous utilisons le format PCM pour stocker l'audio au format numérique.

Étape 4: connectez la sortie audio et le microphone

Connectez la sortie audio et le microphone
Connectez la sortie audio et le microphone
Connectez la sortie audio et le microphone
Connectez la sortie audio et le microphone
Connectez la sortie audio et le microphone
Connectez la sortie audio et le microphone
Connectez la sortie audio et le microphone
Connectez la sortie audio et le microphone

Connexion du micro:

  • Vcc - 3.3v
  • TERRE - TERRE
  • SORTIE - Broche A0

REMARQUE:

  • Essayez de connecter le microphone directement à l'arduino au lieu d'utiliser une maquette car cela pourrait induire un bruit inutile dans le signal d'entrée.
  • Assurez-vous de souder proprement les en-têtes sur le module de microphone car de mauvaises soudures produisent également du bruit.
  • Ce module de microphone a un gain réglable qui peut être contrôlé à l'aide d'un pot à l'arrière de la carte. Je vous suggérerais de garder le gain un peu bas car cela n'amplifiera pas beaucoup le bruit alors que vous pourriez parler en le gardant près de votre bouche, ce qui produira une sortie plus propre.

Connexion de la sortie audio:

  • Placez le condensateur 10 uF et la résistance 1k ohm en série sur la planche à pain avec le positif du condensateur connecté à la résistance. Ceux-ci forment ensemble un filtre RC qui convertit la sortie PWM en signal analogique pouvant être introduit dans l'amplificateur.
  • Connectez la broche 9 d'Arduino à l'autre extrémité de la résistance.
  • La borne négative du condensateur est connectée aux canaux gauche et droit de la prise audio femelle.
  • GND de la prise audio est connecté au GND.
  • La prise audio est connectée à l'amplificateur avec un câble auxiliaire. Dans mon cas, j'ai utilisé le système de haut-parleurs de mon PC.

REMARQUE:

L'utilisation de PWM comme sortie audio n'est peut-être pas la meilleure option, car un DAC externe fournirait une résolution et une qualité bien meilleures. De plus, le condensateur et la résistance du filtre RC peuvent induire un bruit indésirable. Mais la sortie était quand même assez décente pour ce projet

Étape 5: câblez les boutons

Câblez les boutons
Câblez les boutons
Câblez les boutons
Câblez les boutons
Câblez les boutons
Câblez les boutons

Le projet utilise des boutons-poussoirs comme interface utilisateur. Les deux remplissent des fonctions différentes et sont utilisés différemment mais ont le même câblage. Leur connexion est la suivante:

  • Placez les boutons sur la planche à pain.
  • Fixez une borne de l'un des boutons à la broche 2 de l'arduino avec une résistance de tirage de 10 k ohms. L'autre borne du bouton se connecte au 5v. Ainsi, lorsque le bouton est enfoncé, la broche 2 devient HAUTE et nous pouvons le détecter dans le code.
  • L'autre bouton est connecté de la même manière à la broche 3 de l'arduino au lieu de 2.

Le bouton connecté à la broche 2 lit un fichier audio aléatoire à partir de l'ensemble de fichiers audio préinstallés sur la carte SD lorsqu'il est enfoncé une fois.

Le bouton connecté à la broche 3 est pour l'enregistrement. Vous devez appuyer et maintenir ce bouton pour l'enregistrement. L'arduino commence l'enregistrement dès que ce bouton est enfoncé et arrête l'enregistrement lorsque ce bouton est relâché. Après avoir arrêté l'enregistrement, il rejoue immédiatement cet enregistrement.

Étape 6: Téléchargez le code

Télécharger le code
Télécharger le code
Télécharger le code
Télécharger le code
Télécharger le code
Télécharger le code

Avant de télécharger le code, assurez-vous d'avoir installé toutes les bibliothèques requises telles que TMRpcm, SD, etc.

Vous pouvez également ouvrir le moniteur série après avoir téléchargé le code pour obtenir un retour sur ce que fait l'arduino.

Actuellement, le code ne manipule pas l'audio enregistré pour le rendre différent, mais je prévois d'inclure cette fonctionnalité dans la prochaine version où vous pourrez peut-être définir la fréquence de sortie du signal audio à l'aide de pot et obtenir différents types de sons.

Et vous avez terminé !!

Conseillé: