في هذه الجلسة سنستخدم وظائف Raspberry Pi و PYGAME لإنشاء لوحة صوتية. بعبارات بسيطة ، سنقوم بتوصيل بعض الأزرار بدبابيس Raspberry Pi GPIO وعندما يتم الضغط على هذه الأزرار ، يقوم Raspberry Pi بتشغيل الملفات الصوتية المخزنة في ذاكرته. يمكن تشغيل هذه الملفات الصوتية واحدة تلو الأخرى أو يمكن تشغيلها جميعًا معًا. بمعنى آخر ، يمكنك الضغط على زر واحد أو عدة أزرار في نفس الوقت ، وسوف يقوم Raspberry Pi بتشغيل ملف صوتي واحد أو عدة ملفات صوتية وفقًا لذلك في نفس الوقت. تحقق من الفيديو التوضيحي في نهاية هذه المقالة. تحقق أيضًا من سلسلة دروس Raspberry Pi التعليمية جنبًا إلى جنب مع بعض مشاريع إنترنت الأشياء الجيدة.
لدينا 26 دبوس GPIO في Raspberry Pi يمكن برمجتها ، بعضها يستخدم لأداء بعض الوظائف الخاصة ومن ثم يتبقى لدينا 17 GPIO. يمكن لكل دبوس GPIO توصيل أو رسم 15 مللي أمبير كحد أقصى. ولا يمكن أن يتجاوز مجموع التيارات من كل GPIO 50 مللي أمبير. لذلك يمكننا رسم متوسط 3 مللي أمبير بحد أقصى من كل من دبابيس GPIO هذه. سوف نستخدم المقاومات للحد من التدفق الحالي. تعرف على المزيد حول دبابيس GPIO وزر التوصيل مع Raspberry Pi هنا.
المكونات المطلوبة:
نحن هنا نستخدم Raspberry Pi 2 Model B مع نظام التشغيل Raspbian Jessie OS. تمت مناقشة جميع متطلبات الأجهزة والبرامج الأساسية مسبقًا ، يمكنك البحث عنها في مقدمة Raspberry Pi و Raspberry PI LED Blinking للبدء ، بخلاف ما نحتاج إليه:
- Raspberry Pi مع نظام تشغيل مثبت مسبقًا
- مزود الطاقة
- مكبر الصوت
- 1KΩ المقاوم (6 قطع)
- أزرار ضغط (6 قطع)
- مكثف 1000 فائق التوهج
شرح العمل:
نحن هنا نلعب الصوت باستخدام الأزرار مع Raspberry Pi. لقد استخدمنا 6 أزرار ضغط لتشغيل 6 ملفات صوتية. يمكننا إضافة المزيد من الأزرار والملفات الصوتية لتوسيع هذه اللوحة لإنشاء نمط أكثر جمالا بالضغط على هذه الأزرار. قبل الشرح أكثر ، أكمل الخطوات أدناه.
1. قم أولاً بتنزيل الملفات الصوتية الستة من الرابط أدناه أو يمكنك استخدام ملفات الصوت الخاصة بك ، ولكن بعد ذلك تحتاج إلى تغيير أسماء الملفات في Code.
قم بتنزيل ملفات الصوت من هنا
2. أنشئ مجلدًا جديدًا على شاشة سطح مكتب Raspberry Pi وأطلق عليه اسم "PI SOUND BOARD".
3. قم بفك ضغط الملفات الصوتية التي تم تنزيلها في المجلد الذي أنشأناه على سطح المكتب في الخطوة السابقة.
4. افتح نافذة Terminal في Raspberry Pi وأدخل الأمر أدناه:
sudo amixer cset numid = 3 1
يخبر هذا الأمر PI بتوفير إخراج الصوت من خلال مقبس صوت 3.5 مم على اللوحة.
إذا كنت تريد إخراج الصوت من منفذ HDMI ، فيمكنك استخدام الأمر أدناه:
طقم amixer $ sudo numid = 3 2
5. قم بتوصيل مكبرات الصوت بمقبس إخراج الصوت 3.5 ملم الموجود على لوحة Raspberry Pi.
6. قم بإنشاء ملف PYTHON (امتداد.py *) واحفظه في نفس المجلد. تحقق من هذا البرنامج التعليمي لإنشاء وتشغيل برنامج Python في Raspberry Pi.
7. سيتم تثبيت Pygame mixer بشكل افتراضي في نظام التشغيل. إذا كان البرنامج ، بعد التنفيذ ، لا يتذكر PYMIXER ، فقم بتحديث نظام تشغيل Raspberry Pi عن طريق إدخال الأمر أدناه في نافذة المحطة الطرفية. تأكد من أن Pi متصل بالإنترنت.
sudo apt-get update
انتظر بضع دقائق حتى يتم تحديث نظام التشغيل.
الآن قم بتوصيل كل مكون وفقًا لمخطط الدائرة الموضح أدناه ، قم بنسخ برنامج PYHTON إلى ملف PYHTON الذي تم إنشاؤه على سطح المكتب وأخيراً اضغط على تشغيل لتشغيل الملفات الصوتية من خلال الأزرار. يتم تقديم برنامج Python في النهاية بالفيديو التوضيحي.
مخطط الرسم البياني:
شرح البرمجة:
هنا قمنا بإنشاء برنامج Python لتشغيل ملفات الصوت وفقًا لضغط الزر. هنا نحتاج إلى فهم بعض الأوامر التي استخدمناها في البرنامج.
استيراد RPi.GPIO كـ IO
سنقوم باستيراد ملف GPIO من المكتبة ، الأمر أعلاه يمكننا من برمجة دبابيس GPIO في PI. نقوم أيضًا بإعادة تسمية "GPIO" إلى "IO" ، لذلك في البرنامج عندما نريد الإشارة إلى دبابيس GPIO ، سنستخدم كلمة "IO".
تحذيرات IO.set (خطأ)
في بعض الأحيان ، عندما تقوم دبابيس GPIO التي نحاول استخدامها ببعض الوظائف الأخرى. ثم سوف تتلقى تحذيرات كلما قمت بتنفيذ برنامج. يخبر هذا الأمر Raspberry Pi بتجاهل التحذيرات ومتابعة البرنامج.
IO.setmode (IO.BCM)
سنقوم هنا بإحالة دبابيس i / o الخاصة بـ PI بواسطة اسم وظيفتها. لذلك نحن نقوم ببرمجة GPIO بواسطة أرقام التعريف الشخصي BCM ، والتي تمكننا من الاتصال برقم التعريف الشخصي PIN برقم GPIO الخاص بهم كما يمكننا استدعاء PIN39 كـ GPIO19 في البرنامج.
استيراد pygame.mixer
نحن ندعو pygame mixer لتشغيل الملفات الصوتية.
audio1 = pygame.mixer.Sound ("buzzer.wav")
نحن ندعو إلى ملف الصوت "buzzer.wav" المخزن في مجلد سطح المكتب. إذا كنت تريد تشغيل أي ملف آخر ، فما عليك سوى تغيير اسم ملف الصوت في الوظيفة المذكورة أعلاه. يمكنك تسمية أي ملفات موجودة في مجلد سطح المكتب.
channel1 = pygame.mixer.Channel (1)
نحن هنا نقوم بإعداد قناة لكل زر حتى نتمكن من تشغيل جميع الملفات الصوتية في وقت واحد.
إذا (IO.input (21) == 0): channel1.play (audio1)
في حالة ما إذا كانت العبارة صحيحة ، سيتم تنفيذ العبارة أدناه مرة واحدة. لذلك إذا كان GPIO pin 21 منخفضًا أو مؤرضًا ، فسيتم تشغيل ملف الصوت المخصص لمتغير audio1 . وفقًا لمخطط الدائرة ، يمكننا أن نرى أن GPIO pin 21 ينخفض عندما نضغط على الزر الأول. حتى نتمكن من تشغيل أي ملف صوتي بالضغط على الزر المقابل.
while 1: تستخدم كحلقة إلى الأبد ، باستخدام هذا الأمر ، سيتم تنفيذ التعليمات الموجودة داخل هذه الحلقة بشكل مستمر.
يمكنك إجراء تغييرات على برنامج python لعمل لوحة الصوت الأكثر إرضاءً مع Raspberry Pi. يمكنك أيضًا إضافة المزيد من الأزرار لجعل الأشياء أكثر إثارة وتشغيل المزيد من الملفات الصوتية.