- ہارڈ ویئر کی ضرورت ہے:
- ارڈینو کے سر () سرانجام کی تفہیم :
- pitches.h ہیڈر فائل:
- ارڈوینو پر میوزیکل نوٹس بجانا:
- منصوبہ بندی اور ہارڈ ویئر:
- اردوینو پروگرام کی وضاحت:
- اس میلوڈی پلیئر آردوینو سرکٹ کا کام کرنا:
ارڈوینو آپ کے مائکرو قابو پانے والے پروجیکٹس کو آسان اور تیز کرنے کا ایک بہترین طریقہ ہے ، اس کے ڈویلپرز کی اس برادری کا شکریہ جنہوں نے تقریبا ہر چیز کو آسان نظر آنے پر مجبور کیا ہے۔ آپ کو آزمانے اور تفریح کرنے کے لئے یہاں بہت سارے آرڈینو پروجیکٹس موجود ہیں۔ آپ کے کچھ پروجیکٹس میں کچھ کے بارے میں مطلع کرنے یا ناظرین کو متاثر کرنے کے لئے کچھ آوازوں کی کارروائی کی ضرورت پڑسکتی ہے۔ کیا ہوگا اگر میں نے آپ کو بتایا کہ تقریبا کسی بھی تھیم گانوں کو جو پیانو پر چلایا جاسکتا ہے تو آپ کے اردوینو پر ایک سادہ پروگرام اور ایک سستے پیزو اسپیکر کی مدد سے نقل کیا جاسکتا ہے۔
اس ٹیوٹوریل میں ہم سیکھیں گے کہ آرڈینوو ٹون () فنکشن کا استعمال کرتے ہوئے پیزو بزر یا اسپیکر پر میلوڈی کھیلنا کتنا آسان اور آسان ہے ۔ اس ٹیوٹوریل کے اختتام پر آپ قزاقوں کے کچھ مشہور ٹن ، کریجی میڑک ، سپر ماریو اور ٹائٹینک کھیلنے کے قابل ہوسکیں گے۔ آپ یہ بھی سیکھیں گے کہ پیانو موسیقی کے کسی بھی ٹکڑے کو ارودوو کے ساتھ کیسے کھیلنا ہے۔ آخر میں ویڈیو چیک کریں۔
ہارڈ ویئر کی ضرورت ہے:
- ارڈینو (کوئی بھی ورژن - UNO یہاں استعمال ہوتا ہے)
- پیزو اسپیکر / بزر یا کوئی دوسرا 8 ہیم اسپیکر۔
- بریڈ بورڈ
- مربوط تاروں
- پش بٹن
- 1 ک مزاحم (اختیاری)
ارڈینو کے سر () سرانجام کی تفہیم:
اس سے پہلے کہ ہم یہ سمجھ سکیں کہ ایک ٹون () کس طرح کام کرتا ہے ہمیں یہ جان لینا چاہئے کہ پیزو بزر کیسے کام کرتا ہے۔ ہم نے اپنے اسکول میں پیزو کرسٹل کے بارے میں جان لیا ہوگا ، یہ ایک کرسٹل کے علاوہ کچھ نہیں ہے جو مکینیکل کمپن کو بجلی میں تبدیل کرتا ہے یا اس کے برعکس۔ یہاں ہم ایک متغیر موجودہ (تعدد) لگاتے ہیں جس کے لئے اس طرح سے کرسٹل کمپن ہوتا ہے جس سے آواز پیدا ہوتی ہے۔ لہذا ہمیں پیزو بزر بنانے کے ل some کچھ شور پیدا کرنے کے ل we ہمیں پائزو الیکٹرک کرسٹل کو کمپن کرنے کے ل make بنانا پڑے گا ، شور اور آواز کا رنگ اس بات پر منحصر ہے کہ کرسٹل کے کتنے تیز رفتار سے کمپن ہوتا ہے۔ لہذا موجودہ اور تعدد کو مختلف کرتے ہوئے ٹون اور پچ پر قابو پایا جاسکتا ہے۔
ٹھیک ہے ، تو ہم ارڈوینو سے متغیر تعدد کیسے حاصل کریں گے؟ یہ وہ جگہ ہے جہاں ٹون () فنکشن آتا ہے۔ ٹون () ایک مخصوص پن پر ایک خاص تعدد پیدا کرسکتا ہے۔ اگر ضرورت ہو تو وقت کی مدت کا بھی ذکر کیا جاسکتا ہے۔ ٹون () کا نحو ہے
نحو سر (پن ، تعدد) ٹون (پن ، تعدد ، دورانیہ) پیرامیٹرز پن: وہ پن جس پر ٹون فریکوئنسی تیار کرنا ہے: ہرٹز میں سر کی تعدد - بغیر دستخط کیے ہوئے دورانیہ: ملی سیکنڈ میں سر کی مدت (اختیاری) - طویل دستخط شدہ
پن کی اقدار آپ کا کوئی ڈیجیٹل پن ہوسکتی ہیں۔ میں نے یہاں پن نمبر 8 استعمال کیا ہے۔ جو فریکوئنسی تیار کی جا سکتی ہے اس کا انحصار آپ کے اردوینو بورڈ میں ٹائمر کے سائز پر ہے۔ یو این او اور دیگر عام بورڈز کے ل produced کم سے کم تعدد جو تیار کی جاسکتی ہے 31 ہ ہرٹز ہے اور جس کی زیادہ سے زیادہ تعدد پیدا کی جاسکتی ہے وہ 65535 ہرٹج ہے۔ تاہم ہم انسان 2000 ہ ہرٹز اور 5000 ہرٹج کے درمیان صرف تعدد ہی سن سکتے ہیں۔
pitches.h ہیڈر فائل:
اب ، ہم جانتے ہیں کہ کس طرح ارڈینو ٹون () فنکشن کا استعمال کرتے ہوئے کچھ شور پیدا کیا جائے ۔ لیکن ، ہم کس طرح جان سکتے ہیں کہ ہر تعدد کے لئے کس طرح کا لہجہ پیدا ہوتا ہے؟
ارڈینو نے ہمیں ایک نوٹ ٹیبل دیا ہے جو ہر تعدد کو ایک مخصوص میوزیکل نوٹ کی قسم کے برابر رکھتا ہے۔ یہ نوٹ ٹیبل اصل میں بریٹ ہیگ مین نے لکھا تھا ، جس کے کام پر ٹون () کمانڈ مبنی تھا۔ ہم اپنے تھیمز کو چلانے کے لئے اس نوٹ ٹیبل کا استعمال کریں گے۔ اگر آپ شیٹ میوزک سے واقف ہیں تو آپ کو اس جدول کا کچھ ادراک کرنا چاہئے ، مجھ جیسے دوسروں کے لئے یہ کوڈ کا ایک اور بلاک ہیں۔
# تعیE_ن نوٹ_بی0 31 # # تعیE_ن نمبر #C1 33 # تعیE_ن نوٹE_E_CSCS #11 35 # # تعریف نE_E_E_DDDDD 37 37 # # تعریفfdeE_E_E_DSDSDSDSDS # تعیde NOTف NOT NOTE_E_ 41 41 # # تعریفfE_ #E_E_FFFF # # تعیdeنE_E_FSFSFS # # تعی NOTE_GE_GE_GE_GE_GE_GE_G # # # # # #dede # # تعریف شدہ # NOTE_B1 62 # تعی NOTن NOTE_C2 65 # تعی NOTن NOTE_CS2 69 # تعریف کریں نوٹ #D2 73 # تعریف نوٹE_DS2 78 # تعریف نہیں #E2 82 # تعریف نوٹ #F2 87 # تعریف نوٹیفیس # 93 # تعریف نوشتہ 98 98 # تعی NOTن نمبر 399 # 1102 # ڈفینٹ 117103 # 110 # تعی NOTن NOTE_C3 131 # تعریف NOTE_CS3 139 # تعی NOTن NOTE_D3 147 # تعریف NOTE_DS3 156 # تعریف NETEE 165 # تعیE_ن NOTE_F3 175 # تعیE_ن نمبر #F33 185 # تعی NOTن NOTmitted3 196 # تعیAن نمبر 29332020 NOTE_C4 262 # تعریف NOTE_CS4 277 # تعریف NOTE_D4 294 # تعریف NOTE_DS4 311 # تعریف نوٹیب ای 4 330 # تعریف NOTE_F4 349# تعی NOTن نوٹ_فیس #de NOT0 #de # تعیE_Gن نمبر 4 392 # تعریف # نہیں 4S4 # تعی NOTن نمبر # اے 4 4 # تعیE_ن نمبر #C5 523 # تعی NOTن NOTE_FS5 740 # تعریف NET55 784 # تعریف NOTE_GS5 831 # تعریف NOTE_A5 880 # تعریف نوE_AS5 932 # تعریف نوE_B5 988 # وضاحت ##C6 1047 # تعریف ## CS9 1106 # 1366E 13796 # ڈیفائن نوٹند61568 # تعی NOTن نوشاءس 16 1661 # تعی NOTن نمبر 9A6 1760 # تعریف نوE__AS6 1865de656565 # تعی NOT NOTف NOT NOTBE_B66 #de6 #de # تعی NOTنE_E_ NOT NOT NOTE_CC # 7 20949 #49 # تعی NOTن #89 2789 27 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 #Neh7 3136 # تعی NOTن NOTE_GS7 3322 # تعریف نوٹی ای اے 3520 # تعی NOTن NOTE_AS73729 # تعی NOTن NOTE_B7 3951 # تعریف NOTE_C8 4186 # تعریف NOTE_CS8 4435 # تعریف NETE_D8 4699 # تعریف NOTE_DS8 4978
اس زپ فائل میں مندرجہ بالا کوڈ پیچس ایچ میں ہیڈر فائل میں دیا گیا ہے ، آپ کو صرف اس فائل کو ہمارے آردوینو کوڈ میں ڈاؤن لوڈ اور شامل کرنے کی ضرورت ہے جیسا کہ اس ٹیوٹوریل کے آخر میں دیا گیا ہے یا زپ فائل میں دیئے گئے کوڈ کو استعمال کریں۔
ارڈوینو پر میوزیکل نوٹس بجانا:
ایردوینو کا استعمال کرتے ہوئے مہذب راگ ادا کرنے کے ل we ، ہمیں معلوم ہونا چاہئے کہ ان دھنوں کی تشکیل کیا ہے۔ ایک مرکزی خیال ، موضوع کو چلانے کے لئے درکار تین اہم عوامل ہیں
- نوٹ کی قیمت
- نوٹ دورانیہ
- ٹیمپو
ہمارے پاس کسی بھی نوٹ کی قیمت کو چلانے کے لئے پچز ہیڈر فائل موجود ہے ، اب ہمیں اسے کھیلنے کے ل note اس کی مخصوص نوٹ کی مدت معلوم کرنی چاہئے۔ ٹیمپو اس کے سوا کچھ نہیں ہے کہ راگ کو کس تیزی سے چلنا چاہئے۔ ایک بار جب آپ کو نوٹ کی قیمت اور نوٹ کی مدت کا پتہ چل جاتا ہے تو آپ انہیں اس طرح کے ٹون () جیسے استعمال کرسکتے ہیں
ٹون (پن نام ، نوٹ کی قیمت ، نوٹ دورانیہ)؛
اس ٹیوٹوریل میں کھیلے گئے ٹونوں کے ل I ، میں نے آپ کو "تھیمز ایچ" ہیڈر فائل کے اندر نوٹ ویلیو اور نوٹ کی مدت دی ہے جس کا استعمال کرتے ہوئے آپ انہیں اپنے پروجیکٹس میں چلا سکتے ہیں۔ لیکن اگر آپ کے کان میں کوئی مخصوص لہجہ ہے اور آپ اسے اپنے پروجیکٹ میں پڑھنا چاہتے ہیں تو پڑھیں…. ورنہ اس موضوع کو چھوڑ دیں اور اگلے حصے میں گر جائیں گے۔
کسی بھی مخصوص لہجے کو بجانے کے ل you آپ کو اس مخصوص موسیقی کا شیٹ میوزک حاصل کرنا ہوگا اور اس سے نوٹ کی قیمت اور نوٹ کی مدت کو پڑھ کر شیٹ میوزک کو اردوینو خاکہ میں تبدیل کرنا ہوگا۔ اگر آپ میوزیکل کے طالب علم ہیں تو یہ آپ کے لئے کیک کا ایک ٹکڑا ہوگا ، ورنہ کچھ وقت گزارتا اور آپ کی طرح سر توڑ دیتا جیسے میں نے کیا تھا۔ لیکن اس دن کے اختتام پر جب آپ کا لہجہ پیزو بززر پر چلتا ہے تو آپ کو اپنی محنت کا فائدہ ملتا ہے۔
ایک بار جب آپ کے پاس نوٹ ویلیو اور نوٹ کا دورانیہ ہوجاتا ہے تو ، انہیں نیچے "پروگرامز ایچ" ہیڈر فائل کے اندر پروگرام میں لوڈ کریں
// ############## ** "وہ ایک قزاقی ہے" قزاقوں کے کیریبین کا تھیم گانا ** ################## قزاقوں_ نوٹ = {NOTE_D4، NOTE_D4، NOTE_D4، NOTE_D4، NOTE_D4، NOTE_D4، NOTE_D4، NOTE_D4، NOTE_D4، NOTE_D4، NOTE_D4، NOTE_D4، NOTE_D4، NOTE_D4، NOTE_D4، NOTE_D4، نوٹ NOTE_A3، NOTE_C4، NOTE_D4، NOTE_D4، NOTE_D4، NOTE_E4، NOTE_F4، NOTE_F4، NOTE_F4، NOTE_G4، NOTE_E4، NOTE_E4، NOTE_D4، NOTE_C4، NOTE_C4، نوٹ، B9، نوٹ، B9، نوٹ، B9، نوٹ، B9، نوٹ، B9، نوٹ NOTE_C4، NOTE_C4، NOTE_C4، NOTE_C4، NOTE_D4، NOTE_C4، NOTE_D4، 0، 0، NOTE_A3، NOTE_C4، NOTE_D4، NOTE_D4، NOTE_D4، NOTE_F4، NOTE_G4، NOTE_G4، NOTmitted4، NOTE_A4، NOTE_A4، NOTE_A4، نوٹ 0 ، NOTE_D4، NOTE_E3، NOTE_F4، NOTE_F4، NOTE_G4، NOTE_A4، NOTE_D4، 0، NOTE_D4، NOTE_F4،NOTE_E4، NOTE_E4، NOTE_F4، NOTE_D4}؛ سمندری ڈاکو_تعلیم = {4،8،4،8،4،8،8،8،8،4،8،4،8،4،8،8،8،8،4،8،4،8، 4، 8،8،8،8،4،4،8،8،4،4،8،8،4،4،8،8، 8،4،8،8،8،4،4،8،8، 4،4،8،8،4،4،8،4، 4،8،8،8،8،4،4،8،8،4،4،8،8،4،4،8،8، 8،4،8،8،8،4،4،4،8،4،8،8،8،4،4،8،8}؛ // ############ وہ آخر ایک سمندری ڈاکو گانا ہے ############### // //
مذکورہ بالا کوڈ میں "وہ ایک سمندری ڈاکو ہے" تھیم کی نوٹ ویلیو اور نوٹ کی میعاد کو دکھایا گیا ہے جو فلم قزاقوں کیریبین کی فلم ہے۔ آپ اپنے تھیم کو اسی طرح شامل کرسکتے ہیں۔
منصوبہ بندی اور ہارڈ ویئر:
اس ارڈینو ٹون جنریٹر پروجیکٹ پروجیکٹ کی تدبیر ذیل کے اعداد و شمار میں دکھائی گئی ہے۔
یہ کنکشن بہت آسان ہے کہ ہمارے پاس پائزو اسپیکر ہے جو 1K ریسٹر کے ذریعہ آرڈینو کے 8 8 اور گراؤنڈ سے جڑا ہوا ہے۔ یہ 1 ک ریزٹر موجودہ حالیہ ریزٹر ہے ، جو موجودہ کو محفوظ حدود میں رکھنے کے لئے استعمال ہوتا ہے۔ ہمارے پاس مطلوبہ میلوڈی کو منتخب کرنے کے لئے چار سوئچز بھی ہیں۔ سوئچ کا ایک سرا ground زمین سے اور دوسرے سرے کو بالترتیب 2 ، 3 ، 4 اور 5 سے منسلک ہوتا ہے۔ سوئچز میں سافٹ ویئر کا استعمال کرتے ہوئے داخلی طور پر قابل مزاحمت کاروں کو اپنانا پڑے گا۔ چونکہ سرکٹ بہت آسان ہے اس لئے روٹی بورڈ کا استعمال کرتے ہوئے رابطہ قائم کیا جاسکتا ہے جیسا کہ ذیل میں دکھایا گیا ہے:
اردوینو پروگرام کی وضاحت:
ایک بار جب آپ نے اس تصور کو سمجھا تو ، اردوینو پروگرام بالکل سیدھا ہے۔ سبق کے آخر میں مکمل کوڈ دیا گیا ہے۔ اگر آپ ہیڈر فائلوں کو شامل کرنے سے واقف نہیں ہیں تو آپ کوڈ کو یہاں سے ایک زپ فائل کے طور پر ڈاؤن لوڈ کرسکتے ہیں اور اسے براہ راست اپنے اردوینو میں اپ لوڈ کرسکتے ہیں۔
مندرجہ بالا دو ہیڈر فائلیں ہیں جن کو شامل کرنا ہے۔ "مچھلی" کو ہر میوزیکل نوٹ کو ایک خاص تعدد سے مساوی کرنے کے لئے استعمال کیا جاتا ہے اور "تھیمز ایچ" میں چاروں سروں کی نوٹ ویلیو اور نوٹ کی مدت ہوتی ہے۔
# شامل کریں "پچیز ایچ" "شامل کریں" تھیمز ایچ "
جب ضرورت ہو تو ہر ٹون بجانے کے لئے ایک فنکشن تیار کیا جاتا ہے۔ یہاں جب پلے پیرایٹس () کو فنکشن کہا جاتا ہے تو "وہ ایک سمندری ڈاکو ہے" ٹون چلایا جائے گا۔ یہ فن ٹون فنکشن پر مشتمل ہے جو پن نمبر 8 پر تعدد پیدا کرتا ہے۔ نون ٹون (8) موسیقی چلانے کے بعد اسے روکنے کے لئے کہا جاتا ہے۔ اگر آپ اپنا اپنا لہجہ ادا کرنا چاہتے ہیں تو ، قزاقوں_نوٹ اور قزاقوں_تعلیم کو نئے نوٹ اور دورانیے کی قدروں میں تبدیل کریں جو آپ نے "تھیمز ایچ" کی قدر میں محفوظ کی ہیں۔
باضابطہ Play_Pirates () {for (int thisNote = 0؛ thisNote <(قزاقوں (قزاقوں_نوٹ) / sizeof (INT))؛ یہ نوٹ ++) {INTTddistance = 1000 / قزاقوں_ تعلیم // // مدت میں تاخیر کا تبادلہ کریں (8 ، قزاقوں_نوٹ ، نوٹ کی مدت)؛ # pauseBetweenNotes = نوٹ کی مدت * 1.05؛ // یہاں 1.05 عارضی ہے ، اس میں سست تاخیر کو چلانے کے لئے بڑھاو (موقوفبٹیوڈن نوٹس)؛ نو ٹون (8)؛ }
کھیلنے کے لئے مخصوص ٹون کو منتخب کرنے کے لئے پن 2 ، 3 ، 4 اور 5 استعمال کیا جاتا ہے۔ مذکورہ بالا کوڈ کی لائن کو استعمال کرکے ان پنوں کو اندرونی پل اپ ریزٹرز کا استعمال کرتے ہوئے ڈیفالٹ کے لحاظ سے اونچائی پر رکھی جاتی ہے۔ جب بٹن دبایا جاتا ہے تو اسے نیچے زمین پر کھینچ لیا جاتا ہے۔
پن موڈ (2 ، INPUT_PULLUP)؛ پن موڈ (3 ، INPUT_PULLUP)؛ پن موڈ (4 ، INPUT_PULLUP)؛ پن موڈ (5 ، INPUT_PULLUP)؛
جب ایک بٹن دبایا جاتا ہے تو گانا بجانے کیلئے کوڈ کے نیچے بلاک استعمال ہوتا ہے۔ یہ ہر بٹن کی ڈیجیٹل ویلیو پڑھتا ہے اور جب یہ کم ہوجاتا ہے (صفر) یہ فرض کرتا ہے کہ بٹن دب گیا ہے اور مطلوبہ فنکشن کو کال کرکے متعلقہ لہجہ ادا کرتا ہے۔
if (digitalRead (2) == 0) ial Serial.println ("منتخب -> 'وہ ایک سمندری ڈاکو ہے'")؛ پلے پیریٹس ()؛ } if (digitalRead (3) == 0) ial Serial.println ("منتخب -> 'پاگل میڑک'")؛ Play_CrazyFrog ()؛ } if (digitalRead (4) == 0) ial Serial.println ("منتخب -> 'ماریو انڈرورلڈ'")؛ پلے_ماریو یو ڈبلیو ()؛ } if (digitalRead (5) == 0) ial Serial.println ("منتخب -> 'وہ ایک سمندری ڈاکو ہے'")؛ پلے پیریٹس ()؛ }
اس میلوڈی پلیئر آردوینو سرکٹ کا کام کرنا:
ایک بار جب آپ کا کوڈ اور ہارڈ ویئر تیار ہوجاتا ہے ، تو پروگرام کو صرف اپنے ارڈینو میں جلا دیں اور آپ کو بٹن دبانے سے ہی لہجہ ادا کرنے کے قابل ہونا چاہئے۔ اگر آپ کو کوئی پریشانی ہو تو ڈیبگنگ کے ل your اپنے سیریل مانیٹر پر ایک نظر ڈالیں یا اس مسئلے کی اطلاع دینے کے لئے کمنٹ سیکشن کا استعمال کریں اور مجھے آپ کی مدد کرنے میں خوشی ہوگی۔
منصوبے کا مکمل کام ذیل ویڈیو میں دکھایا گیا ہے ۔ امید ہے کہ آپ کو پروجیکٹ کا مزہ آیا ہوگا اور آپ اسے اپنے کسی پروجیکٹ میں استعمال کریں گے یا اپنے پروجیکٹ کے لئے ایک نیا لہجہ پیدا کریں گے۔ اگر ہاں تو بلا جھجھک اپنے کام کو کمنٹ سیکشن میں شیئر کریں۔