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

كاشف مستوى الضوضاء مايكرو: بت: 3 خطوات
كاشف مستوى الضوضاء مايكرو: بت: 3 خطوات

فيديو: كاشف مستوى الضوضاء مايكرو: بت: 3 خطوات

فيديو: كاشف مستوى الضوضاء مايكرو: بت: 3 خطوات
فيديو: كيف يبـدو الجسم البشري تـحت المجهر 😳🔬👅🦷 2024, شهر نوفمبر
Anonim
كاشف مستوى الضوضاء مايكرو: بت
كاشف مستوى الضوضاء مايكرو: بت
كاشف مستوى الضوضاء مايكرو: بت
كاشف مستوى الضوضاء مايكرو: بت
كاشف مستوى الضوضاء مايكرو: بت
كاشف مستوى الضوضاء مايكرو: بت

هذا مجرد مثال قصير لكاشف مستوى الضوضاء على أساس micro: bit و Pimoroni enviro: bit.

يكتشف الميكروفون الموجود على البيئة: بت مستوى الصوت ، ومن القيمة الناتجة يتم حساب الموضع على مصفوفة LED 5 × 5 ويتم تنشيط مؤشر LED المقابل. يتم تخزين القيم القصوى المقاسة وتظل معروضة على مصفوفة LED.

يمكن أيضًا عرض القيم بالأرقام.

لذلك فهي في الأساس أداة بسيطة للغاية لاكتشاف مستوى الضوضاء ، على سبيل المثال لتجارب غرفة الصف.

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

الخطوة 1: الأجزاء والبرامج المستخدمة

المعدات:

  • مايكرو: بت
  • بيئة Pimoroni: بت - تأتي مع ثلاثة مستشعرات للصوت والضوء واللون والضغط / درجة الحرارة / الرطوبة (20 جنيهًا إسترلينيًا في Pimoroni)
  • طاقة Pimoroni: بت - لتشغيل الجهاز من البطاريات (اختياري ، أو بأي طريقة أخرى لتشغيل الميكروبيت ، 6 جنيهات إسترلينية في Pimoroni)

برمجة:

  • مايكروسوفت MakeCode
  • بيئة Pimoroni: امتداد بت MakeCode

لتحميل البرنامج النصي إلى micro: bit الخاص بك ، ما عليك سوى نسخ ملف hex المقدم إلى micro: bit الخاص بك مع إرفاق enviro: bit.

الخطوة الثانية: الكود

تمت كتابة الكود باستخدام Microsoft MakeCode في وضع الحظر ، باستخدام Enviro: امتداد Bit. أدناه ستجد كود JavaScript المقابل.

تقرأ الوظيفة envirobit.getSoundLevel () مستوى الصوت من المستشعر ، وترجع قيمة من 0 إلى 443.

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

يتم تخزين القيمة القصوى المكتشفة في دائرة القياس في متغير Noise_max وتبقى معروضة على مصفوفة LED.

يؤدي الضغط على الزر "أ" إلى إعادة ضبط الضوضاء_الحد الأقصى ومسح الشاشة ، والضغط على الزر "ب" يعرض قيمة الضوضاء المُقاسة كرقم فعلي.

لعرض القيمة ، يتم وضع القيم الموجودة أسفل signal_max في 25 "حاوية" ممثلة بمؤشر LED واحد ، بدءًا من 0 (أعلى اليسار) إلى 24 (أسفل اليمين). ثم يتم حساب موضع x / y ويتم تشغيل مؤشر LED المقابل. يتم وضع القيم أعلاه signal_max في سلة المهملات 24. إذا كانت القيمة أقل من الضوضاء ، فسيتم تبديل المصابيح مرة أخرى.

دعونا نسمع Noise_x = 0.buttonIsPressed (Button. B)) {basic.showNumber (envirobit.getSoundLevel ()) basic.showString ("-")} if (input.buttonIsPressed (Button. A)) {Noise_max = 0 basic.clearScreen ()} Noise_25 = Math.floor (envirobit.getSoundLevel () / signal_max * 25) if (Noise_25> 24) {Noise_25 = 24} Noise_5 = Math.floor (Noise_x = Noise_25 - Noise_5 * 5 led.plot (Noise_x، الضجيج_5) basic.pause (200) إذا كان (الضجيج_25 الضوضاء_ماكس) {الضجيج_ماكس = الضجيج_25}})

الخطوة 3: رمز لمستشعر درجة الحرارة (الرطوبة والضغط) مع الحد الأدنى / الحد الأقصى من البادئات

رمز لمستشعر درجة الحرارة (الرطوبة والضغط) مع حد أدنى / أقصى حد من البادئات
رمز لمستشعر درجة الحرارة (الرطوبة والضغط) مع حد أدنى / أقصى حد من البادئات

تجد هنا رمز البيئة: وظيفة درجة حرارة البت.

تحدد المعلمات signal_min و signal_max درجات الحرارة الدنيا والقصوى (* C) المعروضة على مصفوفة LED. هنا يتم تعيين الإشارة_الرئيسية = 5 و signal_max = 30 إلى تمثيل 5 و 6 * C بواسطة مؤشر LED الأيسر العلوي (0 ، 0) و 28/29 * C بواسطة مؤشر LED الأيمن السفلي (4 ، 4).

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

إن استبدال getTemperature () عن طريق getHumidity () أو getPressure () وضبط قيم signal_min و signal_max وفقًا لذلك (على سبيل المثال 0/100٪ على التوالي 950/1150 hPA) سيسمح بعرض هذه المعلمات على مصفوفة LED.

دع Temp_x = 0let Temp_5 = 0 let signal_delta = 0 let Temp_25 = 0 let Temp_Min = 0 let signal_min = 0 let Temp_Max = 0 let signal_max = 0 basic.showString ("Temp") signal_max = 30 signal_min = 5 signal_delta = signal_max - signal_min Temp_Max = 0 Temp_Min = 24 basic.forever (function () {if (input.buttonIsPressed (Button. A)) {Temp_Max = 0 Temp_Min = 24 basic.clearScreen ()} while (input.buttonIsPressed (Button. B)) { basic.showNumber (Math.round (envirobit.getTemperature ())) basic.showString ("C")} Temp_25 = Math.floor ((envirobit.getTemperature () - signal_min) / signal_delta * 25) if (Temp_25> 24) {Temp_25 = 24} if (Temp_25 <0) {Temp_25 = 0} Temp_5 = Math.floor (Temp_25 / 5) Temp_x = Temp_25 - Temp_5 * 5 led.plot (Temp_x، Temp_5) basic.pause (100) if (Temp_25) Temp_Min) {led.unplot (Temp_x، Temp_5)} if (Temp_25> Temp_Max) {Temp_Max = Temp_25} if (Temp_25 <Temp_Min) {Temp_Min = Temp_25}})

موصى به: