فهرست مطالب:
- مرحله 1: خرید قطعات
- مرحله 2: طرح بندی اجزای برنامه
- مرحله 3: مونتاژ
- مرحله 4: نرم افزار را کامپایل و بارگذاری کنید
- مرحله 5: درک مدار
- مرحله 6: عملکرد دستگاه
تصویری: MSP430 Breadboard Audio Spectrum Analyzer: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
این پروژه مبتنی بر میکروفون است و به حداقل اجزای خارجی نیاز دارد. 2 سلول سکه LR44 استفاده می شود به طوری که من می توانم کل ساختار را در محدوده یک تخته کوچک 170 تایی کار کنم. ADC10 ، TimerA وقفه LPM را بیدار می کند ، TimerA PWM مانند خروجی ، استفاده از دکمه ، حساب عدد صحیح استفاده می شود و نشان داده می شود.
امکانات
- عدد صحیح 8 بیتی FFT 16 نمونه در جداسازی 500 هرتز
- 8 دامنه 1K ، 1.5K ، 2K ، 3K ، 4K ، 5K ، 6K ، 7.5K غیر خطی را نشان می دهد
- نقشه لگاریتم جزئی برای نشان دادن دامنه ، محدود به عنوان رزولوشن برای FFT 8 بیتی کاهش یافته است
- میکروفون تک مرحله ای TLC272 با 100 برابر افزایش 100 برابر (می توانید با 2 مرحله تجربه کنید)
- پنجره Hamming اختیاری قابل انتخاب منو
- تنظیم روشنایی 4 سطح
- تنظیم منو 8 سطح نرخ نمونه / زمان پاسخ
- 2 سکه سلول سکه ای LR44 دارای "روی صفحه"
مرحله 1: خرید قطعات
موارد زیر موارد مورد نیاز برای این پروژه است
- MSP430G2452 (تراشه اضافی TI Launchpad G2 یا هر 4K 20 پین سری MSP430G MCU)
- یک مینی برد نورد 170 تایی یا تخته پرفیور برای ساخت قبل از آمپر
- TLC272 تقویت کننده دوگانه
- میکروفون مینی الکتریک
- 47k (pull-up) ، 100k ، 2 x 10k ، مقاومت 1k
- 1 x 0.1uF
- سیم های جهنده
- هدر پین مردانه دو ردیف برای نگهدارنده باتری استفاده می شود
- 2 عدد باتری سکه ای LR44
مرحله 2: طرح بندی اجزای برنامه
این پروژه قرار است بر روی یک تخته کوچک 170 تایی ساخته شود. طرح اجزاء به شرح زیر است. نکته قابل توجه این است که ماتریس LED 8x8 باید بالای MCU MSP430 قرار گیرد. جدا از اجزاء ، سیم های اتصال دهنده ای نیز وجود دارد که توسط نویسه های "+------+" نشان داده شده است.
G V + Gnd (طرح 1 مرحله) ما از این طرح استفاده می کنیم + ================================== ================= 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 و r1 پین یکسانی دارند و نمایش داده نمی شود | + +-+-+-+| +-+-+-+-+-+-+-+-+-+-+| *کاربرد احتمالی داشتن c6 + c0 + r1 | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | با این کار b6 برای ساعت 32 کیلوهرتزی xtal آزاد می شود | | | TLC272 | | | | | | | خارج - + 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 استفاده کرده بودم و کار بر روی پروژه های تخته نورد بسیار آسان است. اگر کابل های قدیمی CAT5 دارید ، می توانید آن را باز کنید و متوجه خواهید شد که 6 سیم پیچ خورده در داخل وجود دارد. آنها برای تخته های نان بسیار مناسب هستند.
مرحله 4: نرم افزار را کامپایل و بارگذاری کنید
کد منبع معمولاً در مخازن github من قرار دارد.
برای این پروژه خاص ، فایل منبع C واحد nfft.c در مخزن مجموعه های ورق من جمع آوری شده است. شما فقط به nfft.c نیاز دارید
من از mps430-gcc برای کامپایل سیستم عامل استفاده می کنم ، اما باید با TI CCS هماهنگ باشد. با مراجعه به TI CCS cloud ، که یک IDE مبتنی بر وب است ، می توانید از تمام مشکلات نصب IDE ها یا کامپایلرها جلوگیری کنید. حتی سیستم عامل را در دستگاه مورد نظر شما بارگیری می کند.
این یک مثال کامپایل دستور w/ switches است
msp430 -gcc -Os -Wall -ffunction -section -fdata -section -fno -inline -small -توابع -Wl، -Map = nfft.map، --cref -Wl، --relax -Wl، --gc- بخش -I/energia -0101E0016/سخت افزار/msp430/هسته/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c
من از TI Launchpad G2 به عنوان برنامه نویس برای برنامه ریزی MCU استفاده می کنم.
مرحله 5: درک مدار
شماتیک مدار در زیر ارائه شده است
MSP430G2452 یا مشابه ، نیاز به 4K Flash TLC272 Dual Op-Amp ، GBW @1.7 مگاهرتز ، افزایش x100 ، پهنای باند تا 17 کیلوهرتز
* ما فقط از یک مرحله TLC272 استفاده می کنیم
._.
| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | | | Vcc | | | | pull-up (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | | | | | ^.--- | 7 | | 16-+ | | 10 هزار | | 10 هزار | | | / / ^ | | | | _ | | _ | 100k | _ | | / _+\ / / | | /| --- (طرح چوب نان را ببینید) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Gnd +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | ماتریس | ((O)) |. | | / | | _ | | MIC | | 10 هزار | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ /// /// /// /// ///
رانندگی LED
ماتریس LED از 8 * 8 عنصر است. آنها توسط 15 پین GPIO هدایت می شوند. آنها با 8 ردیف و 8 ستون چندپلکس می شوند. از آنجا که تنها 15 پین بعد از استفاده از 1 پین برای ورودی ADC وجود دارد ، در مالتی پلکس سطر 1 و ستون 0 دارای یک پین واحد هستند. این بدان معناست که LED خاص در ردیف 1 و ستون 0 روشن نمی شود. این یک سازش است زیرا فقط پین GPIO کافی برای رانندگی همه عناصر LED وجود ندارد.
ضبط صدا
صدا از طریق میکروفون کندانسور روی برد BoosterPack آموزشی ضبط می شود. از آنجا که سیگنال های میکروفون کوچک هستند ، ما باید آن را تا حدی تقویت کنیم که msp430 ADC10 بتواند بدون وضوح مناسب از آن استفاده کند. من برای این منظور از تقویت کننده op-amp دو مرحله ای استفاده کرده بودم.
تقویت کننده op-amp شامل دو مرحله است که هر کدام تقریباً 100 برابر افزایش می یابد. من TLC272 را پذیرفتم زیرا این قطعه بسیار رایج است و با ولتاژ 3 ولت کار می کند. پهنای باند افزایش در حدود 1.7 مگاهرتز به این معنی است که برای افزایش 100 برابری ما فقط می توانیم تضمین کنیم که تحت 17Khz به خوبی کار می کند (یعنی سود مورد نظر خود را حفظ می کند). (1.7 مگاهرتز / 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 است. اگر یک آپ آمپر بهتر دارید و / یا می خواهید متفاوت باشد ، می توان آن را تغییر داد.
باند فرکانس و مقیاس دامنه
سیستم عامل 16 باند را در یک رفت و برگشت پردازش می کند و زمان ضبط باعث ایجاد فاصله 500 هرتزی بین این بانک ها می شود. ماتریس LED از 8 ستون است و فقط 8 باند / دامنه را نمایش می دهد. به جای نمایش هر دو باند ، از یک باند فرکانس غیر خطی برای نشان دادن پهنای بیشتر باندهای فرکانسی (از نظر موسیقی) استفاده می شود. این لیست شامل شکافهای 500 هرتز در قسمت پایین ، شکافهای 1 کیلوهرتز در گروههای میانی و باندهای 1.5 کیلوهرتز در بالاترین موارد است.
دامنه نوارهای جداگانه به 8 سطح کاهش می یابد که با تعداد نقاط افقی در صفحه ماتریس LED نشان داده می شود. سطوح دامنه از طریق یک نقشه غیر خطی که نتایج FFT را به یکی از 8 تبدیل می کند ، کاهش می یابد. نقاط یک نوع مقیاس بندی لگاریتمی استفاده می شود زیرا بهترین درک ما از سطوح صدا را نشان می دهد.
منطق AGC داخلی وجود دارد و تجزیه و تحلیل طیف سعی خواهد کرد که سطوح دامنه را زمانی کاهش دهد که چندین سطح اوج در چرخه های قبلی تشخیص داده شود. این کار با یک خط کش کش مقایسه می شود.
مرحله 6: عملکرد دستگاه
- فشردن کلید کوتاه در حالت نمایش از طریق نمایش بدون نقطه ، یک نقطه ، 2 نقطه و 3 نقطه نشان می دهد.
- فشار طولانی وارد حالت راه اندازی می شود ، فشار طولانی بعدی از طریق منو می چرخد.
- چرخه موارد منو از طریق 'Hamming Window Option' ، 'Dimmer' ، 'Sampling / Refresh Rate'.
- در حالت راه اندازی "Hamming Window" ، فشارهای کوتاه بدون هیچ چکش ، 1 ، 2 ، 3 ، 3 فشار طولانی را فشار می دهد ، فشار طولانی تنظیم را تأیید می کند.
- در حالت تنظیم "Dimmer" ، فشارهای کوتاه از طریق سطح روشنایی موجود از 0 تا 3 فشار می دهد ، فشار طولانی تنظیم را تأیید می کند.
- در حالت راه اندازی "نمونه گیری / نرخ تازه سازی" ، فشارهای کوتاه از طریق نرخ های تازه سازی موجود از 0 تا 7 می چرخد ، 0 به معنی تاخیر نیست ، فشار طولانی مدت تنظیم را تأیید می کند.
- چند قسمتی LED شامل تأخیرهای زمانی برای جبران تفاوت های روشنایی برای ردیف های جداگانه است.
توصیه شده:
نحوه DIY 32 Band LED Audio Spectrum Analyzer با استفاده از Arduino Nano در خانه #arduinoproject: 8 مرحله
نحوه DIY 32 Band LED Audio Spectrum Analyzer با استفاده از آردوینو نانو در خانه #arduinoproject: امروز ما با استفاده از آردوینو یک طیف طیف موسیقی صوتی LED با 32 باند در خانه می سازیم ، می تواند طیف فرکانسی را نشان دهد و همزمان موسیقی را پخش کند. توجه داشته باشید max7219LED باید در مقابل مقاومت 100k متصل شود ، در غیر این صورت صدای اسپا
10 Band Led Spectrum Analyzer: 11 مرحله
10 Band Led Spectrum Analyzer: عصر بخیر ، بینندگان و خوانندگان عزیز. امروز می خواهم راهنمای مونتاژ کامل تجزیه کننده طیف LED 10 باند را به شما نشان دهم
RGB 10 Band Led Spectrum Analyzer: 16 مرحله
RGB 10 Band Led Spectrum Analyzer: عصر بخیر ، بینندگان و خوانندگان عزیز. امروز من یک تغییر آنالیز کننده طیف ده بانده با LED های RGB را به شما نشان خواهم داد
CRAZY L.O.L SPECTRUM ANALYZER: 6 مرحله (همراه با تصاویر)
CRAZY L.O.L SPECTRUM ANALYZER: امروز می خواهم نحوه ایجاد تجزیه کننده طیف صوتی - 36 باند را با ترکیب 4 LoL Shields با هم به اشتراک بگذارم. این پروژه دیوانه وار از کتابخانه FFT برای تجزیه و تحلیل سیگنال صوتی استریو ، تبدیل آن به باندهای فرکانسی و نمایش دامنه این فرکانس استفاده می کند
Breadboard Breadboard خود را (چگونه می توان نشانگر قدرت LED را به Breadboard شفاف Solarbotics اضافه کرد): 7 مرحله
Breadboard Breadboard خود را (چگونه می توان نشانگر قدرت LED را به Breadboard شفاف Solarbotics اضافه کرد): این نان برد های شفاف بسیار شبیه به دیگر نان برد های الکترونیکی هستند ، اما واضح هستند! بنابراین ، با یک تخته نان شفاف چه کاری می توان انجام داد؟ من فکر می کنم پاسخ واضح این است که LED های قدرت را اضافه کنید