فهرست مطالب:

بلوتوث VU متر آنالوگ فعال: 6 مرحله
بلوتوث VU متر آنالوگ فعال: 6 مرحله

تصویری: بلوتوث VU متر آنالوگ فعال: 6 مرحله

تصویری: بلوتوث VU متر آنالوگ فعال: 6 مرحله
تصویری: 💦Blackview BV9200 HONEST Shockproof REVIEW 2024, نوامبر
Anonim
بلوتوث VU Meter آنالوگ فعال است
بلوتوث VU Meter آنالوگ فعال است

این پروژه من برای یکی از کلاسهای دانشگاهی من به نام SMP بود. همانطور که ما از برد توسعه STM32F103RB استفاده می کردیم ، من پروژه خود را بر اساس این کار شروع کردم ، از یک VU متر ساده شروع کردم. سپس برخی ویژگی های اضافی مانند پشتیبانی بلوتوث را برای پخش مقادیر از ADC به یک برنامه Android اضافه کردم تا یک نمودار dB ساده ایجاد شود.

مرحله 1: اجزای مورد استفاده

  • برد توسعه STM32F103RB
  • ماژول بلوتوث HC-05 zs040
  • پانل VU متر آنالوگ (پیوند)
  • میکروفون الکتریت
  • LM324N quad op-amp
  • 2 ترانزیستور TIP120
  • 3 دیود 1N4148
  • خازن ها و مقاومت های مختلف

اگرچه می توانید این مدار را از ریل 5 ولت برد جدا کنید ، اما من همچنین از منبع تغذیه خارجی 5 ولت استفاده کردم.

مرحله 2: پاکت دنبال کننده

پاکت دنبال کننده
پاکت دنبال کننده
پاکت دنبال کننده
پاکت دنبال کننده

قطعه اصلی این طرح دنبال کننده پاکت نامه است که سیگنال را از میکروفون الکترت گرفته و ولتاژ متناسب با دامنه سیگنال میکروفون را خروجی می دهد.

سیگنال خام میکروفون ابتدا از طریق تقویت کننده با افزایش 150 عبور می کند.

سپس سیگنال از طریق دنبال کننده پاکت واقعی منتقل می شود که باید فقط قسمت های سیگنال مثبت را خروجی دهد.

قسمت آخر کم کردن ولتاژ جابجایی 1.65 ولت از خروجی دنبال کننده پاکت است تا سیگنال 0 ولت را بدون صدا ، 1.65 ولت را برای صدای متوسط و 3.3 ولت را برای صدای بلند ارائه دهد که باید با صدای داخلی سازگار باشد. ADC هیئت مدیره.

این دنبال کننده پاکت نامه از این پاسخ عالی StackExchange پیاده سازی شده است.

مرحله 3: PWM برای Analog Meter

برای فعال کردن سوزن سنج ، من تایمر TIM4 برد میکروکنترلر را با فرکانس حدود 500 هرتز پیکربندی کرده ام.

با امتحان پی در پی چرخه های مختلف وظیفه ، با برخی از مقادیر که به اندازه کافی برای رسیدن سوزن از 0 به 100 بود ، رضایت دادم.

من فرآیند نمایش مقدار دقیق را در مرحله بعد با استفاده از برخی از ریاضیات توضیح خواهم داد.

مرحله 4: کالیبراسیون میکروفون

کالیبراسیون میکروفون
کالیبراسیون میکروفون
کالیبراسیون میکروفون
کالیبراسیون میکروفون

پس از انجام پاکت نامه ، چند کد ساده برای استفاده از ADC نوشتم و تأیید کردم که ارزش خواندن در واقع متناسب با میزان صدای داخل اتاق تغییر می کند.

به منظور "ترجمه" این مقدار به یک خوانش واقعی dB ، من از یک مولد صدای آنلاین با فرکانس 550 هرتز و اندروید خود برای ارائه خواندن مرجع استفاده کرده ام.

من این مقادیر را ترسیم کرده ام و از ابزار MatLAB's Curve Fit استفاده کرده ام تا عملکردی را بدست آورم که خوانش های ADC را با تقریب واقعی سطوح dB (یا حداقل به اندازه کافی نزدیک به خوانش های تلفن من) ترسیم کند.

می بینیم که این مقیاس لگاریتمی میکروفون را دنبال می کند.

من همچنین همین کار را برای ترسیم موقعیت سوزن به مقادیر PWM انجام دادم. من این مقادیر را با افزایش مقدار PWM تا 10 پیاپی جمع آوری کردم تا زمانی که نیاز به خواندن در مقیاس آن رسید.

با ترکیب آن دو تابع ، راهی آسان برای نمایش خواندن از ADC به مقدار واقعی در نشانگر سنج یافتم.

مرحله 5: برنامه Android

برنامه از این کتابخانه جالب برای برقراری ارتباط از طریق سریال بلوتوث برای تبادل اطلاعات بایت استفاده می کند.

نکته مهم این سیستم این است که حداکثر طول کلمه ارسال شده از طریق بلوتوث 8 بیت است و مقدار ADC به عنوان 12 بیت نشان داده می شود. برای غلبه بر این مسئله ، یک مقدار ADC را به 2 مقدار جداگانه 6 بیتی (MSB و LSB) تقسیم کردم و 2 بیت باقی مانده برای شناسایی نوع پیام (MSB ، LSB ، CHK) استفاده شد.

بنابراین ، برای یک مقدار ADC که می خواهیم پخش شود ، مقدار واقعی را به 2 پیام تقسیم می کنیم. برای بررسی یکپارچگی آن پیام ها ، پیام سوم را با XOR از 2 پیام اول ارسال کردم.

پس از بررسی یکپارچگی مقدار ، می توانیم همان تابع را برای بدست آوردن سطح dB و ترسیم آن بر روی نمودار زنده خود اعمال کنیم.

مرحله 6: خلاصه

در حالی که من قسمت میکرو کنترلر این پروژه بسیار خوب کار می کنم و صدای داخل اتاق را نمایش می دهم ، هنگام ارسال اطلاعات از طریق بلوتوث به دلیل از دست دادن بسته ها ، با برخی از مشکلات روبرو شدم.

کد منبع این پروژه را می توانید در اینجا پیدا کنید:

  • برنامه همراه Android - repo
  • کد میکروکنترلر - repo

اگر به نظر شما این روش به هر نحوی مفید است ، مشارکت کنید.

توصیه شده: