Table des matières:
- Étape 1: acquérir des pièces
- Étape 2: Planifier la disposition des composants
- Étape 3: Assemblage
- Étape 4: compiler et charger le micrologiciel
- Étape 5: Comprendre le circuit
- Étape 6: Utilisation de l'appareil
Vidéo: Analyseur de spectre audio MSP430 Breadboard : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Ce projet est basé sur un microphone et nécessite un minimum de composants externes. 2 piles bouton LR44 sont utilisées pour que je puisse faire fonctionner toute la structure dans les limites d'une mini planche à pain 170 points d'attache. ADC10, TimerA interruption LPM réveil, TimerA PWM comme sortie, utilisation de bouton, arithmétique entière sont utilisés et démontrés.
Caractéristiques
- Entier 8 bits FFT 16 échantillons à 500 Hz de séparation
- montre 8 amplitudes de 1K, 1,5K, 2K, 3K, 4K, 5K, 6K, 7,5K non linéaires
- carte logarithmique partielle pour montrer les amplitudes, limitée car la résolution a été réduite pour la FFT 8 bits
- Le micro TLC272 à un étage amplifie à 100x le gain 100x (vous pouvez faire l'expérience avec 2 étages)
- fenêtre de Hamming en option sélectionnable dans le menu
- menu régler 4 niveaux de luminosité
- menu ajuster 8 niveaux taux d'échantillonnage / temps de réponse
- 2 piles bouton LR44 alimentées "à bord"
Étape 1: acquérir des pièces
Voici ce qui est nécessaire pour ce projet
- MSP430G2452 (la puce supplémentaire de TI Launchpad G2 ou de tout microcontrôleur 4K 20 broches de la série MSP430G)
- une mini planche à pain ou une planche de perf 170 points d'attache pour la construction de préamplia
- TLC272 Double ampli-op
- mini micro à électret
- 47k (pull-up), 100k, 2 x 10k, résistances 1k
- 1x0.1uF
- fils de liaison
- en-tête de broche mâle à double rangée à utiliser pour le support de batterie
- 2 piles bouton LR44
Étape 2: Planifier la disposition des composants
Le projet doit être construit sur une mini maquette de 170 points d'attache. La disposition des composants est indiquée ci-dessous. Il est à noter que la matrice LED 8x8 doit être placée au-dessus du MCU MSP430. Outre les composants, il existe également des câbles de connexion représentés par des caractères "+------+".
G V+ Gnd (1 étage) NOUS UTILISONS CETTE MISE EN PAGE +===================================== ==================+ c0…………c7 | MICRO……. +-----+ +--+…. | r0 o o o o o o o o | o||o +-----[100k]--------------+….. | r1 X o o o o o o o |. +--------------+--+. C7 C6 R1 C0 R3 C5 C3 R0 |. o o o o o o o o |…… |.. | b6 a7 | | c0 et r1 partagent la même broche et ne s'afficheront pas | +. +--+--+--+ | +--+--+--+--+--+--+--+--+--+ | *application possible pour avoir c6 + c0 + r1 | | |V+ | | |G b6 b7 T R a7 a6 b5 b4 b3| | cela libérera b6 pour une horloge xtal 32khz | | | TLC272 | | | | | | | dehors - + G| | |+ a0 a1 a2 a3 a4 a5 b0 b1 b2| | | +. +--+--+--+ | +--+--+--+--+--+--+--+--+--+ | | o||o oo. +--+.. R4 R6 C1 C2 R7 C4 R5 R2 | |…. o-[10k]--o……… | |. o-[1k]o oo………._. | | o----[10k]-----------o……. o o | +================================================= ====+.1uF 100k 10k ADC Bouton +-----------------+
nous n'utilisons qu'un étage du TLC272
Étape 3: Assemblage
Vous pouvez commencer à placer des composants en fonction de la disposition de la maquette. Comme c'est de l'art ASCII, ce n'est peut-être pas très clair. Vous pouvez jumeler avec les photos dans cette étape pour identifier toutes les connexions.
Des précautions doivent être prises pour positionner les puces IC. Il y a généralement un point sur l'un des coins pour indiquer la broche 1 d'un appareil.
J'avais utilisé des fils de câble Ethernet CAT5 et ils sont très faciles à travailler sur des projets de maquette. Si vous avez de vieux câbles CAT5, vous pouvez les couper et vous constaterez qu'il y a 6 fils torsadés à l'intérieur. Ils sont parfaits pour les planches à pain.
Étape 4: compiler et charger le micrologiciel
Le code source réside généralement sur mes dépôts github.
Pour ce projet particulier, le fichier source C unique nfft.c est regroupé dans mon référentiel de collections de maquettes. Vous avez juste besoin de nfft.c
J'utilise mps430-gcc pour compiler le firmware mais cela devrait bien se passer avec TI CCS. Vous pouvez éviter tous les problèmes d'installation d'IDE ou de compilateurs en vous rendant sur le cloud TI CCS, qui est un IDE basé sur le Web. Il téléchargera même le firmware sur votre appareil cible.
Ceci est un exemple de commande de compilation avec commutateurs
msp430--gcc -Os -Wall -ffunction-sections -fdata-sections -fno-inline-small-functions -Wl, -Map=nfft.map, --cref -Wl, --relax -Wl, --gc- sections -I/energia-0101E0016/hardware/msp430/cores/msp430 -mmcu=msp430g2553 -o nfft.elf nfft.c
J'utilise un TI Launchpad G2 en tant que programmeur pour programmer le MCU.
Étape 5: Comprendre le circuit
Le schéma du circuit est présenté ci-dessous
MSP430G2452 ou similaire, nécessite un double ampli-op 4K Flash TLC272, GBW @1.7Mhz, @x100 gain, bande passante jusqu'à 17Khz
* nous n'utilisons qu'un étage du TLC272
._.
| MSP430G2452 | Vcc | | | +------------------------2|ADC0 |1--+ | | | |. | Vcc | | | | traction (47k) Vcc Vcc | --------------- | | | |_| | | +-1|----. Vcc|8-+ | | | |. |. |. | ^.---|7 | |16-+ | |10k | |10k | | | / / ^ | | | |_| |_| 100k|_| | /_+\ / / | | /|--- (voir la maquette) |.1u | | | | | /_+\ | | / |------_ +--||---|-[1k]--+-2|---+ | | | | | 15 GPIO | | | | +----------3|-----+ +-|--|6 | P1.1-P1.7| | 8x8 | | | +-4|Gnd +--|5 | P2.0-P2.7| | DEL | |+ | | --------------- | | | matrice| ((O)) |. | | / | |_| |MIC | |10k | +-20|Gnd \|-------- | |_| | | |_| _|_ _|_ _|_ _|_ /// /// /// ///
Conduite LED
La matrice LED est de 8 x 8 éléments. Ils sont pilotés par 15 broches GPIO. Ils sont multiplexés avec 8 lignes et 8 colonnes. Comme il n'y a que 15 broches après avoir utilisé 1 broche pour l'entrée ADC, le multiplexage a la ligne 1 et la colonne 0 partageant une seule broche. Cela signifie que la LED particulière de la ligne 1 et de la colonne 0 ne peut pas être allumée. Il s'agit d'un compromis car il n'y a tout simplement pas assez de broches GPIO pour piloter tous les éléments LED.
Capture du son
Le son est capturé via le microphone à condensateur intégré sur le BoosterPack éducatif. Comme les signaux du microphone sont faibles, nous devons l'amplifier à un niveau que le msp430 ADC10 peut utiliser avec une résolution raisonnable. J'avais utilisé un amplificateur opérationnel à deux étages à cette fin.
L'amplificateur opérationnel est composé de deux étages, chacun avec un gain d'environ 100x. J'avais adopté le TLC272 car c'est aussi une pièce très courante et il fonctionne avec 3V. La bande passante de gain étant d'environ 1,7 MHz, cela signifie que pour notre gain de 100x, nous ne pouvons garantir qu'il fonctionnerait bien (c'est-à-dire qu'il maintiendra le gain que nous voulons) sous 17Khz. (1.7Mhz/100).
À l'origine, j'avais l'intention de faire mesurer cet analyseur de spectre jusqu'à 16-20Khz, mais j'ai finalement trouvé qu'environ 8Khz suffisaient pour afficher de la musique. Cela peut être modifié en remplaçant le LM358 par quelque chose d'audio évalué et en changeant le taux d'échantillonnage. Recherchez simplement la bande passante de gain des amplis-op que vous choisissez.
Échantillonnage et FFT
La fonction FFT utilisée est le code "fix_fft.c" que de nombreux projets avaient adopté, il flotte sur internet depuis quelques années. J'avais essayé une version 16 bits et une version 8 bits. Finalement, je me suis contenté de la version 8 bits car pour mon objectif, je n'ai pas vu d'avancée majeure sur la version 16 bits.
Je n'ai pas une bonne compréhension du mécanisme FFT sauf qu'il s'agit d'une conversion du domaine temporel en domaine fréquentiel. Cela signifie que le taux (temps) des échantillons sonores, après avoir alimenté la fonction de calcul FFT, affectera la fréquence de l'amplitude que j'obtiens en conséquence. Ainsi, en ajustant le taux pour échantillonner le son, je peux déterminer la bande de fréquence comme résultat.
TimerA 0 CCR0 est utilisé pour conserver le temps d'échantillonnage. Nous déterminons d'abord les comptes dont nous avons besoin pour atteindre la fréquence de bande (correspond à notre fréquence d'horloge DCO de 16Mhz). c'est-à-dire TA0CCR0 réglé sur (8000/(BAND_FREQ_KHZ*2))-1; où BAND_FREQ_KHZ est 8 pour moi. Il peut être modifié si vous avez un meilleur ampli-op et/ou si vous voulez qu'il soit différent.
Bandes de fréquences et échelle d'amplitude
Le micrologiciel traite 16 bandes en un seul balayage et la synchronisation de capture produit une séparation de 500 Hz entre ces banques. La matrice LED est de 8 colonnes et n'affichera que 8 bandes/amplitudes. Au lieu d'afficher une bande sur deux, une liste de bandes de fréquences non linéaire est utilisée pour afficher les bandes de fréquences les plus dynamiques (en termes de musique). La liste comprend des écarts de 500 Hz dans les basses fréquences, des écarts de 1 kHz dans les bandes moyennes et des bandes de 1,5 kHz dans les aigus.
L'amplitude des bandes individuelles est réduite à 8 niveaux, qui sont représentés par le nombre de « points » horizontaux sur l'affichage matriciel à LED. Les niveaux d'amplitude sont réduits via une carte non linéaire qui traduit les résultats FFT en l'un des 8 points. Une sorte d'échelle logarithmique est utilisée car elle représente le mieux notre perception des niveaux sonores.
Il y a une logique AGC intégrée et l'analyseur de spectre essaiera de réduire les niveaux d'amplitude lorsqu'il y a plusieurs niveaux de crête détectés dans les cycles précédents. Ceci est fait avec une table de comparaison de règle coulissante.
Étape 6: Utilisation de l'appareil
- Une brève pression sur une touche en mode d'affichage fait défiler l'affichage sans point, un point, 2 points et 3 points.
- Un appui long passe en mode de configuration, un appui long ultérieur fait défiler le menu.
- Les éléments de menu passent par 'Hamming Window Option', 'Dimmer', 'Sampling / Refresh Rate'.
- En mode de configuration « Fenêtre de Hamming », des appuis courts permettent de passer d'un arrêt à l'autre, du marteau 1, du marteau 2, du marteau 3, un appui long confirme le réglage.
- En mode de configuration « Dimmer », des appuis courts font défiler les niveaux de luminosité disponibles de 0 à 3, un appui long confirme le réglage.
- En mode de configuration « Echantillonnage / Taux de rafraîchissement », des appuis courts font défiler les taux de rafraîchissement disponibles de 0 à 7, 0 signifie qu'il n'y a pas de délai, un appui long confirme le réglage.
- Le multiplexage de segments LED inclut des délais pour compenser les différences de luminosité pour les rangées individuelles.
Conseillé:
Comment faire un analyseur de spectre audio LED : 7 étapes (avec photos)
Comment faire un analyseur de spectre audio LED : L'analyseur de spectre audio LED génère le beau motif d'éclairage en fonction de l'intensité de la musique. Analyseur utilisant NeoPixe
Comment bricoler un analyseur de spectre de musique audio LED 32 bandes en utilisant Arduino Nano à la maison #arduinoproject: 8 étapes
Comment bricoler un analyseur de spectre musical audio LED 32 bandes à l'aide d'Arduino Nano à la maison doit être connecté devant la résistance 100k, sinon le bruit du spea
Analyseur de spectre audio DIY FFT : 3 étapes
Analyseur de spectre audio FFT DIY : L'analyseur de spectre FFT est un équipement de test qui utilise l'analyse de Fourier et des techniques de traitement du signal numérique pour fournir une analyse de spectre. En utilisant l'analyse de Fourier, il est possible pour une valeur dans, par exemple, le domaine de temps continu à conver
Analyseur de spectre de signal audio Arduino DIY : 3 étapes
Analyseur de spectre de signal audio Arduino DIY : il s'agit d'un analyseur audio très simple avec des modes visuels modifiables
Analyseur de spectre audio (VU-mètre) : 6 étapes
Analyseur de spectre audio (VU-mètre) : qu'est-ce que la musique ? D'un point de vue technique, la musique est essentiellement un signal dont la tension et la fréquence varient. L'analyseur de spectre audio est un appareil qui affiche le niveau de tension d'une fréquence particulière. C'est un instrument principalement utilisé dans des endroits comme