loading...

آردوینو باز Arduino رزبری پای پروژه آموزش

بازدید : 146

اکثر کنسرت های موسیقی امروزه با چند نمایش نوری فانتزی همراه است. تقریباً همه کنسرت‌ها، جشنواره‌ها و کلوپ‌های شبانه نمایشی بصری یا جلوه‌های مناسب دارند. بنابراین، چرا بصری ساز موسیقی خود را نسازید که به موسیقی یا صدا واکنش نشان دهد؟ در اینجا یک پروژه ساده و در عین حال موثر برای ساختن موزیک/تصویرکننده صوتی خود با استفاده از آردوینو نانو، ماژول نمایشگر نقطه‌ای 32x8 و سنسور صوتی وجود دارد. ال‌ای‌دی‌های نمایشگر 32×8 دات ماتریکس بر اساس سیگنال‌هایی که آردوینو از طریق میکروفونی که به پین ​​آنالوگ آن متصل است دریافت می‌کند، واکنش نشان می‌دهند. آردوینو دارای سیگنال های صوتی ورودی ADC داخلی است که از میکروفون به نمونه های دیجیتال دریافت می شود. جدای از این، ما همچنین پروژه های UV متر را با استفاده از آردوینو و سایر میکروکنترلرها ساخته ایم.

اجزای مورد نیاز برای ساخت یک موسیقی / تصویر ساز صوتی
برای دنبال کردن این آموزش، به اجزای زیر نیاز دارید:

آردوینو نانو
ماژول نمایشگر نقطه ای ماتریس 32x8 MAX7219
میکروفون / ماژول میکروفون
سیم های جامپر
چاپگر سه بعدی (اختیاری)
ماژول نمایشگر نقطه‌ای 32x8 MAX7219 چیست؟
ماژول ماتریس نقطه نمایش 4 در 1 MAX7219 یک صفحه نمایش کاتد مشترک ورودی/خروجی سریال یکپارچه است که برای نصب در یک زنجیره افقی یا گسترش در یک صفحه عمودی برای ساخت یک صفحه نمایش همه کاره طراحی شده است. این ماژول نمایشگر از یک رابط سریال 3 سیمه مناسب برای اتصال به تمام بردهای کنترل کننده رایج مانند آردوینو یا رزبری استفاده می کند.


این ماژول نمایشگر شامل چهار نمایشگر ماتریس 8 × 8 و چهار آی سی درایور نمایشگر LED MAX7219 برای هر نمایشگر است. یک ماژول ماتریس LED 8x8 شامل 64 LED (دیودهای ساطع کننده نور) است که به شکل یک ماتریس مرتب شده اند. از این رو نام ماتریس LED است. اگر قرار باشد ماژول به صورت نمودار مدار رسم شود، تصویری مانند شکل زیر خواهیم داشت:


همانطور که در تصویر بالا نشان داده شده است، نمایشگر ماتریس 8 × 8 نقطه دارای 16 پین است که 8 پین برای هر سطر و 8 پین برای هر ستون دارد. در اینجا، تمام سطرها و ستون ها به هم متصل می شوند تا تعداد پین های مورد نیاز کاهش یابد. این تکنیک کنترل تعداد زیادی LED با پین های کمتر، مالتی پلکسی نامیده می شود. برای کنترل ماژول های نمایشگر از آی سی های درایور نمایشگر LED MAX7219 استفاده می شود. این آی سی می تواند الگو یا متن مورد نظر شما را دقیقاً کنترل و تولید کند. به غیر از این مزیت دیگر استفاده از این آی سی این است که تمام ال ای دی 64 تنها با 3 پین قابل کنترل است.

ویژگی ها و مشخصات ماژول نمایشگر 32x8 نقطه ای MAX7219

ولتاژ ورودی: 5 ولت
حداکثر جریان عملیاتی (mA): 320
فقط به 3 سیم ارتباطی MCU نیاز دارد
آبشاری چندین ماژول LED ماتریس بسیار آسان است
اندازه نمایشگر بسیار جمع و جور است
PCB دارای سوراخ های M3 برای نصب است
نمودار مدار تصویرساز طیف صوتی
شماتیک کامل برای رابط نمایشگر ماتریس LED 32x8 و میکروفون با آردوینو نانو در تصویر زیر نشان داده شده است.


نمایشگر دات ماتریس و میکروفون هر دو با پایه های 5 ولت و GND آردوینو نانو تغذیه می شوند. اما اگر قصد دارید از ماتریس نقطه با حداکثر روشنایی خود استفاده کنید، بهتر است از یک منبع خارجی 5 ولتی استفاده کنید زیرا نمایشگر با تنظیم روی حداکثر روشنایی جریان زیادی را می گیرد. پین دیتا میکروفون به پایه A7 آردوینو نانو متصل می شود. اکنون با پین های SPI نمایشگر باقی مانده ایم. این پایه‌ها به پایه‌های سخت‌افزاری SPI آردوینو نانو متصل می‌شوند، زیرا پین‌های SPI سخت‌افزاری بسیار سریع‌تر از پایه‌های SPI نرم‌افزاری هر میکروکنترلری هستند.

اتصالات بین آردوینو نانو، ماژول LED ماتریس و میکروفون در جدول زیر نشان داده شده است.

آردوینو نانو

ماتریس LED 32x8

5 ولت

VCC

GND

GND

D11

DIN

D10

CS

D13

CLK

آردوینو نانو

ماژول میکروفون

5 ولت

VCC

GND

GND

A7

خارج

 

 

ساخت مدار روی پرف برد
ایده این است که این مدار را در یک محفظه چاپ سه بعدی قرار دهیم تا بتوان آن را روی دیوار نصب کرد یا در کنار سیستم موسیقی قرار داد. برای این کار، من این مدار کامل را روی یک تخته پرف لحیم کردم. صفحه پرف با تمام اجزای لحیم کاری شده در زیر نشان داده شده است:


برنامه نویسی Arduino Nano Audio Visualization
کد کامل Audio Visualizer با استفاده از Arduino در انتهای سند آورده شده است. در اینجا، ما چند خط مهم از کد را توضیح می دهیم. این کد از کتابخانه های arduinoFFT.h و MD_MAX72xx.h استفاده می کند. هر دو کتابخانه را می توان از مدیر کتابخانه Arduino IDE نصب کرد. برای آن، Arduino IDE را باز کنید و به Sketch <Include Library <Manage Libraries بروید. اکنون، arduinoFFT را جستجو کنید و کتابخانه arduinoFFT توسط Enrique Condes را نصب کنید.


به طور مشابه، کتابخانه MD_MAX72xx.h را توسط MajicDesigns نصب کنید.

پس از نصب تمام کتابخانه های مورد نیاز، کد را با گنجاندن کتابخانه ها شروع کنید. کتابخانه ArduinoFFT برای ترجمه سیگنال آنالوگ ورودی به طیف فرکانس استفاده می شود. کتابخانه MD_MAX72xx برای کنترل نمایشگر و رسم طیف صوتی روی نمایشگر استفاده می شود. در حالی که از کتابخانه SPI برای برقراری ارتباط SPI بین آردوینو و نمایشگر دات ماتریس استفاده می شود.

#include <arduinoFFT.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
سپس یک نمونه برای MD_MAX72XX با تابع MD_MAX72XX () ایجاد کنید. این تابع به سه پارامتر نیاز دارد که اولین پارامتر آن است

نوع سخت افزار، دومی پین CS و سومی، حداکثر تعداد دستگاه های متصل. همچنین یک نمونه برای arduinoFFT با تابع arduinoFFT () ایجاد کنید.

MD_MAX72XX disp = MD_MAX72XX (MD_MAX72XX :: FC16_HW, 10, 4);
arduinoFFT FFT = arduinoFFT ();
سپس در خطوط بعدی دو آرایه جدید برای ذخیره مولفه های طیفی 64 بیتی برای قسمت واقعی و خیالی طیف تعریف کنید.

double realComponent [64];
دو imagComponent [64];
 اکنون، در تابع setup ()، مانیتور سریال را با نرخ باود 9600 برای اهداف اشکال زدایی مقداردهی اولیه کنید. همچنین، صفحه نمایش ماتریس نقطه را با تابع disp.begin () راه اندازی کنید.

تنظیم خالی ()
{
  disp.begin ();
  Serial.begin (9600);
}
اکنون، در تابع حلقه، 64 نمونه از قرائت‌های میکروفون را با استفاده از حلقه for از طریق پین A7 آردوینو نانو می‌گیریم و در آرایه realComponent که قبلاً تعریف کردیم، ذخیره می‌کنیم.

برای (int i = 0; i <64; i ++)
  {
    realComponent [i] = analogRead (A7) / حساسیت.
    imagComponent [i] = 0;
  }
پس از دریافت 64 مقدار طیفی از میکروفون، آنها را از طریق الگوریتم FFT عبور دادیم تا 64 مولفه طیفی را برای سیگنال های واقعی و خیالی محاسبه کنیم. سپس در خطوط بعدی، این تابع خواندنی FFT.ComplexToMagnitude () را برای محاسبه بزرگی 64 جزء طیفی ارسال کردیم.

FFT.Windowing (realComponent، 64، FFT_WIN_TYP_HAMMING، FFT_FORWARD)؛
FFT.Compute (realComponent، imagComponent، 64، FFT_FORWARD)؛
FFT.ComplexToMagnitude (realComponent، imagComponent، 64)؛
حالا در خطوط بعدی از یک حلقه for برای کنترل تمام 32 ستون ماتریس LED استفاده کردیم. در داخل این برای حلقه، ابتدا این قرائت ها را به یک محدوده شناخته شده تبدیل کردیم و سپس با استفاده از تابع نقشه، این قرائت ها را به محدوده 0 تا 8 نگاشت کردیم. صفر یعنی تمام LED آن ستون خاص کم خواهد بود و بالعکس.

برای (int i = 0; i <32; i ++)
  {
    realComponent [i] = محدودیت (realComponent [i]، 0.80)؛
    realComponent [i] = نقشه (realComponent [i], 0,80,0,8);
    index = realComponent [i];
    ارزش = ارتفاع طیفی [شاخص];
    c = 31 - i;
    disp.setColumn (c، مقدار);
  }
چاپ سه بعدی بدنه برای ویژوالایزر طیف صوتی
پس از لحیم کردن تمام اجزا بر روی یک برد پرف و برنامه نویسی آردوینو نانو، یک پوشش برای این مدار چاپ کردم. برای آن، من ابعاد تنظیمات را با استفاده از ورنیه خود برای طراحی یک پوشش اندازه‌گیری کردم. طراحی من پس از انجام آن چیزی شبیه به این زیر بود. فایل STL نیز برای دانلود از Thingiverse موجود است و می توانید با استفاده از آن، جلد خود را چاپ کنید.


تست Music Visualizer
پس از آماده شدن سخت افزار و کد، مدار را مطابق شکل زیر داخل محفظه چاپ سه بعدی نصب کردیم.


ما از یک آداپتور 5 ولت برای تغذیه دستگاه استفاده کردیم. در ابتدا چیزی روی صفحه نمایش وجود نخواهد داشت، اما زمانی که موسیقی پخش می کنیم یا جلوی میکروفون صحبت می کنیم، LED های نمایشگر ماتریس نقطه ای با توجه به شدت سیگنال تغییر می کنند.


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

علیرضا سه شنبه 14 دی 1400 زمان : 15:56 نظرات (0)
ارسال نظر برای این مطلب
کد امنیتی رفرش

اطلاعات کاربری
آمار سایت
  • کل مطالب : 25
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 0
  • آی پی امروز : 14
  • آی پی دیروز : 13
  • بازدید امروز : 22
  • باردید دیروز : 21
  • گوگل امروز : 0
  • گوگل دیروز : 1
  • بازدید هفته : 224
  • بازدید ماه : 685
  • بازدید سال : 5,608
  • بازدید کلی : 19,713

  • نام کاربری :
    رمز عبور :
    تکرار رمز :
    موبایل :
    ایمیل :
    نام اصلی :
    کد امنیتی :
     
    کد امنیتی
     
    بارگزاری مجدد