Мазмуну:
- 1 -кадам: Бөлүктөрдү алуу
- 2 -кадам: Компоненттердин жайгашуусун пландаңыз
- 3 -кадам: Ассамблея
- 4 -кадам: Камтылган программаны түзүү жана жүктөө
- 5 -кадам: Районду түшүнүңүз
- 6 -кадам: Түзмөктү иштетүү
Video: MSP430 Breadboard Audio Spectrum Analyzer: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Бул долбоор микрофонго негизделген жана минималдуу тышкы компоненттерди талап кылат. 2 x LR44 монета клеткалары колдонулат, ошондуктан мен 170 ставкалуу мини нан тактасынын чегинде иштей алам. ADC10, TimerA үзгүлтүккө учуроочу LPM ойготуусу, TimerA PWM сыяктуу чыгаруу, баскычты колдонуу, бүтүн сан арифметикасы колдонулат жана көрсөтүлөт.
Өзгөчөлүктөрү
- 500 Гц бөлүүдө 8 бит бүтүн сан FFT 16 үлгүлөрү
- 1K, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K сызыктуу эмес 8 амплитудасын көрсөтөт
- жарым -жартылай логарифм картасы амплитудасын көрсөтүү үчүн чектелген, анткени чечим 8 бит FFT үчүн кыскарган
- TLC272 бир баскычтуу микрофон 100 эсе 100 эсе көбөйөт (сиз 2 этапты башыңыздан өткөрө аласыз)
- меню тандалма кошумча Hamming терезеси
- меню 4 деңгээл жарыктыгын тууралайт
- меню 8 деңгээл үлгү ылдамдыгын / жооп убактысын тууралайт
- 2 x LR44 монета клеткасы "бортто" иштейт
1 -кадам: Бөлүктөрдү алуу
Төмөндө бул долбоор үчүн эмне керек
- MSP430G2452 (TI Launchpad G2ден кошумча чип, же 4K 20 пин MSP430G сериялы MCU)
- алдын ала куруу үчүн 170 галстук чекиттүү мини нан же такта
- TLC272 Кош оп-амп
- мини электрофон
- 47k (тартуу), 100k, 2 x 10k, 1k каршылыгы
- 1 x 0.1uF
- секирүүчү зымдар
- батарейка кармоочу үчүн колдонула турган эки катар эркек пин башы
- 2 x LR44 монеталуу батарея
2 -кадам: Компоненттердин жайгашуусун пландаңыз
Долбоор 170 таяк чекиттүү мини нан тактасына курулат. Компоненттердин жайгашуусу төмөндө көрсөтүлгөндөй. Өзгөчө белгилей кетчү нерсе, 8x8 LED матрицасы MSP430 MCUнун үстүнө коюлат. Компоненттерден тышкары, "+------+" символдору менен туташтырылган секирүүчү зымдар да бар.
G V + Gnd (1 этап макети) БИЗ БУЛ КАЛДЫКТЫ КОЛДОНОБУЗ + ================================== =================+ 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 |. о о о о о о о о о |…… |.. | b6 a7 | | c0 жана r1 бир пинди бөлүшөт жана көрсөтпөйт | +. +-+-+-+| +-+-+-+-+-+-+-+-+-+-+| *c6 + c0 + r1 | болушу мүмкүн болгон колдонмо | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | бул 32 кГц xtal сааты үчүн b6 бошотот | | | 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 Button+ -----------------+
биз TLC272нин бир этабын гана колдонуп жатабыз
3 -кадам: Ассамблея
Нан тактасынын негизинде компоненттерди жайгаштырууну баштасаңыз болот. Бул ASCII искусствосу болгондуктан анча түшүнүксүз болушу мүмкүн. Сиз бардык байланыштарды аныктоо үчүн бул кадамда сүрөттөрдү жупташтырсаңыз болот.
IC чиптерин жайгаштырууга кам көрүү керек. Адатта, бурчтардын биринде түзмөктүн 1 -пинин көрсөтүү үчүн чекит бар.
Мен CAT5 ethernet кабелдик зымдарын колдонгон болчумун жана алар панель долбоорлорунда иштөө үчүн абдан оңой. Эгерде сизде эски CAT5 кабели бар болсо, анда аны кесип салсаңыз болот, ичинде 6 буралган зым бар. Алар нан такталары үчүн идеалдуу.
4 -кадам: Камтылган программаны түзүү жана жүктөө
Булак коду көбүнчө менин github репозиторийлеримде жайгашкан.
Бул конкреттүү долбоор үчүн nfft.c жалгыз C булагы файлы менин нандар жыйнагымдын репозиторийинде топтолгон. Сизге жөн гана nfft.c керек
Мен mps430-gccти программаны түзүү үчүн колдонуп жатам, бирок ал TI CCS менен жакшы жүрүшү керек. Сиз IDEлерди же компиляторлорду орнотуунун бардык кыйынчылыктарынан желе негизделген IDE болгон TI CCS булутуна баруу менен кача аласыз. Ал тургай, сиздин түзмөккө камтылган программаны жүктөп берет.
Бул w/ switch которуу буйругунун мисалы
msp430 -gcc -Os -Wall -функция -бөлүмдөр -fdata -бөлүмдөр -fno -inline -Small -functions -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- -I/energia -0101E0016/аппараттык/msp430/өзөктүү/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c
Мен MCUду программалоо үчүн TI Launchpad G2ди программист катары колдонуп жатам.
5 -кадам: Районду түшүнүңүз
Электр схемасы төмөндө келтирилген
MSP430G2452 же ушуга окшош, 4K Flash TLC272 Dual Op-Amp, GBW @1.7Mhz, @x100 пайда, өткөрүмдүүлүк 17Khzге чейин керек
* биз TLC272дин бир этабын гана колдонуп жатабыз
._.
| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | |. | Vcc | | | | pull (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | |. |. |. | ^.--- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100k | _ | | / _+\ / / | | /| --- (нан тактасынын жайгашуусун караңыз) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Gnd +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | матрица | ((O)) |. | | / | | _ | | MIC | | 10k | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ //////////
LED айдоо
LED матрицасы 8 х 8 элементтен турат. Алар 15 GPIO казыгы менен башкарылат. Алар 8 катар жана 8 мамыча схемасы менен мультиплекстелген. ADC киргизүү үчүн 1 пин колдонгондон кийин 15 гана казык бар болгондуктан, мультиплекстөөдө 1 -пин жана 0 -графанын бир пинди бөлүшүүсү бар. Бул 1 -катардагы жана 0 -тилкедеги өзгөчө LEDди жандырууга болбойт дегенди билдирет. Бул компромисс, анткени бардык LED элементтерин иштетүү үчүн GPIO төөнөгүчтөрү жетишсиз.
Sound Capture
Үндү Educational BoosterPackтеги борттогу конденсатор микрофону аркылуу тартып алышат. Микрофондун сигналдары кичинекей болгондуктан, биз аны msp430 ADC10 акылга сыярлык чечимди колдоно турган деңгээлге чейин күчөтүшүбүз керек. Мен бул үчүн эки баскычтуу оп-амп күчөткүчүн колдонгон элем.
Оп-амп күчөткүчү эки этаптан турат, алардын ар бири болжол менен 100 эсе көбөйөт. Мен TLC272ди кабыл алгам, анткени ал дагы абдан кеңири таралган жана ал w/ 3V менен иштейт. Болжол менен 1,7 МГц болгон кирешелүүлүк, биз 100x пайда алуу үчүн, биз анын 17 кГц астында жакшы иштээрине кепилдик бере алабыз (б.а. биз каалаган кирешени сактап калабыз). (1.7Mhz / 100).
Башында мен бул спектр анализаторун 16-20КГцке чейин чыгарууну көздөп жүргөм, бирок акырында 8КГц жөнүндө музыканы көрсөтүүгө жакшы экенин байкадым. Бул аудио-баа LM358 w/ бир нерсе алмаштыруу жана тандоо ылдамдыгын өзгөртүү менен өзгөртүлүшү мүмкүн. Сиз тандаган оп-амптердин кирүү жөндөмдүүлүгүн издеңиз.
Тандоо жана FFT
Колдонулган FFT функциясы - бул көптөгөн долбоорлор кабыл алган "fix_fft.c" коду, ал бир нече жылдардан бери интернетте калкып жүрөт. Мен 16 биттик жана 8 биттик версиясын сынап көрдүм. Акыр -аягы, мен 8 -биттик версияга макулдугумду бердим, мен 16 -биттик версиясында чоң жылыштарды көрө алган жокмун.
Мен FFT механизми жөнүндө жакшы түшүнүккө ээ эмесмин, бирок бул доменди жыштыкка айлантуу үчүн убакыт домени. Бул үн үлгүлөрүнүн ылдамдыгы (убактысы), FFT эсептөө функциясына берилгенден кийин, мен алган амплитуданын жыштыгына таасир этет дегенди билдирет. Ошентип, ылдамдыкты үн үлгүсүнө тууралоо менен, мен жыйынтыгында жыштык диапазонун аныктай алам.
TimerA 0 CCR0 үлгү алуу убактысын сактоо үчүн колдонулат. Биз адегенде диапазондун жыштыгына жетүү үчүн керек болгон сандарды аныктайбыз (биздин DCO сааттын ылдамдыгы 16 МГцке туура келет). башкача айтканда TA0CCR0 коюлган (8000/(BAND_FREQ_KHZ*2))-1; бул жерде BAND_FREQ_KHZ 8 мен үчүн. Эгер жакшыраак оп-ампка ээ болсоңуз жана / же анын башкача болушун кааласаңыз, аны өзгөртө аласыз.
Frequency Bands жана Amplitude Scaling
Камтылган программа бир убакта 16 диапазонду иштетет жана тартуу убактысы бул банктар ортосунда 500 Гц бөлүнүүнү түзөт. LED матрицасы 8 тилкеден турат жана 8 диапазонду / амплитуданы гана көрсөтөт. Ар бир эки диапазонду көрсөтүүнүн ордуна, сызыктуу эмес жыштык диапазону динамикалык жыштык диапазондорун көрсөтүү үчүн колдонулат (музыка жагынан). Тизме төмөн жагында 500 Гц боштуктар, ортоңку тилкелерде 1 КГц боштуктар жана бийиктиктеги 1,5 КГц тилкелери.
Жеке диапазондордун амплитудасы LED матрицасынын дисплейинде горизонталдуу "чекиттердин" саны менен көрсөтүлгөн 8 деңгээлге чейин төмөндөтүлөт. чекиттер Логарифмалык масштабдын бир түрү колдонулат, анткени ал үн деңгээлин кабылдоону эң жакшы чагылдырат.
Киргизилген AGC логикасы бар жана спектр анализатору мурунку циклдерде аныкталган бир нече чоку бар болгондо амплитуда деңгээлин төмөндөтүүгө аракет кылат. Бул салыштырма стол менен жылдырылган сызгычтын жардамы менен жасалат.
6 -кадам: Түзмөктү иштетүү
- Кыска басуу дисплей режиминде чекит жок, бир чекит, 2 чекит жана 3 чекиттүү дисплей аркылуу өтөт.
- Узак басуу орнотуу режимине кирет, андан кийин узак басуу меню аркылуу айланат.
- Меню пункттары 'Hamming Window Option', 'Dimmer', 'Sampling / Refresh Rate' аркылуу өтөт.
- "Хамминг терезеси" орнотуу режиминде, кыска басуулар цикл жок, 1, 2, 2, 3 хамминг, узак басуу орнотууну ырастайт.
- "Dimmer" орнотуу режиминде, 0дөн 3кө чейин жеткиликтүү жарыктык деңгээлдери аркылуу кыска басуу циклдери, узак басуу орнотууну ырастайт.
- "Үлгү алуу / Жаңылоо ылдамдыгы" орнотуу режиминде, 0дөн 7ге чейинки жеткиликтүү жаңыртуу ылдамдыктары аркылуу кыска басуу циклдери кечиктирилбейт, узак басуу орнотууну ырастайт.
- LED сегментинин мультиплексингине жеке катарлар үчүн жарыктыктын айырмачылыктарын толтуруу үчүн убакытты кечиктирүү кирет.
Сунушталууда:
DIY Spiderweb Audio Spectrum: 3 кадам
DIY Spiderweb Аудио Спектри: Бул жөргөмүштүн аудио спектринин жардамы менен бөлмөңүздү укмуштай кылып жасаңыз, веб -бөлүккө бир аз убакыт кетет, бирок жыйынтыгы жакшы жана таң калыштуу болот, дагы көптөгөн аудио спектр жакында келет, видеолор үчүн сиз мени ээрчип алсаңыз болот. Инстаграмда @shub
DIY Arduino Audio Signal Spectrum Analyzer: 3 кадам
DIY Arduino Audio Signal Spectrum Analyzer: Бул өзгөрүлмө визуалдык режимдери бар абдан жөнөкөй аудио анализатор
MSP430 Seconds Counter: 10 кадам
MSP430 Seconds Counter: Кош келиңиз! Секунддарды эсептөө: Долбоор үчүн CCStudio 8 жана MSP430F5529 колдонуу. C тили микро контроллерди коддоо үчүн. Төмөн кубат режимдерин, таймерлерди жана үзгүлтүктөрдү колдонуу. Чыгуу 7 сегмент аркылуу көрсөтүлөт
Raspberry Pi Audio Spectrum Display: 4 кадам
Raspberry Pi аудио спектринин дисплейи: DFRobot 64x64 RGB матрицасын Raspberry Pi 3 B+ менен колдонуңуз, кайда барсаңыз да бий кечесин алып келиңиз! DFRobot мага 64x64 RGB LED матрицасы үчүн демөөрчүлүк кылган долбоорду ишке ашыруу үчүн кайрылды. Башында мен аны ESP32 Firebe менен колдонууга аракет кылдым
LoL Shield Audio Spectrum VU Meter: 4 кадам (Сүрөттөр менен)
LoL Shield Audio Spectrum VU Meter: Бул Arduino үчүн LoL Shield колдонулган VU аудио спектри. LoL Shield - бул 14 x 9 LED матрицасы, ал калкан катары Arduinoго туура келет жана Charlieplexing деп аталган эффективдүү ыкма аркылуу башкарылат. Бул Jimmie P. тарабынан иштелип чыккан