بسم الله الرحمن الرحيم
يعد جهاز الميدي من احد الأجهزة الرائعه التى يتم استخدامها فى مجال الموسيقي حيث يعد الجهاز الرئيسي للعزف حيث هو عبارة عن بيانو يتم توصيله الى جهاز الكمبيوتر يقوم بارسال نغمات الى الكمبيوتر ويقوم الكمبيوتر بترجمه هذه البيانات الى موسيقى عبر برنامج خاص ويمكن ان نستخدم الهاتف بدلا من الكمبيوتر وهذا ما سنقوم بتصميمه
حيث سنتطرق فى هذه السلسلة الى العديد من التطويرات على هذا المشروع حتى الوصول الى النتيجة النهائية
فى هذا المقال سنصمم جهاز ميدى يحتوى على 32 زر يقوم كل زر باخراج نغمة معينه
كما هو موضح فى الصورة الأتيه
اولا الأدوات :
keypad 32 keys
arduino micro - lenardo - yun
keypad 32 keys
هذه المصفوفة من المفاتيح يمكن الحصول عليها من اي بيانو مخصص لعبه 32 مفتاح تكون موجوده داخله او يمكن تصميمها بنفسك عن طريق توصيل السويتشات مثل keypad اربعه صفوف و اربعه اعمده
arduino
يجب للتعامل مع هذا التطبيق استخدام نوع اردوينو مخصص مثل
micro او lenaordo او due بحيث يمكن توصيلها الى الهاتف باستخدام كابل usb وهذا ضروري لعمل المشروع
في هذا التطبيق استخدمت اردوينو ليناردو
اول 4 اسلاك من يسار الشريحه عبارة عن صفوف
و باقى الأسلاك عبارة عن اعمده فهي نفس مبدا عمل keypad
وان لم تفهم فعليك بمراجعه الدروس التى قمنا بكتابتها
يتم توصيل 4 منافذ الخاصه بالصفوف الى 2 و 3 و 4 و5
فى المنافذ الرقمية
ثم توصيل باقى المنافذ من 6 الى 13
فيجب اتباع هذه التوصيله للوصول الى النهاية المرجوة
ثالثا الكود :
لكي التعامل مع هذا المشروع فسنحتاج مكتبتين مكتبة keypad وهي تحميلها من موقع arduino الرسمي من هنا
ومكتبه midiusb التى سنحتاجها للتواصل مع التطبيق على الهاتف لإخراج الصوت
وسنقوم بتحميلها بهذه الطريقه
فى البداية يتم اضافة المكتبات المستخدمه
#include <MIDIUSB.h>
#include <Keypad.h>
من ثم تعريف ال 32 زر بحروف وارقام مختلفة
char keys[4][8]={
{'1','2','3','4','5','6','7','8'},
{'9','A','B','C','D','E','F','G'},
{'H','I','J','K','L','M','N','O'},
{'P','Q','a','b','c','d','e','f'}
};
من ثم تعريف المنافذ الخاصه بالصفوف والأعمده عن طريق
byte ROWS[]={2,3,4,5};
byte COLS[]={6,7,8,9,10,11,12,13};
من ثم تعريف اللوحه داخل المكتب عن طريق كتابة اسم المكتبه وعمل خريطه للمكتبه واضافه منافذ الصفوف والأعمده وعدد الصفوف وعدد الأعمده
Keypad key(makeKeymap(keys),ROWS,COLS,4,8);
من ثم انشاء داله اسمها noteOn تاخذ ثلاث متغيرات
velo , pitch , channel
وهذه أساسية لكي يتم استقبال الداتا من قبل برنامج الموسيقى ولكي يستطيع البرنامج فهم البيانات المرسله
وايضا ان شاء داله باسم noteOf وتاخذ نفس المتغيرات
ولكنها تقوم بايقاف النغمة
من ثم تحديد سرعه التواصل وهى 115200 وهى القيمة التى تتعامل بها اجهزة الميدي
من ثم الدخول الى void loop
فى البداية انشاء متغير من نوع char لكى يتم تخزين فيه بيانات الزر الذي تم ضغطه فى اللوحه
ثم عمل شروط هل قيمة المتغير تساوي قيمة من قيم الأزرار التى قمنا بسبق تعيينها قم بتاكد من ان القناة الخاصه بالميدي متاحه ثم قم بارسال النغمة اذا تغيرت قيمة المتغير او تم رفع الأصبع عن الزر قم باطفاء النغمة
وهذا جزء من الكود يتم تعميم الشرح على باقى الكود
ولكي يتم التعامل بنجاح مع الهاتف يجب استخدام تطبيقات مخصصه وهذه هي اشهر التطبيقات
لتحميل الكود اضغط هنا
النتيجة النهايئة : من تصميم الأستاذ عبد الفتاح كما هيه موضحه فى الفيديو التالى
تصميم وبرمجة : بلال حسان سعدي
تجربة : عبد الفتاح
لا يوجد تعليقات
أضف تعليق