Πίνακας περιεχομένων:

Micro: bit Ανιχνευτής επιπέδου θορύβου: 3 βήματα
Micro: bit Ανιχνευτής επιπέδου θορύβου: 3 βήματα

Βίντεο: Micro: bit Ανιχνευτής επιπέδου θορύβου: 3 βήματα

Βίντεο: Micro: bit Ανιχνευτής επιπέδου θορύβου: 3 βήματα
Βίντεο: The Third Industrial Revolution: A Radical New Sharing Economy 2024, Νοέμβριος
Anonim
Micro: Ανιχνευτής επιπέδου θορύβου bit
Micro: Ανιχνευτής επιπέδου θορύβου bit
Micro: Ανιχνευτής επιπέδου θορύβου bit
Micro: Ανιχνευτής επιπέδου θορύβου bit
Micro: Ανιχνευτής επιπέδου θορύβου bit
Micro: Ανιχνευτής επιπέδου θορύβου bit

Αυτό είναι μόνο ένα σύντομο παράδειγμα για έναν ανιχνευτή στάθμης θορύβου που βασίζεται στο micro: bit και το Pimoroni enviro: bit.

Το μικρόφωνο στο περιβάλλον: το bit ανιχνεύει το επίπεδο του ήχου και από την προκύπτουσα τιμή υπολογίζεται μια θέση στη μήτρα LED 5x5 και ενεργοποιείται η αντίστοιχη λυχνία LED. Οι μέγιστες τιμές που μετρήθηκαν αποθηκεύονται και παραμένουν εμφανιζόμενες στη μήτρα LED.

Οι τιμές μπορούν επίσης να εμφανίζονται σε αριθμούς.

Οπότε είναι βασικά ένα πολύ απλό εργαλείο ανίχνευσης επιπέδου θορύβου, π.χ. για πειράματα στην αίθουσα διδασκαλίας.

Η μέθοδος που περιγράφεται για την εμφάνιση των πραγματικών και των μέγιστων τιμών που ανιχνεύονται από έναν αισθητήρα στο micro: bits 5x5 LED μήτρα θα μπορούσε επίσης να χρησιμοποιηθεί για άλλες παραμέτρους όπως θερμοκρασία, υγρασία ή πίεση.

Βήμα 1: Μέρη και λογισμικό που χρησιμοποιούνται

Σκεύη, εξαρτήματα:

  • Ένα μικρό: λίγο
  • A Pimoroni enviro: bit - έρχεται με τρεις αισθητήρες για ήχο, φως και χρώμα και πίεση/θερμοκρασία/υγρασία (20 GBP στο Pimoroni)
  • A Pimoroni power: bit - για να τροφοδοτήσετε τη συσκευή από μπαταρίες (προαιρετικά ή με οποιονδήποτε άλλο τρόπο τροφοδοσίας του microbit, 6 GBP στο Pimoroni)

Λογισμικό:

  • Microsoft MakeCode
  • Το Pimoroni enviro: bit επέκταση MakeCode

Για να φορτώσετε το σενάριο στο micro: bit, απλώς αντιγράψτε το παρεχόμενο εξάγωνο αρχείο στο micro: bit σας με προσαρτημένο ένα περιβάλλον:

Βήμα 2: Ο κώδικας

Ο κώδικας έχει γραφτεί χρησιμοποιώντας το Microsoft MakeCode σε λειτουργία μπλοκ, χρησιμοποιώντας την επέκταση Enviro: Bit. Παρακάτω θα βρείτε τον αντίστοιχο κώδικα JavaScript.

Η συνάρτηση envirobit.getSoundLevel () διαβάζει το επίπεδο ήχου από τον αισθητήρα, επιστρέφοντας μια τιμή από 0 σε 443.

Το σταθερό σήμα_μαξ καθορίζει μια μέγιστη τιμή του δυναμικού εύρους που θα εμφανίζεται στη μήτρα LED, οι παραπάνω τιμές θα θεωρούνται ως σήμα_μαξ. Αυτό σας επιτρέπει να βελτιστοποιήσετε την ευαισθησία της συσκευής για την εφαρμογή σας.

Η μέγιστη τιμή που ανιχνεύεται σε έναν κύκλο μέτρησης αποθηκεύεται στην παραλλαγή θορύβου_max και παραμένει εμφανιζόμενη στη μήτρα LED.

Πιέζοντας το κουμπί "A" επαναφέρετε το noise_max και καθαρίζετε την οθόνη, πατώντας το κουμπί "B" εμφανίζεται η μετρημένη τιμή θορύβου ως πραγματικός αριθμός.

Για να εμφανιστεί η τιμή, οι τιμές κάτω από το signal_max τοποθετούνται σε 25 "κάδους" που αντιπροσωπεύονται από ένα LED, ξεκινώντας από το 0 (επάνω αριστερά) έως το 24 (κάτω δεξιά). Στη συνέχεια υπολογίζεται η θέση x/y και ανάβει η αντίστοιχη λυχνία LED. Οι τιμές πάνω από το signal_max τοποθετούνται στον κάδο 24. Εάν η τιμή είναι κάτω από το noise_max, τα LED θα αλλάξουν ξανά.

ας θόρυβο_x = 0let σήμα_μαξ = 0 ας θόρυβο_5 = 0 ας θόρυβο_25 = 0 ας θόρυβο_μαξ = 0 βασικό.showString ("Noise") noise_max = 0 noise_25 = 0 noise_5 = 0 signal_max = 250 basic.forever (λειτουργία () {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 να αντιπροσωπεύονται από το επάνω αριστερό LED (0, 0) και 28/29*C από το κάτω δεξί LED (4, 4).

Υπάρχει περιθώριο βελτιστοποίησης: με τον τρέχοντα κωδικό να ανεβαίνει και να μειώνεται η θερμοκρασία αφήνει ένα ίχνος LED είτε ενεργοποιημένο είτε απενεργοποιημένο. Από την άλλη πλευρά, αυτό επιτρέπει την ανάγνωση της τρέχουσας τάσης θερμοκρασίας (πτώση/άνοδο), καθώς η τρέχουσα τιμή υποδεικνύεται από το LED που αναβοσβήνει.

Η αντικατάσταση του getTemperature () με getHumidity () ή getPressure () και η προσαρμογή των τιμών σήματος_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 sin_min = 0 let Temp_Max = 0 let sin_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}})

Συνιστάται: