Table des matières:
- Étape 1: Matériaux utilisés
- Étape 2: Un aperçu de base du projet
- Étape 3: préparer la carte SD et connecter le module de carte SD
- Étape 4: connectez la sortie audio et le microphone
- Étape 5: câblez les boutons
- Étape 6: Téléchargez le code
Vidéo: Arduino devient Talking Tom : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
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
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
- 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
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
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
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é:
Le routeur devient un enregistreur vidéo pour les caméras IP : 3 étapes
Le routeur devient un enregistreur vidéo pour les caméras IP : certains routeurs ont un processeur puissant et un port USB sur une carte et peuvent être utilisés comme enregistreur vidéo en plus des fonctions de routage, afin de collecter et de distribuer la vidéo et le son des caméras IP qui diffusent uniquement H264/265 RTSP (comme la plupart des hi
La télécommande TV devient une télécommande RF -- Tutoriel NRF24L01+ : 5 étapes (avec photos)
La télécommande TV devient une télécommande RF || Tutoriel NRF24L01+ : Dans ce projet, je vais vous montrer comment j'ai utilisé le populaire IC RF nRF24L01+ pour régler la luminosité d'une bande LED sans fil à l'aide de trois boutons inutiles d'une télécommande de téléviseur. Commençons
Talking Santa Blowmold : 5 étapes
Talking Santa Blowmold : Ce projet explique comment faire une décoration qui joue un fichier son lorsque quelqu'un passe. Cela peut être facilement accompli avec un ordinateur qui peut exécuter le programme Motion et une caméra quelconque. Dans ce cas, j'ai utilisé un 20" grand père Noël
Shake Detecting Talking Hat avec Circuit Playground Express : 12 étapes (avec photos)
Shake Detecting Talking Hat avec Circuit Playground Express : Ce tutoriel simple et rapide vous apprend à fabriquer un chapeau parlant ! Il répondrait avec une réponse soigneusement traitée lorsque vous «posez» une question, et cela pourrait peut-être vous aider à décider si vous avez des inquiétudes ou des problèmes. Dans mon cours de Wearable Tech, je
Barbara : la caméra Talking AI : 4 étapes (avec photos)
Barbara: the Talking AI Camera: AI étant le dernier mot à la mode, ce projet est tout à propos de légèrement inutile. Après avoir trouvé une API soignée qui sous-titre les images et un vieil appareil photo, les objectifs sont fixés : une caméra qui sous-titre ce qu'elle voit