Jannah Theme License is not validated, Go to the theme options page to validate the license, You need a single license for each domain name.
أجهزة ومعدات

كيفية استخدام مكبر صوت بيزو مع Raspberry Pi لتشغيل الأصوات


هل تساءلت يومًا كيف تُصدر ألعاب الدبدوب الصغيرة هذه صوتًا؟ من المحتمل أنك كنت تستمع إلى مكبر صوت يعمل بالكهرباء الانضغاطية. يمكنك صنع الأصوات والموسيقى بنفسك باستخدام مكبر صوت بيزو مع Raspberry Pi!

ما هو مكبر الصوت بيزو؟

تحتوي مكبرات الصوت بيزو على مادة خاصة تسمى “عنصر بيزو” قادرة على إظهار التأثير الكهروضغطي ، وهي عملية تولد شحنة كهربائية عندما تصطدم بشيء صلب.

العديد من الأشياء الصلبة ، مثل الصخور أو الملح ، تكون صلبة لأن ذراتها متراصة بإحكام. هذا الترتيب يسمى “الهيكل البلوري”.

في بعض المواد ، يمكن أن تنحني الهياكل البلورية أو تنضغط عند تطبيق قوة كافية عليها. هذا يجعل بعض الذرات تبقى بجانب الذرات الأخرى التي لا تجلس بجانبها عادة.

في المواد الكهروإجهادية أو العناصر البيزو ، هذه الذرات لها شحنة معاكسة: واحدة موجبة والأخرى سلبية. في اللحظة التي تقترب فيها ذرات الشحنات المعاكسة من بعضها البعض ، تحدث الكهرباء.

توجد عناصر بيزو داخل مكبرات الصوت بيزو هذه.

يمكنك أيضًا القيام بالعكس – تطبيق مجال كهربائي على عناصر بيزو لجعل الهياكل البلورية تنحني ، وتغيير الشكل العام للمادة. عند استخدام مكبر صوت بيزو ، فأنت تصنع عنصر بيزو داخل العقد وتتوسع بسرعة كبيرة بحيث يهتز ويصدر صوتًا.

ما تحتاجه للمشروع

يعد استخدام مكبرات الصوت بيزو مع Raspberry Pi لتوليد الأصوات أمرًا بسيطًا مثل جعل مصابيح LED تومض. أنت فقط بحاجة إلى بعض الأشياء ورمز مختلف. لن تحتاج إلى المقاوم.

  • مكبرات الصوت بيزو
  • عدد 2 سلك توصيل من ذكر لأنثى
  • فطيرة التوت

كيفية استخدام مكبر صوت بيزو مع Raspberry Pi

  1. افتح محرر الكود المفضل لديك والصق الكود التالي:
# The frequencies in this code was based on the note frequencies found at:
# https://pages.mtu.edu/~suits/notefreqs.html
# Tuned at A4 = 440Hz.
 
import RPi.GPIO as GPIO
from time import sleep
 
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
pin7 = GPIO.PWM(7, 100)
pin7.start(50)
 
while True:
  GPIO.output(7, GPIO.HIGH)
  pin7.ChangeFrequency(16.35) # C0
  sleep(1)
  pin7.ChangeFrequency(261.63) # C4
  sleep(1)
  pin7.ChangeFrequency(293.66) # D4
  sleep(1)
  pin7.ChangeFrequency(329.63) # E4
  sleep(1)
  pin7.ChangeFrequency(349.23) # F4
  sleep(1)
  pin7.ChangeFrequency(392.00) # G4
  sleep(1)
  pin7.ChangeFrequency(440.00) # A4
  sleep(1)
  pin7.ChangeFrequency(493.88) # B4
  sleep(1)
  pin7.ChangeFrequency(523.25) # A5
  sleep(1.5)
  pin7.ChangeFrequency(16.35) # C0
  sleep(1)
  GPIO.output(7, GPIO.LOW)
  sleep(1)
  1. احفظ باسم “rpi-piezo.py” أو أي اسم ملف تريده ، طالما أنه ينتهي بامتداد الملف “.py” ، ثم أغلق Raspberry Pi.
  1. حان الوقت الآن لبناء الدائرة. قم بتوصيل الدبوس أو السلك الموجب بالدبوس 7 والدبوس الآخر بـ GND. تحتوي بعض عناصر بيزو على علامة “+” توضح الدبوس الموجب. البعض الآخر لديه أسلاك بارزة – كالعادة ، السلك الأحمر يعني موجب.
