תוכן עניינים:

מיקרו: גלאי רמת רעש ביט: 3 שלבים
מיקרו: גלאי רמת רעש ביט: 3 שלבים

וִידֵאוֹ: מיקרו: גלאי רמת רעש ביט: 3 שלבים

וִידֵאוֹ: מיקרו: גלאי רמת רעש ביט: 3 שלבים
וִידֵאוֹ: אתגר - אל תדברו עם סירי ב-3 בלילה 2024, נוֹבֶמבֶּר
Anonim
מיקרו: גלאי רמת רעש ביט
מיקרו: גלאי רמת רעש ביט
מיקרו: גלאי רמת רעש ביט
מיקרו: גלאי רמת רעש ביט
מיקרו: גלאי רמת רעש ביט
מיקרו: גלאי רמת רעש ביט

זוהי רק דוגמה קצרה לגלאי רמת רעש המבוסס על המיקרו: סיביות והפימורוני פיטרוני: ביט.

המיקרופון בסביבת enviro: bit מזהה את רמת הצליל, ומהערך המתקבל מיקום על מטריצת LED 5x5 מחושב והנורית המתאימה מופעלת. הערכים המרביים הנמדדים נשמרים ונשארים מוצגים במטריצת ה- LED.

ניתן להציג את הערכים גם במספרים.

אז זהו בעצם כלי פשוט מאוד לזיהוי רמת רעש, למשל. לניסויים בחדר כיתות.

השיטה המתוארת להצגת הערכים בפועל והערך המרבי שזוהה על ידי חיישן על מטריצת ה- LED: 5x5 LED מסוג micro: bits יכולה לשמש גם לפרמטרים אחרים כמו טמפרטורה, לחות או לחץ.

שלב 1: חלקים ותוכנה בשימוש

חוּמרָה:

  • מיקרו: ביט
  • A Pimoroni enviro: bit - מגיע עם שלושה חיישנים לצליל, אור וצבע ולחץ/טמפרטורה/לחות (20 GBP ב- Pimoroni)
  • עוצמת פימורוני: ביט - להפעלת המכשיר באמצעות סוללות (אופציונאלי או כל דרך אחרת להפעיל את המיקרוביט, 6 ליש"ט בפימורוני)

תוֹכנָה:

  • Microsoft MakeCode
  • סיומת Pimoroni enviro: bit MakeCode

כדי לטעון את הסקריפט למיקרו: ביט, פשוט העתק את קובץ ה- hex המצורף למיקרו: ביט עם מצורף של enviro: bit.

שלב 2: הקוד

הקוד נכתב באמצעות Microsoft MakeCode במצב בלוק, באמצעות הרחבת Enviro: Bit. להלן תוכל למצוא את קוד ה- JavaScript המתאים.

הפונקציה envirobit.getSoundLevel () קוראת את רמת הקול מהחיישן ומחזירה ערך מ -0 ל -443.

ה- signal_max הקבוע מגדיר ערך מרבי של הטווח הדינמי שיוצג במטריצת ה- LED, הערכים לעיל יתייחסו להיות signal_max. זה מאפשר לך לייעל את הרגישות של המכשיר ליישום שלך.

הערך המרבי המזוהה במעגל מדידה מאוחסן בגרסה noise_max ונותר מוצג על מטריצת ה- LED.

לחיצה על כפתור "A" מאפסת את noise_max ומנקה את המסך, לחיצה על כפתור "B" מציגה את ערך הרעש הנמדד כמספר בפועל.

כדי להציג את הערך, הערכים מתחת signal_max ממוקמים ב -25 "פחים" המיוצגים על ידי נורית אחת, החל מ -0 (שמאל למעלה) עד 24 (ימין למטה). לאחר מכן מיקום x/y מחושב והנורית המתאימה מופעלת. ערכים מעל 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 (function () {while (קלט.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: bit.

הפרמטרים signal_min ו- signal_max קובעים את הטמפרטורות המינימליות והמקסימליות (*C) המוצגות במטריצת ה- LED. כאן הגדרת signal_main = 5 ו- signal_max = 30 מביאה לכך ש -5 ו- 6*C מיוצגים על ידי הנורית השמאלית העליונה (0, 0) ו- 28/29*C על ידי הנורית הימנית התחתונה (4, 4).

יש מקום לאופטימיזציה: כשהקוד הנוכחי עולה ויורד הטמפרטורות משאירות עקבות של נוריות מופעלות או כבויות. מצד שני זה מאפשר לקרוא את נטיית הטמפרטורה הנוכחית (ירידה/עלייה), כפי שהערך הנוכחי מסומן על ידי הנורית המהבהבת.

החלפת 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} אם (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}})

מוּמלָץ: