جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
مرحبا جميعا،
في هذا الدليل ، أشرح كيف صنعت مسجل تشغيل باستخدام Raspberry Pi. الجهاز من طراز Raspberry Pi B + ، مع 7 أزرار ضغط في الأعلى ، ومكبر صوت متصل بأحد منافذ USB ، وميكروفون متصل بمنافذ USB أخرى. يرتبط كل زر بصوت ، بحيث يمكنه تشغيل 7 أصوات مختلفة. يتم تشغيل الأصوات بعد ضغطة قصيرة على الزر. لتسجيل صوت جديد ، ما عليك سوى الضغط على الزر لأكثر من ثانية واحدة ، والتسجيل بعد الصفير ، واترك الزر في نهاية التسجيل. لا يوجد أبسط من ذلك!
الخطوة 1: المواد المطلوبة
لهذا المشروع كنت بحاجة إلى:
- نموذج Raspberry Pi B + وبطاقة micro SD - 29.95 دولارًا + 9.95 دولارًا
- علبة بلاستيكية Raspberry Pi - 7.95 دولار
- مكبرات صوت USB - 12.50 دولار
- ميكروفون USB - 5.95 دولار
- لوحة بيرما بروتو نصف الحجم - 4.50 دولار
- 7 أزرار انضغاطية لحظية - 2.50 دولار
احتجت أيضًا إلى:
- بعض الأسلاك الكهربائية
- رؤوس الأنثى ذات الزاوية اليمنى
- بعض الخشب والطلاء الأسود والغراء لحالة الأزرار
- لحام الحديد ولحام
الخطوة 2: الأزرار
الأزرار المستخدمة طويلة جدًا (6 مم) بحيث يمكنها المرور بسمك العلبة.
لقد وضعت الأزرار السبعة الخاصة بي على لوحة perma-proto ، والتي تشبه اللوح ، باستثناء المكونات الملحومة عليها. هذا أقوى من اللوح ، وأرخص من طباعة ثنائي الفينيل متعدد الكلور. يربط كل زر الأرض بـ GPIO على Raspberry Pi. ليس لدي مقاومات هنا لأن Pi لديها بالفعل مقاومات سحب / لأسفل داخلية والتي سيتم تعيينها في البرنامج. في هذه الحالة ، قمت بضبطهم على الانسحاب (انظر البرنامج أدناه).
يتم وضع الأزرار كل 4 صفوف ، أو كل 0.4 بوصة.
الخطوة 3: حالة الأزرار
لقد صنعت حالة بسيطة جدًا للأزرار ، بألواح من الخشب الرقائقي ودواسة خشبية مربعة. يجب أن يكون حجم الوتد كبيرًا بما يكفي لاحتواء قاعدة الزر واللوحة ، ولكنه صغير بما يكفي للسماح للزر بالخروج من العلبة. لقد استخدمت 1/4 في × 1/4 في وتد.
بعد التأكد من ملاءمة اللوحة في العلبة ، يتم لصق المسامير على الصفيحة الأساسية. ثم يتم حفر الثقوب على الورقة العلوية (يمكن استخدام اللوح لعمل علامات بدقة كل 0.4 بوصة). جميع الأجزاء الخشبية مطلية ، وتوضع اللوحة في العلبة ، ويتم لصق الصفيحة العلوية فوقها.
الخطوة 4: Raspberry Pi
لم أكن أرغب في لحام الأسلاك مباشرة في Pi ، في حال أردت استخدام Pi لشيء آخر في المستقبل. لذلك قمت بلحام الأسلاك برؤوس أنثوية بزاوية قائمة ، وقمت بتوصيل الرؤوس على Pi.
كائنات GPI المستخدمة هي 21 و 26 و 20 و 19 و 13 و 6 و 5. كما يتم استخدام الدبوس الأرضي.
يتم توصيل الميكروفون ومكبر الصوت ببساطة في 2 من 4 منافذ USB.
يتم تشغيل Pi من خلال منفذ micro-USB
الخطوة الخامسة: البرمجة
لبرمجة Pi ، قمت بتوصيله بالإنترنت باستخدام كابل إيثرنت ، وتحكمت فيه من كمبيوتر بعيد باستخدام عارض VNC. ومع ذلك ، لا يمكنك استخدام هذا الإعداد في المرة الأولى التي تتصل فيها بـ Pi ، لأن نظام التشغيل لم يتم تثبيته بعد و SSH ليس معطلاً. لذلك ستحتاج إلى توصيل شاشة ولوحة مفاتيح وماوس ، على الأقل في المرة الأولى.
لقد كان من الصعب جدًا العثور على أوامر لتسجيل الصوت وتشغيله على بطاقة الصوت الصحيحة. هذه هي الأوامر التي عملت معي:
-
aplay -D plughw: CARD = Device_1 ، DEV = 0 0.wav
يلعب 0. wav
-
الافتراضي 0.wav -D sysdefault: البطاقة = 1 -f cd -d 20
السجلات لمدة أقصاها 20 ثانية في الملف 0.wav ، بجودة القرص المضغوط
توجد ملفات الصوت في الدليل الافتراضي (/ home / pi). من الضروري أيضًا وجود ملف صوتي للصفارة ، يتم وضعه في الدليل الافتراضي ويسمى beep.wav.
كود بيثون نفسه هو كما يلي:
كود python لمسجل تشغيل Raspberry Pi
استيراد RPi. GPIO كـ GPIO |
وقت الاستيراد |
استيراد نظام التشغيل |
#المتغيرات: |
butPressed = [True، True، True، True، True، True، True] # إذا تم الضغط على الزر i ، ثم تم الضغط على خطأ |
الدبوس = [26 ، 19 ، 13 ، 6 ، 5 ، 21 ، 20] # دبابيس GPIO لكل زر |
recordBool = False # True إذا كان السجل قيد التقدم |
GPIO.setmode (GPIO. BCM) |
بالنسبة لـ i في النطاق (0 ، 7): |
GPIO.setup (pin ، GPIO. IN، pull_up_down = GPIO. PUD_UP) # يضبط مقاومات Pi الداخلية لسحبها لأعلى |
احيانا صحيح: |
بالنسبة لـ i في النطاق (0 ، 7): |
butPressed = GPIO.input (pin ) # يتحقق من الضغط على الزر |
إذا butPressed == خطأ: # إذا تم الضغط على زر |
PreviousTime = time.time () |
while butPressed == False and RecordBool == False: |
butPressed = GPIO.input (pin ) |
إذا كان time.time () - previousTime> 1.0: # إذا تم الضغط على الزر لأكثر من ثانية ، فإن أداة recordBool هي True |
RecordBool = صحيح |
إذا كان recordBool == صحيحًا: #if recordBool هو True ، فإنه يصدر صوت صفير ثم يسجل |
os.system ("aplay -D plughw: CARD = Device_1، DEV = 0 beep.wav") |
os.system ("arecord٪ d.wav -D sysdefault: CARD = 1 -f cd -d 20 &"٪ i) #records لمدة 20 ثانية كحد أقصى في ملف i.wav ، بجودة القرص المضغوط |
أثناء الضغط == خطأ: |
butPressed = GPIO.input (pin ) |
os.system ("pkill -9 arecord") # يتم إيقاف السجل عند ترك الزر ، أو بعد 20 ثانية |
RecordBool = خطأ |
else: # إذا كان RecordBool خطأ ، فإنه يقوم بتشغيل الصوت i.wav |
os.system ("aplay -D plughw: CARD = Device_1، DEV = 0٪ d.wav"٪ i) |
time.sleep (0.1) الوقت. |
عرض مسجل rawPlayback المستضاف مع ❤ بواسطة GitHub
الخطوة 6: قم بتشغيل Python Script عند كل بدء تشغيل
لتشغيل سكربت python عند كل بدء تشغيل لـ Pi ، يتم وضع الأسطر التالية في ملف يسمى playback.desktop في المجلد /home/pi/.config/autostart/
يدير playback.py عند بدء تشغيل Raspberry Pi
[إدخال سطح المكتب] |
الترميز = UTF-8 |
اكتب = تطبيق |
الاسم = تشغيل |
تعليق = هذا تطبيق تشغيل |
Exec = python /home/pi/playback.py |
StartupNotify = خطأ |
المحطة = صحيح |
مخفي = خطأ |
عرض rawplayback.desktop مع ❤ بواسطة GitHub
الخطوة 7: إنهاء الملاحظة
من فضلك أخبرني برأيك في هذا المشروع في قسم التعليقات ، وأخبرني بتوصياتك ، وصوت لي في مسابقة Raspberry Pi إذا أعجبك.
نتطلع إلى قراءتك!