پروژه الکترونیکپروژه های آردوینوپروژه های بازی و سرگرمیپروژه های صدا

پروژه ایجاد موسیقی با ضربه زدن انگشت با آردوینو + آموزش کامل

سلام. پروژه ایجاد موسیقی با ضربه زدن انگشت با آردوینو + آموزش کامل را آماده کردیم.

آموزش ساخت موزیک با استفاده از برد Arduino

در این پروژه آردوینو قصد داریم یک وسیله برای سرگرمی بسازیم. همه ما عادت داریم که برای ایجاد یک موسیقی با خودکار یا دست روی میز بزنیم و از صدای عجیب تولیده شده لذت ببریم. از این رو با توجه به توانایی برد های آردوینو در تنظیم آهنگ ها، سعی کردیم در این پروژه Arduino با ضربه زدن انگشتان به روی هر وسیله ای آهنگ ایجاد کرده و ریتم مورد نظر خود را بسازیم.

فیلم عملکرد پروژه در انتهای صفحه به شما در درک نحوه کار پروژه کمک میکند.

شماتیک مدار پروژه

شماتیک مدار این پروژه در تصویر زیر نشان داده شده است.

آموزش ساخت موزیک با استفاده از برد Arduino

این پروژه از چهار سنسور استفاده می کند، یعنی دو سنسور فلکس و دو جفت دارلینگتون به عنوان سنسور لمسی. ما همچنین از دو مقاومت R1 و R2 با ارزش 10 کیلو اهم هم استفاده کرده ایم که به عنوان مقاومت کششی برای سنسور Flex عمل می کنند. در اینجا از سنسور فلکس برای تولید سه تن صدای مختلف با استفاده از یک انگشت، بر اساس میزان خمش، استفاده می شود. بنابراین می توانیم با استفاده از دو انگشت، 6 صدا تولید کنیم.

حتما ببینید :  پروژه آردوینو کنترل ربات با دست کش با سنسور ژیروسکوپ ، شتاب سنج ، فلکس

قطعات مورد نیاز

  1. برد آردوینو Pro Mini
  2. بلندگو Peizo
  3. سنسور فلکس – دو عدد
  4. زوج دارلینگتون – دو عدد
  5. مقاومت 10 کیلو اهم – دو عدد
  6. ترانزیستورهای BC547 – چهار عدد

زوج دارلینگتون چیست ؟

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

زوج دارلینگتون چیست ؟

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

پین شماره 2 و 3 پین های وقفه روی آردوینو هستند. هر بار سیم را لمس می کنیم (از پایه 1 ترانزیستور 1) وقفه ای از آردوینو ایجاد می شود.

با استفاده از دو انگشت می توان فقط دو نوع تن ایجاد کرد از اینرو ما یک سنسور فلکس نیز اضافه میکنیم که بر اساس میزان خم شدن آن، تن صدا را تغییر می دهد. ما در کد پروژه طوری برنامه ریزی کرده ایم که با خم شدن انگشت (سنسور فلکس) سه تن مختلف ایجاد شود. شما در صورت نیاز میتوانید این مقدار را افزایش دهید.

پروژه ایجاد صدا با آردوینو

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

توضیحات کد پروژه ایجاد صدا با آردوینو

کد پروژه Arduino ایجاد موسیقی بسیار ساده است. کد کامل پروژه در فایل دانلودی انتهای صفحه قرار داده شده است. اما چند قسمت مهم از کد را در اینجا همراه با توضیح قرار داده ایم.

توجه: این برنامه با کمک کتابخانه “pitches.h” کار می کند. بنابراین اطمینان حاصل کنید که این کتابخانه روی کامپیوتر شما نصب است. این کتابخانه در فایل دانلودی انتهای صفحه قرار شده است.

اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید.

در setup void ، پین های 2 و 3 را به عنوان ورودی تنظیم میکنیم. ما همچنین آنها را به عنوان پین های تعویض اعلام می کنیم و هنگامی که یک وقفه در پین 2 و 3و عملکرد tone () وجود دارد، عملکرد آنها را اجرا میکنیم.

void setup() {
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), tone1, LOW);
attachInterrupt(digitalPinToInterrupt(3), tone2, LOW);
Serial.begin(9600);
}

در داخل void loop، دائماً بررسی می کنیم که سنسور فلکس چقدر خم شده است. به عنوان مثال ، FlexSensor 1 مقادیر حدود 200 را وقتی که صاف باشد ارسال میکند و هنگامی که به طور کامل خم باشد مقدار 130 را نشان میدهد. بنا براین ما فاصله بین حالت صاف و خم را به سه قسمت تقسیم میکنیم شما میتوانید مقادیر بیشتری وارد کنید.

void loop() {
 flexSensor1 = map(analogRead(A0),200,130,1,3); 
 flexSensor2 = map(analogRead(A1),170,185,1,3);

}

همانطور که قبلاً دیدیم ، تابع tone1 () هنگام شناسایی یک وقفه روی پین اجرا می شود. آنچه در داخل عملکرد tone1 () رخ می دهد در بالا نشان داده شده است. ما به مقادیر FlexSensor1 می پردازیم و براساس مقدار FlexSesnor ، تن خاصی را پخش میکنیم.

void tone1()
{
if (flexSensor1==1)
tone(8, NOTE_D4,50);
else if (flexSensor1==2)
tone(8, NOTE_A3,50);
else if (flexSensor1==3)
tone(8, NOTE_G4,50);
else
tone(8, NOTE_D4,50);
}

خط زیر برای پخش صدا استفاده می شود. می توانید هر تن صدایی را که در پرونده هدر “pitches.h” موجود است پخش کنید. به عنوان مثال ، خط زیر NOTE_A3 را درمدت زمان 50 میلی ثانیه در پین پخش می کند.

tone(8, NOTE_A3,50); //tone(PinNum,Note name, Duration);

فیلم عملکرد مدار پروژه

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

فیلم زیر عملکرد کامل پروژه را نشان می دهد.

فیلم عملکرد مدار : کلیک کنید !

موارد موجود در فایل : سورس کامل ، شماتیک کامل

برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

ایمیل خود را وارد کنید

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

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن