智能警報系統

內容簡介:

在 fischertechnik electronic set 中我們學習過使用micro:bit 配合 Alarm system 模型做出一個智能警報系統 , 你有想過如何改良它嗎?

這次我們將使用 Mu Vision Sensor 取代原有的光欄裝置以檢測有沒有可疑人物經過。

使用Mu Vision Sensor 的好處是 :

1. 可以確定是人經過

2. Mu Vision Sensor 能感測到人與Sensor的距離 , 如非太接近可不發出警號

我們將利用 Mu Vision Sensor 當中的 「Body Detect」功能來偵測可疑人物 ,

1.當有人太接近門時LED訊號燈便以0.1秒閃爍1次,

2.當門內的按鈕沒有被按到的時候(門已被開啟), LED訊號燈便以0.1秒閃爍1次,蜂鳴器亦會響起。

3.當reset 的按鈕被按到的時候, 整個程式將重置再啟動。

所需物料:

  • micro:bit x 1
  • I/O board x 1
  • LED x 1
  • Buzzer x 1
  • Switch x 2
  • 12" M/M Jumper Wires x 4
  • Mu Vision Connecter x 1
  • Mu Vision Sensor x 1
  • FT 電線 x 4
  • 警報系統模型

電線接駁方法:

Mu Vision Sensor 的 「V」 --> I/O board 的 3.3V OUT 「+」

Mu Vision Sensor 的 「G」 --> I/O board 的 3.3V OUT 「-」

Mu Vision Sensor 的 「SDA」 --> I/O board 的 「SDA」

Mu Vision Sensor 的 「SCL」 --> I/O board 的  「SCL」

LED --> I/O board 的 P16

Buzzer -->  I/O board 的 P14

Switch 1 (門) -->  I/O board 的 P0

Switch 2 (Reset)-->  I/O board 的 P6

編程教學:

1. 在「Advanced」中選取「Extensions」以加入「Mu Vision」的package。

2.輸入「muvision」並選取「muvision」的extension package。

編程概覽:

安裝 Mu Vision的I2C port以使它能在I/O board上運行 ;

然後再啟動 algorithm "Body Detect" 來偵測有沒有感應到人體。

Microsoft MakeCode for micro:bit - Google Chrome

initialize MU00 port I2C 可在「Muvision」的「Setting」找到 ,

設為「I2C」 的原因是我們將電線接駁到I/O board 的 I2C port 上。

MU00 enable algorithm Traffic 亦可在「Muvision」的「Setting」找到 ,

把它拖拉到「on start」後再將default 的「Color Block」改為「Body Detect」。

** 這次我們要使用的是 Body Detect 來偵測有沒可疑人物靠近。

led enable false 可在「led」中的「more」找到 ,

使用這個code的原因是把micro:bit display 的 PIN關掉 , 避免在使用Output Pin時發生錯誤。

Microsoft MakeCode for micro:bit - Google Chrome

這次我們使用了一個新技巧 「Function」 ,

Function 的作用是把一連串的代碼化簡成一個Variable ,

可以其他地方重覆使用並縮短整個編程的長度 , 讓編程變得更有條理。

各個 Function 都只是基本的ditital write pin 以使 Output 開啟或關閉 ,

相信大家對此也不會感到陌生。

Microsoft MakeCode for micro:bit - Google Chrome

horizontal value < 40  代表保險室有可疑人物靠近 , call Blinking 以發出警號。

這次選用了「while loop」 用法跟「forever」一樣

get Mu00 algorithm Body Detect 可在 「Muvision」的「Functions」找出。

** 需把 「Color Block」改成「Body Detect」 。

Microsoft MakeCode for micro:bit - Google Chrome

if not digital read pin p0 = 1 , 亦是當門的Switch(安全制)沒被壓上 i.e. 門被打開 ,

then while call On buzzer , Blinking , Off Buzzer 來發出警號。

利用while loop 而不是 repeat x times 的原因是我們希望這些警號會不斷發出 ,

直至有人手動把它關上 i.e. 另一個switch 被按下的時候

Microsoft MakeCode for micro:bit - Google Chrome

當保險室內的switch(P6)被按上時 , read pin p6 = 1 call reset 使整個編程重置並把警報關掉。

「reset」可在「control」找到。