بيزو على سهم اللوح على الصليب الأحمر والأسود
السهم: علامة الصليب تشير إلى 5V على مكبر الصوت بيزو.

إذا كنت تواجه مشكلة في البحث عن الدبوس 7 ، فامسك Raspberry Pi بطريقة تلتصق بها دبابيس GPIO إلى اليمين ، ثم انظر إلى دبابيس GPIO. يجب أن يكون الدبوس العلوي الأيسر هو الدبوس 1 وإلى اليمين هو الدبوس 2. يوجد أسفل الدبوس 1 السن 3 ، وإلى اليمين هو الدبوس 4 وما إلى ذلك.

Raspberry Pi Pinout
  1. قم بتشغيل Raspberry Pi الخاص بك وافتح المحطة.
  1. انتقل إلى المجلد حيث قمت بحفظ “rpi-piezo.py” من خلال الجهاز باستخدام cd. هذا مثال: cd MTE/experiments/rpi-piezo. يحتوي المجلد “rpi-piezo” على البرنامج النصي “rpi-piezo.py” الخاص بنا.
  1. حان الوقت الآن لتشغيل نص بايثون. يدخل python3 rpi-piezo.py واستمع إلى أصوات C الكبرى!

شرح الكود

يمكن أن يبدو الرمز وكأنه فوضى كبيرة للوهلة الأولى ، لذلك دعونا نقسمه إلى ثلاثة أجزاء:

  1. أوامر الاستيراد
  2. أوامر الإعداد
  3. أوامر ملتوية

هذا ليس تجميعًا موحدًا – لقد تم إنشاؤه لأنه من الجيد دائمًا تقسيم التعليمات البرمجية إلى أجزاء يسهل التعرف عليها. يجعل الأمور أسهل عندما تحاول تغيير أي جزء من الكود.

أوامر الاستيراد

هذا هو المكان الذي تحدد فيه الوحدات التي “تستوردها” إلى شفرتك. تتكون أوامر الاستيراد من سطرين من التعليمات البرمجية.

import RPi.GPIO as GPIO
from time import sleep

import RPi.GPIO as GPIO يخبر Python أنك تستخدم وحدة RPi.GPIO للتحكم في دبابيس GPIO الخاصة بـ Raspberry Pi. as GPIO يخبرها أنه كلما اتصلت بالمتغير GPIO، فأنت تستدعي وحدة RPi.GPIO.

from time import sleep هي طريقة أخرى لاستدعاء الوحدات. ولكن بدلاً من أخذ الوحدة النمطية بأكملها ، فأنت تقوم فقط باستيراد ملف sleep() وظيفة من time وحدة. يمكن أن يساعد هذا كثيرًا عندما يتعلق الأمر بالأداء ، حيث لن تضطر Python إلى تحميل الوحدة بأكملها ؛ إنها تستخدم هذه الوظيفة فقط.

أوامر الإعداد

الكود الموجود في أوامر الإعداد هو المكان الذي “تقوم فيه” بإعداد أو تحديد جميع الأجزاء المهمة في برنامجك ، مثل المتغيرات والإعدادات وتسميات الدبوس. يجب تحديد هذه مرة واحدة فقط.

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
pin7 = GPIO.PWM(7, 100)
pin7.start(50)

GPIO.setwarnings(False) يمنع التحذيرات من الظهور عند تشغيل الكود. لا تزال التحذيرات تظهر عند تشغيل الكود الخاص بك بنجاح ، ولكن إضافة هذا الجزء من الرمز يمنع رسائل التحذير من إغراق الجهاز في كل مرة تدخل فيها python3 rpi-piezo.py. لكن هذا أكثر من تفضيل شخصي – يمكنك فقط إزالة هذا الجزء إذا كنت تريد رؤية التحذيرات. لا يزال يعمل بنفس الطريقة.

GPIO.setmode(GPIO.BOARD) يخبر Python كيف تريد تسمية دبابيس إدخال / إخراج الأغراض العامة (GPIO) الخاصة بـ Raspberry Pi. هناك طريقتان: BOARD و BCM.

  • BOARD هو تنسيق تسمية حيث تقوم بتسمية المسامير بناءً على أرقامها الشخصية. هنا ، يوجد الدبوس 1 في أعلى اليسار ، الدبوس 2 بجانبه ، الدبوس 3 أسفل الدبوس 1 وهكذا.
  • BCM تعني “Broadcom”. بدلاً من أرقام التعريف الشخصية المادية ، تختار BCM قناة Broadcom SOC الخاصة بها. يختلف تنسيق التسمية هذا من لوحة إلى أخرى ، لذلك قد يكون من الأصعب قليلاً متابعته إذا كنت تستخدم BCM في دليل.

GPIO.setup(7, GPIO.OUT) يخبر Python أنك تستخدم pin 7 كمخرج.

pin7 = GPIO.PWM(7, 100) يجعل المتغير ، pin7، الذي يحتوي على السلسلة GPIO.PWM(7, 100). يؤدي هذا إلى اختصار التعليمات البرمجية الخاصة بك بحيث يمكنك استخدامها فقط pin7 بدلا من الاتصال GPIO.PWM(7, 100) طوال الوقت.

أخيرا، pin7.start(50) يضبط الدبوس 7 على وضع PWM (تعديل عرض النبض). هذا يعني أنه كلما تم ضبط الدبوس 7 على HIGH، تصدر 3.3 فولت نصف الوقت. باقي الوقت ، لا يصدر أي شيء (أو يكون عند 0 فولت).

أوامر متكررة

تعمل الأوامر الحلقية في حلقة – تتكرر ما دمت تحافظ على تشغيل البرنامج النصي. للقيام بذلك ، عليك الاحتفاظ بها مسافة بادئة بعد ذلك while True:.

while True:
  GPIO.output(7, GPIO.HIGH)
  pin7.ChangeFrequency(16.35) # C0
  sleep(1)
  pin7.ChangeFrequency(261.63) # C4
  sleep(1)
  pin7.ChangeFrequency(293.66) # D4
  sleep(1)
  pin7.ChangeFrequency(329.63) # E4
  sleep(1)
  pin7.ChangeFrequency(349.23) # F4
  sleep(1)
  pin7.ChangeFrequency(392.00) # G4
  sleep(1)
  pin7.ChangeFrequency(440.00) # A4
  sleep(1)
  pin7.ChangeFrequency(493.88) # B4
  sleep(1)
  pin7.ChangeFrequency(523.25) # A5
  sleep(1.5)
  pin7.ChangeFrequency(16.35) # C0
  sleep(1)
  GPIO.output(7, GPIO.LOW)
  sleep(1)

GPIO.output(7, GPIO.HIGH) يدير دبوس 7 HIGH. هذا الدبوس يعمل ويعطي إشارة PWM. الوظيفة GPIO.output() يأخذ في معلمتين: الرقم السري وما إذا كنت تريد تعيينه HIGH أو LOW. إذا تخطيت إلى الجزء السفلي ، ستجد GPIO.output(7, GPIO.LOW)، وهو ما يفعل العكس – يقوم بتشغيل الدبوس 7 LOW.

سطور التعليمات البرمجية الموجودة بينهما ليست سوى سلسلة من ملفات pin7.ChangeFrequency() و sleep(1). يتيح لك ضبط معلماتها تشغيل أنواع مختلفة من النغمات.

pin7.ChangeFrequency() هو في الواقع أحد أشكال الاختصار GPIO.PWM(7, 100).ChangeFrequency(). يسهل استخدام نموذج الاختصار تغيير الدبوس الذي تستخدمه. إذا لم تحدد pin7 = GPIO.PWM(7, 100) في وقت سابق ، يجب عليك تغيير رقم التعريف الشخصي في كل تغيير تردد تقوم به.

ماذا يوجد في الداخل .ChangeFrequency() هو تردد إشارة PWM ، وبالتالي عنصر بيزو. تذكر أن عنصر بيزو هو مجرد بلورة صلبة تتقلص قليلاً عند تمرير الكهرباء خلالها وتسترخي عند التوقف. يصدر الانكماش السريع والاسترخاء أصواتًا مختلفة النغمات ، ويمكنك التحكم في النغمة عن طريق تغيير الرقم الداخلي .ChangeFrequency(). لتسهيل الأمور عليك ، يوجد تعليق بعد كل منها pin7.ChangeFrequency() مشيرا إلى ما هي النوتة.

أخيرا، sleep(1) يوقف الرمز مؤقتًا لمدة ثانية واحدة. إذا قمت بإيقاف الرمز مؤقتًا بعد تغيير التكرار ، فستحصل بشكل أساسي على ملاحظة واحدة – ستلعب هذه الملاحظة طالما احتفظت بالشفرة نائم.

كيف يتم توليد الصوت

كيف ينتقل كل شيء من عنصر بيزو مهتز إلى صوت ، ثم يتحول إلى شيء يمكن أن يشبه الموسيقى؟ الأمر كله يتعلق بالتردد والنغمة.

ما ندركه كأصوات بآذاننا هو في الواقع اهتزازات في الهواء. كلما زاد اهتزاز الهواء ، زادت حدة الصوت. نرسم هذا على الورق كموجات ذات أنماط مختلفة ونعطيها وحدة SI ، أي وحدة قياس: Hz (والتي تعني هيرتز). الموجات الصوتية ذات التردد العالي تهتز أسرع من الموجات الأقل. يمكننا نحن البشر سماع اهتزاز الموجات الصوتية في مكان ما بين 20 هرتز و 20000 هرتز.

عندما كنت تستخدم ChangeDutyCycle()، لقد غيرت عدد المرات التي يهتز فيها عنصر بيزو بمرور الوقت ، أي التردد. هرتز مقياس تواتر الاهتزازات في الهواء.

لتغيير الصوت بطريقة تشبه الموسيقى على الأقل ، عليك تغيير التردد بطريقة معينة. بمعنى آخر ، عليك تعديل درجة الصوت. على عكس التردد ، فإن النغمة هي مقياس لمدى ارتفاع الصوت أو انخفاضه اصوات لآذاننا. من خلال تغيير الملعب ، فأنت تصنع شيئًا قريبًا بالفعل من الموسيقى.

غيتار Unsplash
تقوم أوتار الجيتار دائمًا بتشغيل الأصوات بتردد محدد.
مصدر الصورة: Unsplash

بالطبع ، هناك ما هو أكثر من صنع الموسيقى من مجرد تغيير النغمات. تحتاج أيضًا إلى مدة الملعب لتدوين ملاحظة. هذا هو المكان sleep() يذهب – أنت تجعل Raspberry Pi يبقى في الملعب لفترة معينة من الوقت لإعطائك ملاحظة مناسبة!

أسئلة مكررة

ما هو الفرق بين مكبر الصوت بيزو والسماعة المغناطيسية؟

تستخدم مكبرات الصوت بيزو عنصر بيزو اهتزازي لإنتاج الصوت. عادة ما تكون مصنوعة من السيراميك وعادة ما تستخدم في الجرس. وفي الوقت نفسه ، تستخدم مكبرات الصوت المغناطيسية مغناطيسًا كهربائيًا يهتز الأغشية البلاستيكية. يتم استخدامها في الهواتف الذكية وسماعات الرأس.

هل عناصر بيزو لها قطبية؟

من الناحية الفنية ، نعم. ينحني عنصر بيزو داخل مكبرات الصوت بيزو في اتجاه واحد إذا قمت بتطبيق الجهد من جانب والآخر إذا قمت بعكسه.

إلى جانب مكبرات الصوت ، ما هي العناصر البيزو المستخدمة؟

كل ما له علاقة بالضغط والاهتزاز له عناصر بيزو. يتضمن ذلك مقاييس التسارع والميكروفونات وآلات التقاط الجيتار ومكبرات الصوت. ولكن هناك أيضًا شيء واحد غير عادي به: الولاعات تستخدمهم لإحداث الشرارة التي تضيء اللهب.

الصور ولقطات الشاشة بواسطة Terenz Jomar Dela Cruz

تيرينز جومار ديلا كروز

Terenz هو هاوٍ متخصص في الروبوتات يحاول بناء أروع روبوت شهده العالم على الإطلاق. كان بإمكانه فعل ذلك بالفعل إذا لم يكن مشغولًا جدًا في حرق مصابيح LED كهواية ثانية.

اشترك في نشرتنا الإخبارية!

تم تسليم أحدث دروسنا مباشرة إلى صندوق الوارد الخاص بك

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى