Sisukord:
- Samm: hankige osi
- 2. samm: plaanige komponentide paigutus
- 3. samm: kokkupanek
- Samm: püsivara koostamine ja laadimine
- Samm: mõistke ahelat
- 6. samm: seadme kasutamine
Video: MSP430 Breadboardi helispektri analüsaator: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
See projekt põhineb mikrofonil ja nõuab minimaalseid väliseid komponente. Kasutatakse 2 x LR44 mündielementi, et saaksin kogu struktuuri töötada 170 lipsupunktiga mini-leivaplaadi piires. Kasutatakse ja demonstreeritakse ADC10, TimerA katkestus LPM-i äratust, TimerA PWM nagu väljund, nuppude kasutamine, täisarvuline aritmeetika.
Funktsioonid
- 8 -bitised täisarvulised FFT 16 proovid 500 Hz lahus
- näitab 8 amplituudi 1K, 1,5K, 2K, 3K, 4K, 5K, 6K, 7,5K mittelineaarset
- osaline logaritmikaart amplituudide kuvamiseks, piiratud, kuna eraldusvõime on 8 -bitise FFT puhul vähenenud
- TLC272 üheastmeline mikrofonvõimendus 100x korda 100x võimendusega (saate kogeda 2 astet)
- menüüst valikuline Hammingi aken
- menüü reguleerib 4 heledustaset
- menüü reguleerib 8 taset proovivõtu sagedust / reageerimisaega
- 2 x LR44 mündiraku toitega "pardal"
Samm: hankige osi
Selle projekti jaoks on vaja järgmist
- MSP430G2452 (lisakiip TI Launchpad G2 või mis tahes 4K 20 -pin MSP430G seeria MCU)
- 170 kinnituspunktiga mini leivalaud või perf-plaat eelvõimendi ehitamiseks
- TLC272 Dual op-amp
- mini elektreetmikrofon
- 47k (tõmbejõud), 100k, 2 x 10k, 1k takistid
- 1 x 0,1 uF
- hüppaja juhtmed
- kaherealine isane tihvtpea, mida kasutatakse akuhoidiku jaoks
- 2 x LR44 mündipatarei
2. samm: plaanige komponentide paigutus
Projekt tuleb ehitada 170 lipsupunktiga minileivale. Komponentide paigutus on järgmine. Eraldi väärib märkimist, et 8x8 LED -maatriks tuleb paigutada MSP430 MCU peale. Lisaks komponentidele on ka ühendavaid džemprijuhtmeid, mis on kujutatud tähemärkidega "+------+".
G V + Gnd (1 -astmeline paigutus) KASUTAME SEDA LÄBIVAATAMIST + ==================================== =================+ c0 ………… c7 | MIC……. + -----++-+…. | r0 o o o o o o o | o || o + ----- [100k] --------------- +….. | r1 X o o o o o o |. +--------------+-+. C7 C6 R1 C0 R3 C5 C3 R0 |. o o o o o o o | |…… |.. | b6 a7 | | c0 ja r1 jagavad sama tihvti ja neid ei kuvata | +. +-+-+-+| +-+-+-+-+-+-+-+-+-+| *võimalik rakendus c6 + c0 + r1 | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | see vabastab 32 kHz xtal kella jaoks b6 | | TLC272 | | | | | | | välja - + 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 nupp+ -----------------+
me kasutame ainult ühte TLC272 etappi
3. samm: kokkupanek
Saate alustada komponentide paigutamist leivaplaadi paigutuse alusel. Kuna see on ASCII kunst, ei pruugi see olla väga selge. Selles etapis saate fotodega siduda, et tuvastada kõik ühendused.
IC -kiipide paigutamisel tuleb olla ettevaatlik. Tavaliselt on ühel nurgal punkt, mis näitab seadme tihvti 1.
Olin kasutanud CAT5 Etherneti kaabli juhtmeid ja neid on leivaplaadi projektidega väga lihtne töötada. Kui teil on vanad CAT5 kaablid, saate selle lahti lõigata ja leiate, et sees on 6 keerutatud juhtmest. Need sobivad ideaalselt leivalaudade jaoks.
Samm: püsivara koostamine ja laadimine
Lähtekood asub tavaliselt minu githubi hoidlates.
Selle konkreetse projekti jaoks on üks C -lähtefail nfft.c minu leivalaua kogude hoidlasse komplekteeritud. Teil on vaja lihtsalt nfft.c
Ma kasutan püsivara kompileerimiseks mps430-gcc, kuid see peaks TI CCS-iga hästi sobima. Saate vältida kõiki IDE -de või kompilaatorite installimisega seotud probleeme, minnes veebipõhisele IDE -le TI CCS cloud. See laadib isegi püsivara alla teie sihtseadmesse.
See on näide kompileerimiskäsust koos lülititega
msp430 -gcc -Os -Seina -funktsiooniosad -fdata -lõigud -fno -inline -väikesed funktsioonid -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- sektsioonid -I/energia -0101E0016/hardware/msp430/core/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c
Kasutan MCU programmeerimiseks TI Launchpad G2 programmeerijana.
Samm: mõistke ahelat
Lülitusskeem on esitatud allpool
MSP430G2452 või sarnane, vajab 4K Flash TLC272 Dual op-Amp, GBW @1,7Mhz, @x100 võimendust, ribalaiust kuni 17Khz
* me kasutame ainult ühte TLC272 etappi
._.
| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | |. | Vcc | | | | pull-up (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | |. |. |. | ^.--- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100 000 | _ | | / _+\ / / | | /| --- (vt leivalaua paigutust) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Gnd +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | maatriks | ((O)) |. | | / | | _ | | MIC | | 10k | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ /// /// /// ///
LED juhtimine
LED -maatriks koosneb 8 x 8 elemendist. Neid juhib 15 GPIO tihvti. Need on multipleksitud 8 rida ja 8 veeruskeemi. Kuna ADC sisendi jaoks on 1 tihvti kasutamisel ainult 15 tihvti, on multipleksimisel rida 1 ja veerg 0 ühist tihvti. See tähendab, et konkreetne LED reas 1 ja veerus 0 ei saa põleda. See on kompromiss, kuna kõigi LED -elementide juhtimiseks pole lihtsalt piisavalt GPIO -tihvte.
Heli jäädvustamine
Heli salvestatakse Educational BoosterPacki kondensaatorimikrofoni kaudu. Kuna mikrofoni signaalid on väikesed, peame seda võimendama tasemele, mida msp430 ADC10 saab kasutada mõistliku eraldusvõimega. Olin selleks kasutanud kaheastmelist op-võimendit.
Op-amp võimendi koosneb kahest astmest, millest igaüks on umbes 100x võimendusega. Mul oli TLC272 kasutusele võetud, kuna see on ka väga levinud osa ja see töötab 3V abil. Võimendusribalaius umbes 1,7 MHz tähendab, et meie 100 -kordse võimenduse korral saame garanteerida, et see töötab kenasti (st soovitud võimenduse säilitamine) alla 17 Khz. (1,7 MHz / 100).
Algselt kavatsen muuta selle spektraalanalüsaatori mõõtmeteks kuni 16-20Khz, kuid lõpuks leidsin, et umbes 8Khz on muusika näitamiseks piisavalt hea. Seda saab muuta, asendades LM358 koos helikvaliteediga ja muutes diskreetimissagedust. Otsige lihtsalt valitud op-võimendite võimendusribalaiust.
Proovide võtmine ja FFT
Kasutatav FFT -funktsioon on kood "fix_fft.c", mille paljud projektid olid omaks võtnud, see on juba mõne aasta internetis hõljunud. Olin proovinud 16 -bitist ja 8 -bitist versiooni. Lõpuks leppisin oma eesmärgi nimel 8 -bitise versiooniga, ma ei näinud 16 -bitise versiooni osas suurt edasiminekut.
Ma ei saa FFT mehhanismist hästi aru, välja arvatud see, et see on aja domeenist sageduseks domeeni teisendamine. See tähendab, et heliproovide kiirus (aeg) pärast FFT arvutusfunktsiooni sisestamist mõjutab selle tulemusel saadud amplituudi sagedust. Nii et reguleerides kiirust prooviheliga, saan tulemuseks määrata sagedusriba.
Taimerit 0 CCR0 kasutatakse proovivõtmise aja hoidmiseks. Esmalt määrame kindlaks sagedused, mida vajame ribalaiuse saavutamiseks (vastab meie DCO taktsagedusele 16Mhz). st TA0CCR0 seatud väärtusele (8000/(BAND_FREQ_KHZ*2))-1; kus BAND_FREQ_KHZ on minu jaoks 8. Seda saab muuta, kui teil on parem op-amp ja / või soovite, et see oleks erinev.
Sagedusribad ja amplituudi skaleerimine
Püsivara töötleb ühe sagedusega 16 sagedusriba ja püüdmise ajastus tekitab nende pankade vahel 500 Hz eralduse. LED -maatriks koosneb 8 veerust ja kuvab ainult 8 riba / amplituudi. Iga kahe riba kuvamise asemel kasutatakse dünaamilisemate sagedusribade (muusika osas) kuvamiseks mittelineaarset sagedusalade loendit. Nimekirjas on 500 Hz lüngad madalamal, 1 KHz lüngad keskmistel ja 1,5 kHz sagedusalad kõrgematel.
Üksikute ribade amplituud vähendatakse 8 tasemeni, mida tähistab horisontaalsete punktide arv LED-maatriksi ekraanil. Amplituuditasemed vähendatakse mittelineaarse kaardi abil, mis teisendab FFT tulemused üheks kaheksast täpid. Kasutatakse omamoodi logaritmilist skaleerimist, kuna see esindab kõige paremini meie arusaama helitasemest.
Seal on sisseehitatud AGC loogika ja spektrianalüsaator püüab amplituudi taset vähendada, kui eelmistes tsüklites on tuvastatud mitu tipptaset. Seda tehakse libiseva joonlaua võrdlustabeliga.
6. samm: seadme kasutamine
- Lühike klahvivajutus kuvamisrežiimis liigub ekraanil ilma punktita, ühest punktist, kahest punktist ja kolmest punktist.
- Pikk vajutus siseneb seadistusrežiimi, järgnev pikk vajutus pöörab menüüd.
- Menüüvalikud liiguvad läbi 'Hamming Window Option', 'Dimmer', 'Sampling / Refresh Rate'.
- Seadistusrežiimis „Hamming Window“teeb lühike vajutus tsüklit ilma haamrita, löömine 1, löömine 2, löömine 3, pikk vajutus kinnitab seadistust.
- Häälestusrežiimis 'Dimmer' (lühike vajutus) liigub läbi saadaolevate heledustasemete vahemikus 0 kuni 3, pikk vajutus kinnitab seadistuse.
- Seadistusrežiimis 'Proovivõtmine / värskendussagedus' lülitab lühike vajutus saadaval olevate värskendussageduste vahemikku 0 kuni 7, 0 tähendab viivitust, pikk vajutus kinnitab seadistust.
- Led -segmentide multipleksimine sisaldab aja viivitusi, et kompenseerida üksikute ridade heleduse erinevusi.
Soovitan:
LED -helispektri analüsaatori valmistamine: 7 sammu (piltidega)
LED -helispektri analüsaatori valmistamine: LED -helispektri analüsaator genereerib kauni valgustusmustri vastavalt muusika intensiivsusele. Turul on saadaval palju DIY LED -muusikaspektri komplekte, kuid siin teeme LED -helispektri Analüsaator NeoPixe abil
DIY FFT helispektri analüsaator: 3 sammu
DIY FFT helispektri analüsaator: FFT spektrianalüsaator on katseseade, mis kasutab spektri analüüsi tegemiseks Fourier 'analüüsi ja digitaalse signaalitöötluse tehnikaid. Fourier 'analüüsi kasutades on võimalik näiteks pideva aja domeeni üks väärtus teisendada
Helispektri analüsaator (VU -mõõtur): 6 sammu
Helispektri analüsaator (VU Meter): Mis on muusika? Tehnilisest seisukohast on muusika põhimõtteliselt erineva pinge ja sagedusega signaal. Helispektri analüsaator on seade, mis näitab konkreetse sageduse pingetaset. See on instrument, mida kasutatakse peamiselt sellistes kohtades nagu
Raspberry Pi helispektri kuva: 4 sammu
Raspberry Pi helispektri ekraan: kasutage DFRobot 64x64 RGB maatrikspaneeli koos Raspberry Pi 3 B+ -ga, et tuua tantsupidu endaga kaasa, kuhu iganes lähete! DFRobot võttis minuga ühendust, et teha nende 64x64 RGB LED -maatriksi jaoks sponsoreeritud projekt. Algul proovisin seda kasutada koos ESP32 Firebe'iga
LoL Shieldi helispektri VU -mõõtja: 4 sammu (piltidega)
LoL Shieldi helispektri VU -mõõtja: see on helispektri VU -mõõtur, mis kasutab Arduino jaoks LoL Shieldi. LoL Shield on 14 x 9 LED -maatriks, mis sobib Arduinole kilbina ja mida juhitakse tõhusa Charlieplexing -meetodiga. Selle kujundas Jimmie P