📟 Micro:bit Project: earthquake
ដើម្បីបង្កើតឧបករណ៍ចាប់សញ្ញារញ្ជួយដី (seismograph) ដោយប្រើ BBC micro:bit, THDX AE (ទំនងជាសំដៅទៅលើកុងតាក់/ឧបករណ៍ចាប់សញ្ញាផ្អៀង ឬរំញ័រ) និង breadboard អ្នកនឹងប្រើប្រាស់ accelerometer ដែលភ្ជាប់មកជាមួយ micro:bit រួមជាមួយនឹងឧបករណ៍ចាប់សញ្ញាខាងក្រៅរបស់អ្នក។
ដោយសារតែឧបករណ៍ចាប់សញ្ញាស៊េរី "THDX" ជាធម្មតាជាឧបករណ៍បង្កឌីជីថល (សៀគ្វីបើក/បិទ) យើងនឹងសរសេរ JavaScript (MakeCode) ដែលស្តាប់សញ្ញា "ខ្ពស់" នៅលើម្ជុល ឬការញ័រភ្លាមៗពី micro:bit ខ្លួនឯង។
ការរៀបចំខ្សែភ្លើង
VCC/PCC៖ ភ្ជាប់ម្ជុលថាមពលរបស់ឧបករណ៍ចាប់សញ្ញាទៅនឹងម្ជុល micro:bit 3V ។
GND៖ ភ្ជាប់ម្ជុលដីរបស់ឧបករណ៍ចាប់សញ្ញាទៅនឹង ម្ជុល GND មីក្រូ:ប៊ីត ។
សញ្ញា៖ ភ្ជាប់ម្ជុលទិន្នផលរបស់ឧបករណ៍ចាប់សញ្ញាទៅ ម្ជុល 0 នៅលើមីក្រូ:ប៊ីត។
VCC/PCC៖ ភ្ជាប់ម្ជុលថាមពលរបស់ឧបករណ៍ចាប់សញ្ញាទៅនឹងម្ជុល micro:bit 3V ។
GND៖ ភ្ជាប់ម្ជុលដីរបស់ឧបករណ៍ចាប់សញ្ញាទៅនឹង ម្ជុល GND មីក្រូ:ប៊ីត ។
សញ្ញា៖ ភ្ជាប់ម្ជុលទិន្នផលរបស់ឧបករណ៍ចាប់សញ្ញាទៅ ម្ជុល 0 នៅលើមីក្រូ:ប៊ីត។
💻 JavaScript Code
// This block runs when the micro:bit's internal accelerometer detects a shake
input.onGesture(Gesture.Shake, function () {
triggerAlarm("Shake Detected!")
})
// This block runs when the external sensor (Pin 0) is triggered
pins.onPulsed(DigitalPin.P0, PulseValue.High, function () {
triggerAlarm("Sensor Triggered!")
})
function triggerAlarm (message: string) {
// Show an 'X' to indicate danger
basic.showIcon(IconNames.No)
pins.digitalWritePin(DigitalPin.P1, 1)
// Log the event to the console (useful for graphing)
serial.writeLine(message)
basic.pause(2000)
pins.digitalWritePin(DigitalPin.P1, 0)
basic.showIcon(IconNames.Happy)
}
let reading = 0
basic.showIcon(IconNames.Happy)
// Optional: Constant monitoring of vibration levels
basic.forever(function () {
reading = input.acceleration(Dimension.Strength)
// 1023 is standard gravity; anything much higher is an impact
if (reading > 1500) {
triggerAlarm("Heavy Vibration")
}
})


Post a Comment