Obsah:
- Krok 1: Získejte díly
- Krok 2: Naplánujte rozložení součástí
- Krok 3: Sestavení
- Krok 4: Kompilace a načtení firmwaru
- Krok 5: Pochopte obvod
- Krok 6: Ovládání zařízení
Video: MSP430 Breadboard Audio Spectrum Analyzer: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Tento projekt je založen na mikrofonu a vyžaduje minimální externí komponenty. Používají se 2 knoflíkové buňky LR44, abych mohl celou konstrukci pracovat v mezích 170 prkénka s vázacím bodem. Jsou použity a ukázány ADC10, TimerA přerušení LPM probuzení, TimerA PWM jako výstup, použití tlačítek, celočíselná aritmetika.
Funkce
- 8bitové celočíselné FFT 16 vzorků při 500Hz separaci
- nelineární ukazuje 8 amplitud 1K, 1,5K, 2K, 3K, 4K, 5K, 6K, 7,5K
- mapa částečného logaritmu pro zobrazení amplitud, omezené, protože rozlišení bylo sníženo pro 8bitový FFT
- Jednostupňové mikrofonní zesilovače TLC272 se 100x násobným ziskem 100x (můžete zažít 2 stupně)
- z nabídky volitelně volitelné Hammingovo okno
- menu upravit 4 úrovně jasu
- menu upravit 8 úrovní vzorkovací frekvence / doba odezvy
- 2 x knoflíkový článek LR44 napájený „na palubě“
Krok 1: Získejte díly
Následující jsou potřebné pro tento projekt
- MSP430G2452 (další čip z TI Launchpad G2 nebo libovolného 4K 20 pinového MCU řady MSP430G)
- mini prkénko nebo perfboard pro 170 zesilovačů pro konstrukci předzesilovače
- Duální operační zesilovač TLC272
- mini elektretový mikrofon
- 47k (pull-up), 100k, 2 x 10k, 1k odpory
- 1 x 0,1 uF
- propojovací vodiče
- dvouřadý konektor s kolíkovým kolíkem, který se použije pro držák baterie
- 2 x knoflíková baterie LR44
Krok 2: Naplánujte rozložení součástí
Projekt má být postaven na 170 tie-point mini prkénku. Rozložení komponent je uvedeno níže. Zvláště je třeba poznamenat, že matice LED 8x8 má být umístěna na MCU MSP430. Kromě komponent existují ještě propojovací propojovací vodiče znázorněné znaky „+------+“.
G V + Gnd (rozložení 1 fáze) POUŽÍVÁME TOTO ROZVRH + ==================+ c0 ………… c7 | MIC……. + -----++-+…. | 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 a r1 sdílí stejný pin a nezobrazí se | +. +-+-+-+| +-+-+-+-+-+-+-+-+-++ *možná aplikace má c6 + c0 + r1 | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | tím se uvolní b6 pro 32kHz xtal hodiny | | | TLC272 | | | | | | | out - + G | | |+ a0 a1 a2 a3 a4 a5 b0 b1 b2 | | | +. +-+-+-+| +-+-+-+-+-+-+-+-+-+| | o || o o o. +-+.. R4 R6 C1 C2 R7 C4 R5 R2 | |…. o- [10k]-o……… | |. o- [1k] o o o………._. | | o ---- [10k] ----------- o……. o o | +====================================================================== ====+.1uF 100k 10k ADC tlačítko+ -----------------+
používáme pouze jeden stupeň TLC272
Krok 3: Sestavení
Můžete začít umisťovat komponenty na základě rozložení prkénka. Jelikož jde o umění ASCII, nemusí to být příliš jasné. V tomto kroku můžete spárovat fotografie a identifikovat všechna připojení.
Je třeba dbát na umístění čipů IC. V jednom z rohů je obvykle tečka označující pin 1 zařízení.
Použil jsem kabelové kabely CAT5 ethernet a jsou velmi snadno použitelné na projektech typu breadboard. Pokud máte staré kabely CAT5, můžete je rozříznout a zjistíte, že uvnitř je 6 zkroucených vodičů. Jsou ideální pro prkénka.
Krok 4: Kompilace a načtení firmwaru
Zdrojový kód se obvykle nachází v mých úložištích github.
U tohoto konkrétního projektu je jediný zdrojový soubor C nfft.c uložen v mém úložišti sbírek. Potřebujete pouze nfft.c
K kompilaci firmwaru používám mps430-gcc, ale s TI CCS by to mělo jít dobře. Můžete se vyhnout všem problémům s instalací IDE nebo kompilátorů tím, že přejdete na cloud TI CCS, což je webové IDE. Dokonce si stáhne firmware do cílového zařízení.
Toto je příklad příkazu kompilace s přepínači
msp430 -gcc -Os -Wall -funkce -sekce -fdata -sekce -fno -inline -small -functions -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- sekce -I/energia -0101E0016/hardware/msp430/jádra/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c
K programování MCU používám jako programátor TI Launchpad G2.
Krok 5: Pochopte obvod
Schéma zapojení je uvedeno níže
MSP430G2452 nebo podobný, vyžaduje 4K Flash TLC272 duální operační zesilovač, GBW @1,7 MHz, @x100 zisk, šířka pásma až 17 kHz
* používáme pouze jeden stupeň TLC272
._.
| MSP430G2452 | Vcc | | + ----------------------- 2 | ADC0 | 1-+ | | | |. | Vcc | | | pull-up (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | |. |. |. | ^ --- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100k | _ | | / _+\ / / | | /| --- (viz rozložení prkénka) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Gnd +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | matice | ((O)) |. | | / | | _ | | MIC | | 10k | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ //// /// /// ///
LED řízení
LED matice má 8 x 8 prvků. Jsou poháněny 15 GPIO piny. Jsou multiplexované s 8 řádky a 8 sloupcovými schématy. Protože poté, co použijeme 1 pin pro vstup ADC, existuje pouze 15 pinů, multiplexování má řádek 1 a sloupec 0, které sdílejí jeden pin. To znamená, že konkrétní LED na řádku 1 a sloupci 0 nemůže svítit. Jedná se o kompromis, protože k ovládání všech prvků LED není dostatek pinů GPIO.
Zachycení zvuku
Zvuk je zachycen pomocí integrovaného kondenzátorového mikrofonu ve vzdělávacím BoosterPacku. Jelikož jsou signály mikrofonu malé, musíme jej zesílit na úroveň, kterou msp430 ADC10 může používat s rozumným rozlišením. K tomuto účelu jsem použil dvoustupňový zesilovač.
Operační zesilovač se skládá ze dvou stupňů, každý s přibližně 100násobným ziskem. Přijal jsem TLC272, protože je to také velmi běžná součást a funguje s 3V. Šířka pásma zisku přibližně 1,7 MHz znamená, že pro náš zisk 100x můžeme pouze zaručit, že bude fungovat pěkně (tj. Zachovat požadovaný zisk) pod 17 kHz. (1,7 MHz / 100).
Původně jsem chtěl, aby tento spektrální analyzátor měřil až 16-20Khz, ale nakonec jsem zjistil, že asi 8Khz je dost dobrých na ukázku hudby. To lze změnit výměnou LM358 za něco s hodnocením zvuku a změnou vzorkovací frekvence. Stačí se podívat na šířku pásma zisku operačních zesilovačů, které si vyberete.
Odběr vzorků a FFT
Použitá funkce FFT je kód „fix_fft.c“, který přijalo mnoho projektů, na internetu se pohybuje už několik let. Zkoušel jsem 16bitovou a 8bitovou verzi. Nakonec jsem se spokojil s 8bitovou verzí, pokud jde o můj účel, neviděl jsem zásadní pokrok v 16bitové verzi.
Nerozumím dobře mechanismu FFT, kromě toho, že jde o konverzi časové domény na frekvenční doménu. To znamená, že rychlost (čas) zvukových vzorků po vložení do funkce výpočtu FFT ovlivní frekvenci amplitudy, kterou v důsledku dostávám. Takže úpravou rychlosti na samplovací zvuk mohu ve výsledku určit frekvenční pásmo.
TimerA 0 CCR0 se používá k udržení doby vzorkování. Nejprve určíme počty, které potřebujeme k dosažení frekvence pásma (odpovídá naší hodinové frekvenci DCO 16 MHz). tj. TA0CCR0 nastaveno na (8000/(BAND_FREQ_KHZ*2))-1; kde BAND_FREQ_KHZ je pro mě 8. Lze to změnit, pokud máte lepší operační zesilovač a / nebo chcete, aby to bylo jiné.
Frekvenční pásma a škálování amplitudy
Firmware zpracovává 16 pásem jedním tahem a časování snímání vytváří mezi těmito bankami oddělení 500 Hz. Matice LED má 8 sloupců a zobrazí pouze 8 pásem / amplitud. Namísto zobrazení jednoho každých dvou pásem se k zobrazení dynamičtějších frekvenčních pásem (pokud jde o hudbu) používá nelineární seznam frekvenčních pásem. Seznam obsahuje mezery 500 Hz na dolním konci, mezery 1 KHz ve středních pásmech a pásma 1,5 kHz na výškách.
Amplituda jednotlivých pásem je zmenšena na 8 úrovní, které jsou reprezentovány počtem horizontálních 'bodů' na LED maticovém displeji. Amplitudové úrovně jsou zmenšeny pomocí nelineární mapy, která převádí výsledky FFT do jedné z 8 tečky. Používá se jakési logaritmické škálování, které nejlépe reprezentuje naše vnímání hladin zvuku.
Je zde vestavěná logika AGC a spektrální analyzátor se pokusí snížit úrovně amplitudy, pokud je v předchozích cyklech detekováno několik špičkových úrovní. To se provádí pomocí srovnávací tabulky posuvného pravítka.
Krok 6: Ovládání zařízení
- Krátké stisknutí klávesy v režimu zobrazení cykluje po zobrazení bez bodů, jedné tečky, 2 teček a 3 bodů.
- Dlouhým stisknutím přejdete do režimu nastavení, následným dlouhým stisknutím otočíte nabídku.
- Položky nabídky cyklují pomocí 'Hamming Window Option', 'Dimmer', 'Sampling / Refresh Rate'.
- V režimu nastavení 'Hamming Window' krátké stisknutí cykluje bez hamming, hamming 1, hamming 2, hamming 3, dlouhé stisknutí potvrzuje nastavení.
- V režimu nastavení „Dimmer“krátké stisknutí cykluje mezi dostupnými úrovněmi jasu od 0 do 3, dlouhé stisknutí potvrzuje nastavení.
- V režimu nastavení „Vzorkovací / obnovovací frekvence“krátká stisknutí cyklují dostupné obnovovací frekvence od 0 do 7, 0 znamená žádné zpoždění, dlouhé stisknutí potvrzuje nastavení.
- Multiplexování LED segmentů zahrnuje časové zpoždění pro kompenzaci rozdílů jasu pro jednotlivé řádky.
Doporučuje:
DIY Spiderweb Audio Spectrum: 3 kroky
DIY Spiderweb Audio Spectrum: Udělejte si pokoj díky tomuto zvukovému spektru spiderwebu, webová část zabere trochu času, ale nakonec budou výsledky dobré a úžasné další zvukové spektrum n mnoho dalších již brzy, pro videa mě můžete sledovat na Instagramu @shub
CRAZY L.O.L SPECTRUM ANALYZER: 6 kroků (s obrázky)
CRAZY L.O.L SPECTRUM ANALYZER: Dnes bych se chtěl podělit o to, jak vytvořit analyzátor zvukového spektra - 36 pásem kombinací 4 LoL Shieldů dohromady. Tento šílený projekt využívá knihovnu FFT k analýze stereofonního zvukového signálu, jeho převodu do frekvenčních pásem a zobrazení amplitudy těchto frekv
Koncový počítač na MSP430: 6 kroků
Konečný stavový stroj na MSP430: Ukážu vám, jak programovat spouštěcí podložku MSP430G2 pomocí konečných stavových strojů (FSM) pomocí nástrojů YAKINDU Statechart Tools přímo v Texas Instruments Code Composer Studio. Tento tutoriál obsahuje šest kroků: Instalace nástrojů YAKINDU Statechart jako
Počítadlo sekund MSP430: 10 kroků
Počítadlo sekund MSP430: Vítejte! Počítadlo sekund: Použití CCStudio 8 a MSP430F5529 pro projekt. Jazyk C pro kódování mikrořadiče. Použití režimů, časovačů a přerušení s nízkým výkonem. Výstup je zobrazen pomocí 7 segmentů
Měřič LoL Shield Audio Spectrum VU: 4 kroky (s obrázky)
Měřič VU LoL Shield Audio Spectrum: Toto je měřič VU zvukového spektra využívající štít LoL pro Arduino. LoL Shield je 14 x 9 LED matice, která se hodí na Arduino jako štít a je ovládána efektivní metodou známou jako Charlieplexing. Byl navržen Jimmie P