فهرست مطالب:

دیجیتالی کردن یک آهنگ با آردوینو: 6 مرحله
دیجیتالی کردن یک آهنگ با آردوینو: 6 مرحله

تصویری: دیجیتالی کردن یک آهنگ با آردوینو: 6 مرحله

تصویری: دیجیتالی کردن یک آهنگ با آردوینو: 6 مرحله
تصویری: 15دیمەنی سەرسوڕهێنەرتاکو بە چاوی خۆت نەیانبینی بڕوایان پێ ناکەیت😱 2024, نوامبر
Anonim
دیجیتالی کردن یک آهنگ با آردوینو
دیجیتالی کردن یک آهنگ با آردوینو

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

شما به یک آردوینو اونو یا مگا ، تعداد زیادی کابل بلوز ، یک زنگ پیزو ، یک تخته نان ، یک صفحه LCD 16*2 با تمام پین های برف پاک کن و یک پتانسیومتر 10k نیاز دارید (همچنین ممکن است بشنوید که از آنها به عنوان قابلمه استفاده می شود)) بهتر است همه این لوازم را قبل از شروع ساخت جمع آوری کنیم.

مرحله 1: تبدیل موسیقی به یادداشت های دیجیتالی: ارزش تأخیر

تبدیل موسیقی موسیقی به یادداشت های دیجیتالی: ارزش های تأخیری
تبدیل موسیقی موسیقی به یادداشت های دیجیتالی: ارزش های تأخیری

دو مرحله برای انتقال دیجیتالی یک یادداشت از نمره به معادل دیجیتالی آن وجود دارد. اول ، ما باید مدت زمان یادداشت را در میلی ثانیه بنویسیم. من برای این کار از نمودار موجود در اینترنت استفاده کردم. بر اساس اینکه آیا یک نت یک نت نیم ، یک نت چهارم ، هشتم و غیره بود ، طول نت را به میلی ثانیه رونویسی کردم. شما می توانید این اعداد را در کد من به عنوان تاخیر () ببینید. تابع و عدد داخل پرانتز مقدار تأخیر در میلی ثانیه است که در این مرحله تعیین کردیم.

مرحله 2: تبدیل موسیقی به یادداشت های دیجیتال: ارزش هرتز

تبدیل موسیقی به یادداشت های دیجیتال: ارزش هرتز
تبدیل موسیقی به یادداشت های دیجیتال: ارزش هرتز

قبل از شروع این مرحله ، اجازه دهید برخی از اصطلاحات فنی را تعریف کنم. "ارزش" یک نت را می توان به جای واژه های "زمین" ، "ارزش" و "توجه" به کار برد. حالا ، باید هر نت آهنگ را از روی نمره بخوانید. سپس باید هر نت را با استفاده از یک موسیقی به جدول هرتز به هرتز ترجمه کنید ، که به راحتی می توانید آن را به صورت آنلاین پیدا کنید. نکته ای که باید به خاطر بسپارید این است که C میانی به عنوان C4 روی میز و یک اکتاو بالاتر C5 و غیره ذکر شده است. هنگامی که همه این یادداشت ها به هرتز رونویسی می شوند ، مقادیر را در تن تابع (x ، y ، z) قرار می دهید. جایی که X شماره پین یا const int است ، راهی برای تعریف متغیرها که بعداً توضیح خواهم داد. Y مقدار هرتزی است که شما فقط رونویسی کرده اید ، و Z مدت زمان نت در میلی ثانیه خواهد بود که به نزدیکترین صدم گرد می شود. تاخیر()؛ مقادیر طول یادداشت خواهد بود. حالا بیایید مداری را طراحی کنیم که بتواند موسیقی را پخش کند.

مرحله 3: طراحی مدار

طراحی مدار
طراحی مدار

اکنون که همه یادداشت ها را به مقادیر دیجیتالی که رایانه می تواند ترجمه کند ترجمه کرده ایم ، زمان ساخت مدار است. با برداشتن یک تخته نان و قرار دادن صفحه LCD با اولین پین (GND) در ردیف 14 شروع کنید. زنگ را در هر کجا که دوست دارید قرار دهید و یک پتانسیومتر در کنار آن قرار دهید. هدف این است که همه چیز را در یک خط قرار دهید و به هم ریختگی سیم ها را به حداقل برسانید. آردوینو را در کنار تخته نان قرار دهید و پین 5 ولت را به ریل مثبت تخته نان و پین زمین را به ریل منفی وصل کنید. در حال حاضر ، ما آماده اتصال پرش بین آردوینو و قطعات هستیم.

حالا بیایید در مورد پین های روی LCD و نحوه سیم کشی آنها صحبت کنیم.

GND مخفف زمین است ، این سیم منفی در جریان مستقیم است. سیم GND را به ریل منفی تخته نان بچسبانید.

VCC مخفف Voltage at the Common Collector است و این جایی است که منبع تغذیه 5 ولت خود را (ریل قدرت مثبت) وصل می کنید.

VO مخفف Contrast است ، آن را به پین وسط پتانسیومتر وصل کنید. پین سمت چپ پتانسیومتر را به ریل قدرت مثبت و پین راست را به ریل برق زمینی وصل کنید.

RS مخفف Register Select است و این مورد توسط آردوینو استفاده می شود تا به صفحه نمایش داده ها را در کجا ذخیره کند. این پین را به پین 12 در آردوینو وصل کنید.

RW مخفف عبارت Read/Write pin است که Arduino از آن برای بررسی اینکه آیا صفحه نمایش داده شده برنامه ای را نشان می دهد استفاده می کند. این پین را به ریل منفی روی تخته نان متصل کنید.

E مخفف Enable است که به LCD می گوید که کدام پیکسل ها را فعال (روشن) یا غیرفعال (خاموش) کنید. این پین را به پین 11 آردوینو وصل کنید.

D4 ، D5 ، D6 و D7 پین های نمایش هستند که کاراکترها و حروف نمایش داده شده را کنترل می کنند. آنها را به ترتیب به پین های 5 ، 4 ، 3 و 2 آردوینو وصل کنید.

پین A ، گاهی اوقات با برچسب LED ، آند LED برای نور پس زمینه است. این سیم را با سیم یا با مقاومت 220 اهم به ریل قدرت مثبت وصل کنید. مقاومت بیشتر برای استفاده طولانی تر است زیرا LCD را ذخیره می کند ، اما اگر قرار نیست از این دستگاه در شب و روز استفاده کنید ، نیازی به مقاومت ندارید.

پین K ، گاهی اوقات (گیج کننده) با برچسب LED ، پایه پایه LED است. این را به ریل برق زمینی وصل کنید.

مرحله 4: بارگذاری کد: چگونه انجام شود

آردوینو خود را به USB کامپیوتر خود وصل کنید. کد زیر را با استفاده از برنامه نویس Arduino IDE بارگذاری کنید.

#عبارتند از

const int rs = 12 ، en = 11 ، d4 = 5 ، d5 = 4 ، d6 = 3 ، d7 = 2 ؛ LCD مایع LiquidCrystal (rs، en، d4، d5، d6، d7)؛

void setup () {

// تعداد ستون ها و سطرهای LCD را تنظیم کنید: lcd.begin (16 ، 2) ؛ // پیام را روی LCD چاپ کنید. lcd.print ("Hertz Pitch:!") ؛ تاخیر (1000) ؛ حلقه void () {// پخش e4 تأخیر (600) ؛ // مکث برای 0.6 ثانیه تن (10 ، 329.63 ، 300) ؛ // پخش e در زنگ در پین 10 ، آخرین مدت زمان 0.3 ثانیه lcd.print (" 329.63 ") ؛ // نمایش پیام روی LCD" 329.63"

تأخیر (350) ؛ // تأخیر برای.35 ثانیه

lcd.clear ()؛ // LCD را پاک کرده و برای پیام بعدی تنظیم مجدد کنید // پخش d4# tone (10 ، 311.13 ، 300) ؛ lcd.print ("311.13") ؛ تأخیر (350) ؛ lcd.clear ()؛ // پخش e4 tone (10 ، 329.63 ، 300) ؛ lcd.print ("329.63") ؛ تأخیر (350) ؛ lcd.clear ()؛ // پخش d4# تن (10 ، 311.13 ، 300) ؛ lcd.print ("311.13") ؛ تأخیر (350) ؛ lcd.clear ()؛ // پخش e4 tone (10 ، 329.63 ، 300) ؛ lcd.print ("329.63") ؛ تأخیر (350) ؛ lcd.clear ()؛ // پخش b3 tone (10 ، 246.94 ، 300) ؛ lcd.print ("246.94") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش d4 تن (10 ، 293.66 ، 300) ؛ lcd.print ("293.66") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش c4 تن (10 ، 261.63 ، 300) ؛ lcd.print ("261.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش a3 تن (10 ، 220 ، 900) ؛ lcd.print ("220.0") ؛ تاخیر (1000) ؛ lcd.clear ()؛ // line60 // helpsave // avrdude.failure.eeprom // پخش d3 tone (10 ، 146.83 ، 300) ؛ lcd.print ("146.63") ؛ تأخیر (350) ؛ lcd.clear ()؛ // پخش صدای f3 (10 ، 174.61 ، 300) ؛ lcd.print ("174.61") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش a3 تن (10 ، 220 ، 300) ؛ lcd.print ("220") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش b3 tone (10 ، 246.94 ، 900) ؛ lcd.print ("246.94") ؛ تاخیر (1000) ؛ lcd.clear ()؛

// بازی e3

تن (10 ، 164.81 ، 300) ؛ lcd.print ("164.81") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش g3# تن (10 ، 207.65 ، 300) ؛ lcd.print ("207.65") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش b3 tone (10 ، 246.94 ، 300) ؛ lcd.print ("246.94") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش c4 تن (10 ، 261.63 ، 900) ؛ lcd.print ("261.63") ؛ تاخیر (1000) ؛ lcd.clear ()؛ // پخش e tone (10 ، 164.81 ، 300) ؛ lcd.print ("164.81") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش e4 tone (10 ، 329.63 ، 300) ؛ lcd.print ("329.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش d4# تن (10 ، 311.13 ، 300) ؛ lcd.print ("311.13") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش e4 tone (10 ، 329.63 ، 300) ؛ lcd.print ("329.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش d4# تن (10 ، 311.13 ، 300) ؛ lcd.print ("311.13") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش e4 tone (10 ، 329.63 ، 300) ؛ lcd.print ("329.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش b3 tone (10 ، 246.94 ، 300) ؛ lcd.print ("246.94") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش d4 تن (10 ، 293.66 ، 300) ؛ lcd.print ("293.66") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش آهنگ c4 (10 ، 261.63 ، 300) ؛ lcd.print ("261.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش a3 تن (10 ، 220 ، 900) ؛ lcd.print ("220.0") ؛ تاخیر (1000) ؛ lcd.clear ()؛ // پخش d3 تن (10 ، 146.83 ، 300) ؛ lcd.print ("146.83") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش صدای f3 (10 ، 174.61 ، 300) ؛ // eeprom 20-6 بله ، فلش 65--0 noyes lcd.print ("174.61") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش a3 تن (10 ، 220 ، 300) ؛ lcd.print ("220.0") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش b3 tone (10 ، 246.94 ، 900) ؛ lcd.print ("246.94") ؛ تاخیر (1000) ؛ lcd.clear ()؛ // پخش صدای f3 (10 ، 174.61 ، 300) ؛ lcd.print ("174.61") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش آهنگ c4 (10 ، 261.63 ، 300) ؛ lcd.print ("261.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش b3 tone (10 ، 246.94 ، 300) ؛ lcd.print ("246.94") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش a3 تن (10 ، 220 ، 900) ؛ lcd.print ("220.0") ؛ تاخیر (1000) ؛ lcd.clear ()؛ // پخش b3 tone (10 ، 246.94 ، 300) ؛ lcd.print ("246.94") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش آهنگ c4 (10 ، 261.63 ، 300) ؛ lcd.print ("261.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش d4 تن (10 ، 293.66 ، 300) ؛ lcd.print ("293.66") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش e4 tone (10 ، 329.63 ، 900) ؛ lcd.print ("329.63") ؛ تاخیر (1000) ؛ lcd.clear ()؛ // پخش g3 تن (10 ، 196 ، 300) ؛ lcd.print ("196.0") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش f4 tone (10 ، 349.23 ، 300) ؛ lcd.print ("349.23") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش e4 tone (10 ، 329.23 ، 300) ؛ lcd.print ("329.23") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش d4 تن (10 ، 293.63 ، 900) ؛ lcd.print ("293.63") ؛ تاخیر (1000) ؛ lcd.clear ()؛ // پخش صدای e3 (10 ، 164.81 ، 300) ؛ lcd.print ("164.81") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش e4 tone (10 ، 329.63 ، 300) ؛ lcd.print ("329.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش d4 تن (10 ، 293.63 ، 300) ؛ lcd.print ("293.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش c4 تن (10 ، 261.63 ، 900) ؛ lcd.print ("261.63") ؛ تاخیر (1000) ؛ lcd.clear ()؛ // پخش d3 تن (10 ، 146.83 ، 300) ؛ lcd.print ("146.83") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش d4 تن (10 ، 293.63 ، 300) ؛ lcd.print ("293.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش آهنگ c4 (10 ، 261.63 ، 300) ؛ lcd.print ("261.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش b3 tone (10 ، 246.94 ، 900) ؛ lcd.print ("246.94") ؛ تاخیر (1000) ؛ lcd.clear ()؛ // پخش e4 tone (10 ، 329.63 ، 300) ؛ lcd.print ("329.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش d4# تن (10 ، 311.13 ، 300) ؛ lcd.print ("311.13") ؛ تأخیر (350) ؛ lcd.clear ()؛ // پخش e4 tone (10 ، 329.63 ، 300) ؛ lcd.print ("329.63") ؛ تأخیر (350) ؛ lcd.clear ()؛ // پخش d4# تن (10 ، 311.13 ، 300) ؛ lcd.print ("311.13") ؛ تأخیر (350) ؛ lcd.clear ()؛ // پخش e4 tone (10 ، 329.63 ، 300) ؛ lcd.print ("329.63") ؛ تأخیر (350) ؛ lcd.clear ()؛ // پخش b3 tone (10 ، 246.94 ، 300) ؛ lcd.print ("246.94") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش d4 تن (10 ، 293.66 ، 300) ؛ lcd.print ("293.66") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش آهنگ c4 (10 ، 261.63 ، 300) ؛ lcd.print ("261.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش a3 تن (10 ، 220 ، 900) ؛ lcd.print ("220.0") ؛ تاخیر (1000) ؛ lcd.clear ()؛ // پخش d3 تن (10 ، 146.83 ، 300) ؛ lcd.print ("146.83") ؛ تأخیر (350) ؛ lcd.clear ()؛ // پخش صدای f3 (10 ، 174.61 ، 300) ؛ lcd.print ("174.61") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش a3 تن (10 ، 220 ، 300) ؛ lcd.print ("220.0") ؛ تأخیر (400) ؛ // پخش b3 lcd.clear ()؛ تن (10 ، 246.94 ، 900) ؛ lcd.print ("246.94") ؛ تاخیر (1000) ؛ lcd.clear ()؛ // پخش صدای e3 (10 ، 164.81 ، 300) ؛ lcd.print ("164.81") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش g#3 تن (10 ، 207.65 ، 300) ؛ lcd.print ("207.65") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش b3 tone (10 ، 246.94 ، 300) ؛ lcd.print ("246.94") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش c4 تن (10 ، 261.63 ، 900) ؛ lcd.print ("261.63") ؛ تاخیر (1000) ؛ تأخیر (300) ؛ lcd.clear ()؛ // پخش صدای e3 (10 ، 164.81 ، 300) ؛ lcd.print ("164.81") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش e4 tone (10 ، 329.63 ، 300) ؛ lcd.print ("329.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش d4# تن (10 ، 311.13 ، 300) ؛ lcd.print ("311.13") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش e4 tone (10 ، 329.63 ، 300) ؛ lcd.print ("329.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش d4# تن (10 ، 311.13 ، 300) ؛ lcd.print ("311.13") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش e4 tone (10 ، 329.63 ، 300) ؛ lcd.print ("329.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش b3 tone (10 ، 246.94 ، 300) ؛ lcd.print ("246.94") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش d4 تن (10 ، 293.66 ، 300) ؛ lcd.print ("293.66") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش آهنگ c4 (10 ، 261.63 ، 300) ؛ lcd.print ("261.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش a3 tone (10 ، 220 ، 900) ؛ lcd.print ("220.0") ؛ تاخیر (1000) ؛ lcd.clear ()؛ // پخش d3 تن (10 ، 146.83 ، 300) ؛ lcd.print ("146.83") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش صدای f3 (10 ، 174.61 ، 300) ؛ lcd.print ("174.61") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش a3 تن (10 ، 220 ، 300) ؛ lcd.print ("220.0") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش b3 tone (10 ، 246.94 ، 900) ؛ lcd.print ("246.94") ؛ تاخیر (1000) ؛ lcd.clear ()؛ // پخش صدای f3 (10 ، 174.61 ، 300) ؛ lcd.print ("174.61") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش آهنگ c4 (10 ، 261.63 ، 300) ؛ lcd.print ("261.63") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش b3 tone (10 ، 246.94 ، 300) ؛ lcd.print ("246.94") ؛ تأخیر (400) ؛ lcd.clear ()؛ // پخش a3 تن (10 ، 220 ، 900) ؛ lcd.print ("220.0") ؛ تاخیر (1000) ؛ lcd.clear ()؛ }

مرحله 5: بارگذاری کد: همه اینها به چه معناست؟

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

تن (x ، y ، z) ؛ = آهنگی را با صدای y هرتز ، در زنگ در پین x ، برای میلی ثانیه z پخش کنید.

lcd.print ("XYZ") ؛ = پیامی را با کاراکترهای XYZ روی صفحه LCD چاپ کنید. (به عنوان مثال نمایش زمین هرتز)

تاخیر (x) ؛ = مکث برای x میلی ثانیه

const int X = Y = یک متغیر ثابت X را برای پین Y تنظیم کنید و از X یا Y برای تعیین وظایف به دستگاه استفاده کنید.

lcd.clear ()؛ = صفحه LCD را پاک کرده و برای نمایش جدید تنظیم مجدد کنید

pinMode (X ، OUTPUT) ؛ = پین X را برای حالت خروجی تنظیم کنید

پس از درک همه این توابع ، می توانید متغیرها را به راحتی با داده هایی که هنگام ترجمه یک آهنگ جمع آوری می کنید جایگزین کنید و سپس می توانید آهنگ خود را کدگذاری کنید!

مرحله ششم: تمام شد !

تمام شده!!!
تمام شده!!!
تمام شده!!!
تمام شده!!!

شما یا یک آردوینو دارید که نقش Fur Elise را بازی می کند و ارزش نت ها را در هرتز نشان می دهد ، یا یک آردوینو ساخته اید که ملودی آهنگی را که انتخاب کرده اید پخش می کند و متنی را که می خواهید نشان دهد نمایش می دهد. از اینکه از این آموزش دیدن کردید متشکرم و امیدوارم این پروژه را در آردوینو برای شما انجام دهم.

توصیه شده: