جدول المحتويات:

بيانو Pi بالموجات فوق الصوتية مع أدوات التحكم في الإيماءات: 10 خطوات (بالصور)
بيانو Pi بالموجات فوق الصوتية مع أدوات التحكم في الإيماءات: 10 خطوات (بالصور)

فيديو: بيانو Pi بالموجات فوق الصوتية مع أدوات التحكم في الإيماءات: 10 خطوات (بالصور)

فيديو: بيانو Pi بالموجات فوق الصوتية مع أدوات التحكم في الإيماءات: 10 خطوات (بالصور)
فيديو: Learn French While You Sleep - A2 - French Conversation 2024, ديسمبر
Anonim
Image
Image
بيانو Pi بالموجات فوق الصوتية مع أدوات التحكم بالإيماءات!
بيانو Pi بالموجات فوق الصوتية مع أدوات التحكم بالإيماءات!

يستخدم هذا المشروع مستشعرات الموجات فوق الصوتية HC-SR04 غير المكلفة كمدخلات ويولد ملاحظات MIDI التي يمكن تشغيلها من خلال مركب على Raspberry Pi للحصول على صوت عالي الجودة.

يستخدم المشروع أيضًا شكلًا أساسيًا من أشكال التحكم بالإيماءات ، حيث يمكن تغيير الآلة الموسيقية من خلال وضع يديك على مستشعرين خارجيين لبضع ثوان. يمكن استخدام إيماءة أخرى لإغلاق Raspberry Pi بمجرد الانتهاء.

يُظهر الفيديو أعلاه المنتج النهائي في حاوية بسيطة مقطوعة بالليزر. يوجد مقطع فيديو أكثر تعمقًا لاحقًا في هذا الدليل الذي يشرح كيفية عمل المشروع.

لقد أنشأت هذا المشروع بالاشتراك مع The Gizmo Dojo (مساحة التصنيع المحلية الخاصة بي في Broomfield ، CO) لعمل بعض المعارض التفاعلية التي يمكننا أخذها إلى أحداث STEM / STEAM المحلية و Maker Faires.

يرجى أيضًا مراجعة أحدث الوثائق والبرامج التعليمية على https://theotherandygrove.com/octasonic/ والتي تتضمن الآن معلومات حول إصدار Python من هذا المشروع (تمت كتابة هذه التعليمات لإصدار Rust).

الخطوة 1: المكونات

لهذه التعليمات ، ستحتاج إلى المكونات التالية:

  • Raspberry Pi (2 أو 3) مع بطاقة SD
  • 8 مجسات بالموجات فوق الصوتية HC-SR04
  • مجلس اندلاع أوكتاسونيك
  • محول المستوى المنطقي ثنائي الاتجاه
  • سلك توصيل 32 × 12 بوصة أنثى-أنثى لتوصيل أجهزة الاستشعار بالموجات فوق الصوتية
  • 13 × 6 "سلك توصيل أنثى-أنثى لتوصيل Raspberry Pi و Octasonic و Logic Level Converter
  • مصدر طاقة مناسب لـ Raspberry Pi
  • مكبرات صوت الكمبيوتر أو ما شابه ذلك

أوصي باستخدام Raspberry Pi 3 إذا كان ذلك ممكنًا نظرًا لأنه يتمتع بقدرة أكبر على الحوسبة ، مما ينتج عنه صوت أكثر استجابة وإرضاءً. يمكن أن تعمل بشكل جيد مع Raspberry Pi 2 مع القليل من التغيير والتبديل لكنني لن أحاول استخدام Raspberry Pi الأصلي لهذا المشروع.

تحتوي مستشعرات الموجات فوق الصوتية HC-SR04 على 4 وصلات - 5 فولت و GND و Trigger و Echo. عادةً ما يتم توصيل Trigger و Echo بدبابيس منفصلة على متحكم دقيق أو Raspberry Pi ولكن هذا يعني أنك ستحتاج إلى استخدام 16 دبوسًا لتوصيل 8 مستشعرات ، وهذا ليس عمليًا. هذا هو المكان الذي تأتي فيه لوحة اندلاع Octasonic. تتصل هذه اللوحة بجميع المستشعرات ولديها متحكم دقيق يراقب المستشعرات ثم يتصل بـ Raspberry Pi عبر SPI.

يتطلب HC-SR04 5 فولت و Raspberry Pi 3.3 فولت فقط ، لذلك نحن بحاجة أيضًا إلى محول المستوى المنطقي الذي سيربط Raspberry Pi بلوحة الاختراق Octasonic.

الخطوة 2: قم بتوصيل أجهزة الاستشعار بالموجات فوق الصوتية بلوحة أوكتاسونيك

قم بتوصيل أجهزة الاستشعار بالموجات فوق الصوتية بلوحة أوكتاسونيك
قم بتوصيل أجهزة الاستشعار بالموجات فوق الصوتية بلوحة أوكتاسونيك
قم بتوصيل أجهزة الاستشعار بالموجات فوق الصوتية بلوحة أوكتاسونيك
قم بتوصيل أجهزة الاستشعار بالموجات فوق الصوتية بلوحة أوكتاسونيك

استخدم 4 أسلاك توصيل للإناث والأنثى لتوصيل كل مستشعر بالموجات فوق الصوتية باللوحة ، مع الحرص على توصيلها بالطريقة الصحيحة. تم تصميم اللوحة بحيث تكون المسامير بنفس ترتيب المسامير الموجودة على جهاز الاستشعار بالموجات فوق الصوتية. من اليسار إلى اليمين على السبورة ، المسامير هي GND ، Trigger ، Echo ، 5V.

الخطوة 3: قم بتوصيل محول المستوى المنطقي بلوحة Octasonic

قم بتوصيل محول المستوى المنطقي بلوحة Octasonic
قم بتوصيل محول المستوى المنطقي بلوحة Octasonic

تتواصل لوحة Raspberry Pi و Octasonic عبر SPI. يستخدم SPI 4 أسلاك:

  • ماجستير في ، تابع (MISO)
  • سيد خارج ، عبد في (MOSI)
  • الساعة التسلسلية (SCK)
  • تحديد الرقيق (SS)

بالإضافة إلى ذلك ، نحتاج إلى توصيل الطاقة (5 فولت و GND).

يحتوي محول المستوى المنطقي على جانبين - الجهد المنخفض (LV) والجهد العالي (HV). سوف يتصل Raspberry بالجانب LV لأنه 3.3 فولت. سوف يتصل Octasonic بالجانب HV لأنه 5V.

هذه الخطوة لتوصيل Octasonic بالجانب HV من محول المستوى المنطقي

شاهد الصورة المرفقة بهذه الخطوة التي توضح المسامير التي يجب توصيلها بمحول مستوى المنطق.

يجب أن تكون الاتصالات من Octasonic إلى محول Logic Level كما يلي:

  • 5V إلى HV
  • SCK إلى HV4
  • MISO إلى HV3
  • MOSI إلى HV2
  • SS إلى HV1
  • GND إلى GND

الخطوة 4: قم بتوصيل محول المستوى المنطقي بـ Raspberry Pi

قم بتوصيل محول المستوى المنطقي بـ Raspberry Pi
قم بتوصيل محول المستوى المنطقي بـ Raspberry Pi

يتواصل كل من Raspberry Pi و Octasonic Board عبر SPI. يستخدم SPI 4 أسلاك:

  • ماجستير في ، تابع (MISO)
  • سيد خارج ، عبد في (MOSI)
  • الساعة التسلسلية (SCK)
  • تحديد الرقيق (SS)

بالإضافة إلى ذلك ، نحتاج إلى توصيل الطاقة (3.3 فولت و GND). يحتوي محول المستوى المنطقي على جانبين - الجهد المنخفض (LV) والجهد العالي (HV). سوف يتصل Raspberry بالجانب LV لأنه 3.3 فولت. سوف يتصل Octasonic بالجانب HV لأنه 5V.

هذه الخطوة لتوصيل Raspberry Pi بالجانب LV من محول المستوى المنطقي

يجب أن تكون الاتصالات من Raspbery Pi إلى محول Logic Level كما يلي:

  • 3.3V إلى LV
  • GPIO11 (SPI_SCLK) إلى LV4
  • GPIO09 (SPI_MISO) إلى LV3.0
  • GPIO10 (SPI_MOSI) إلى LV2.0
  • GPIO08 (SPI_CE0_N) SS إلى LV1
  • GND إلى GND

استخدم الرسم البياني المرفق بهذه الخطوة لتحديد الدبابيس الصحيحة على Raspberry Pi!

الخطوة 5: قم بتوصيل Raspberry Pi 5V بـ Octasonic 5V

قم بتوصيل Raspberry Pi 5V بـ Octasonic 5V
قم بتوصيل Raspberry Pi 5V بـ Octasonic 5V
قم بتوصيل Raspberry Pi 5V بـ Octasonic 5V
قم بتوصيل Raspberry Pi 5V بـ Octasonic 5V

هناك سلك أخير يجب إضافته. نحتاج فعليًا إلى تشغيل لوحة Octasonic بجهد 5 فولت ، لذلك نقوم بذلك عن طريق توصيل أحد دبابيس Raspberry Pi 5V بالدبوس 5 فولت على رأس Octasonic AVR. هذا هو الدبوس الأيسر السفلي في كتلة رأس AVR (هذه هي الكتلة 2 × 3 في أعلى يمين اللوحة). شاهد الصورة المرفقة التي توضح مكان كتلة AVR.

انظر إلى الرسم البياني المرفق الآخر للعثور على دبوس 5V على Raspberry Pi.

الخطوة السادسة: تثبيت البرنامج

قم بتثبيت Raspian

ابدأ بتثبيت نظيف لـ Raspbian Jessie ، ثم قم بتحديثه إلى أحدث إصدار:

sudo apt-get update

sudo apt-get ترقية

تمكين SPI

يجب عليك تمكين SPI على Raspberry Pi حتى يعمل هذا المشروع! استخدم الأداة المساعدة Raspberry Pi Configuration للقيام بذلك.

من المهم أيضًا إعادة تشغيل Pi بعد تمكين SPI لتصبح سارية المفعول

قم بتثبيت FluidSynth

Fluidsynth هو برنامج مجاني مدهش موالفة MIDI. يمكنك تثبيته من سطر الأوامر باستخدام هذا الأمر:

sudo apt-get install fluidsynth

قم بتثبيت لغة برمجة Rust

تم تنفيذ Ultrasonic Pi Piano بلغة Rust Programming Language من Mozilla (يشبه C ++ ولكن بدون البتات السيئة). هذا ما يستخدمه كل الأطفال الرائعين هذه الأيام.

اتبع التعليمات الموجودة على https://rustup.rs/ لتثبيت Rust. لتوفير الوقت ، فإن التعليمات هي تشغيل هذا الأمر. يمكنك قبول الإجابات الافتراضية لأي أسئلة أثناء التثبيت.

ملاحظة: منذ نشر هذه التعليمات ، هناك بعض المشكلات المتعلقة بتثبيت Rust على Raspberry Pi. توقيت سيئ: - / لكني قمت بتعديل الأمر أدناه لحل المشكلة. نأمل أن يصلحوا هذا قريبا. أعمل على إنشاء صورة يمكن للأشخاص تنزيلها ونسخها على بطاقة SD. إذا كنت ترغب في ذلك ، الرجاء الاتصال بي.

تصدير RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | ش

قم بتنزيل شفرة مصدر بيانو Ultrasonic Pi

الكود المصدري لشفرة مصدر Ultrasonic Pi Piano مستضافة على جيثب. هناك خياران للحصول على الكود. إذا كنت معتادًا على git و github ، فيمكنك استنساخ الريبو:

git clone [email protected]: TheGizmoDojo / UltrasonicPiPiano.git

بدلاً من ذلك ، يمكنك تنزيل ملف مضغوط بأحدث رمز.

تجميع التعليمات البرمجية المصدر

بالموجات فوق الصوتية cd

بناء البضائع - الإفراج

اختبر الكود

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

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

تشغيل البضائع - الإفراج

إذا كنت فضوليًا ، فإن علامة "--release" تخبر Rust أن يقوم بتجميع الشفرة بأكبر قدر ممكن من الكفاءة ، على عكس الإعداد الافتراضي "--debug".

الخطوة 7: اصنع بعض الموسيقى

تأكد من أنك لا تزال في الدليل حيث قمت بتنزيل كود المصدر وقم بتشغيل الأمر التالي.

يتأكد هذا البرنامج النصي "run.sh" من أن الكود قد تم تجميعه ثم يقوم بتشغيل الكود ، مما يؤدي إلى توصيل الإخراج إلى Fluidsynth.

./run.sh

تأكد من وجود مكبرات صوت مكبرة متصلة بمقبس الصوت مقاس 3.5 مم الموجود في Raspberry Pi ويجب أن تسمع الموسيقى أثناء تحريك يديك فوق المستشعرات.

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

sudo amixer cset numid = 3 1

تغيير مستوى الصوت

يتم تحديد وحدة التخزين (أو "الكسب") باستخدام المعلمة "-g" لتركيب السوائل. يمكنك تعديل البرنامج النصي run.sh وتغيير هذه القيمة. يرجى ملاحظة أن التغييرات الصغيرة في هذه المعلمة تؤدي إلى تغيير كبير في الحجم ، لذا حاول زيادتها بكميات صغيرة (مثل 0.1 أو 0.2).

الخطوة 8: التحكم بالإيماءات

شاهد الفيديو المرفق بهذه الخطوة للحصول على عرض توضيحي كامل للمشروع ، بما في ذلك كيفية عمل عناصر التحكم بالإيماءات.

المفهوم بسيط جدآ. يتتبع البرنامج المستشعرات المغطاة (ضمن 10 سم) وأيها غير مغطاة. هذا يترجم إلى 8 أرقام ثنائية (1 أو 0). هذا مناسب جدًا ، نظرًا لأن التسلسل المكون من 8 أرقام ثنائية يصنع "بايت" يمكن أن يمثل أرقامًا بين 0 و 255. إذا كنت لا تعرف بالفعل عن الأرقام الثنائية ، فأنا أوصي بشدة بالبحث عن برنامج تعليمي. الأرقام الثنائية هي مهارة أساسية لمعرفة ما إذا كنت تريد معرفة المزيد عن البرمجة.

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

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

الخطوة 9: عمل الضميمة

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

الخطوة 10: استكشاف الأخطاء وإصلاحها والخطوات التالية

استكشاف الأخطاء وإصلاحها

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

هناك مشكلة شائعة أخرى وهي الفشل في تمكين SPI وإعادة تشغيل pi.

يرجى زيارة https://theotherandygrove.com/octasonic/ للحصول على التوثيق الكامل بما في ذلك نصائح استكشاف الأخطاء وإصلاحها ، مع مقالات خاصة بـ Rust و Python ، وكذلك معلومات حول كيفية الحصول على الدعم.

الخطوات التالية

بمجرد الانتهاء من المشروع ، أوصي بتجربة الكود وتجربة الآلات الموسيقية المختلفة. تتراوح أكواد أداة MIDI بين 1 و 127 وهي موثقة هنا.

هل تريد آلة موسيقية واحدة مع كل مستشعر يقوم بتشغيل أوكتاف مختلف؟ ربما ترغب في أن يكون كل مستشعر أداة منفصلة بدلاً من ذلك؟ الاحتمالات لا حدود لها تقريبا!

آمل أن تكون قد استمتعت بهذه التعليمات. يرجى الإعجاب إذا فعلت ذلك ، وتأكد من الاشتراك معي هنا وفي قناتي على YouTube لمشاهدة المشاريع المستقبلية.

موصى به: