فهرست مطالب:

میکرو: آشکارساز سطح نویز بیت: 3 مرحله
میکرو: آشکارساز سطح نویز بیت: 3 مرحله

تصویری: میکرو: آشکارساز سطح نویز بیت: 3 مرحله

تصویری: میکرو: آشکارساز سطح نویز بیت: 3 مرحله
تصویری: نه کاری که نمیدونستی گوشیت انجام میده | 9 کاربرد مخفی گوشی 2024, نوامبر
Anonim
میکرو: آشکارساز سطح نویز کمی
میکرو: آشکارساز سطح نویز کمی
میکرو: آشکارساز سطح نویز کمی
میکرو: آشکارساز سطح نویز کمی
میکرو: آشکارساز سطح نویز کمی
میکرو: آشکارساز سطح نویز کمی

این فقط یک مثال کوتاه برای آشکارساز سطح صدا بر اساس micro: bit و Pimoroni enviro: bit است.

میکروفون روی محیط: بیت سطح صدا را تشخیص می دهد و از مقدار حاصل ، موقعیتی در ماتریس LED 5x5 محاسبه می شود و LED مربوطه فعال می شود. حداکثر مقادیر اندازه گیری شده ذخیره می شوند و روی ماتریس LED نمایش داده می شوند.

مقادیر نیز می توانند به صورت اعداد نمایش داده شوند.

بنابراین اساساً یک ابزار تشخیص سطح سر و صدا بسیار ساده است ، به عنوان مثال. برای آزمایش اتاق کلاس

روش توصیف شده برای نمایش مقادیر واقعی و حداکثر تشخیص داده شده توسط سنسور روی میکرو: بیت های 5x5 ماتریس LED همچنین می تواند برای سایر پارامترها مانند دما ، رطوبت یا فشار استفاده شود.

مرحله 1: قطعات و نرم افزار مورد استفاده

سخت افزار:

  • میکرو: کمی
  • A Pimoroni enviro: bit - دارای سه سنسور صدا ، نور و رنگ و فشار/دما/رطوبت است (20 GBP در Pimoroni)
  • A Pimoroni power: bit - برای تغذیه دستگاه از باتری ها (اختیاری ، یا هر روش دیگری برای تغذیه microbit ، 6 GBP در Pimoroni)

نرم افزار:

  • Microsoft MakeCode
  • Pimoroni enviro: پسوند MakeCode بیتی

برای بارگذاری اسکریپت بر روی micro: bit ، فقط فایل hex ارائه شده را در micro: bit خود با محیط متصل کنید.

مرحله 2: کد

کد با استفاده از Microsoft MakeCode در حالت بلوک و با استفاده از پسوند Enviro: Bit نوشته شده است. در زیر کد جاوا اسکریپت مربوطه را پیدا می کنید.

تابع envirobit.getSoundLevel () سطح صدا را از سنسور می خواند و مقدار آن را از 0 به 443 برمی گرداند.

signal_max ثابت حداکثر مقدار محدوده دینامیکی را نشان می دهد که روی ماتریس LED نمایش داده می شود ، مقادیر بالا به عنوان یک signal_max تلقی می شوند. این به شما امکان می دهد حساسیت دستگاه را برای برنامه خود بهینه کنید.

حداکثر مقدار تشخیص داده شده در یک دایره اندازه گیری در نوع noise_max ذخیره می شود و روی ماتریس LED نمایش داده می شود.

با فشردن دکمه "A" ، مقدار noise_max بازنشانی می شود و صفحه پاک می شود ، با فشار دادن دکمه "B" مقدار نویز اندازه گیری شده به عنوان عدد واقعی نمایش داده می شود.

برای نمایش مقدار ، مقادیر زیر signal_max در 25 "سطل" که توسط یک LED نشان داده می شوند ، از 0 (بالا سمت چپ) تا 24 (سمت راست پایین) قرار می گیرند. سپس موقعیت x/y محاسبه می شود و LED مربوطه روشن می شود. مقادیر بالای signal_max در سطل 24 قرار می گیرند. اگر مقدار زیر noise_max باشد ، LED ها دوباره روشن می شوند.

let noise_x = 0let signal_max = 0 let noise_5 = 0 let noise_25 = 0 let noise_max = 0 basic.showString ("Noise") noise_max = 0 noise_25 = 0 noise_5 = 0 signal_max = 250 basic.forever (تابع () {در حالی که (ورودی.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_25 / 5) noise_x = noise_25 - noise_5 * 5 led.plot (noise_x ، noise_5) basic.pause (200) if (noise_25 noise_max) {noise_max = noise_25}})

مرحله 3: یک کد برای سنسور دما (رطوبت ، فشار) با حداقل/حداکثر شاخص ها

یک کد برای سنسور دما (رطوبت ، فشار) با شاخص های حداقل/حداکثر
یک کد برای سنسور دما (رطوبت ، فشار) با شاخص های حداقل/حداکثر

در اینجا شما یک کد برای enviro پیدا می کنید: تابع دمای بیت.

پارامترهای signal_min و signal_max حداقل و حداکثر دمای (*C) نمایش داده شده روی ماتریس LED را تنظیم می کنند. در اینجا تنظیم signal_main = 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 فراهم می کند.

let 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) اگر (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}})

توصیه شده: