11. 案例 08:智能太陽檢測窗簾¶
難度:

11.2. 背景¶
甚麼是智能太陽檢測窗簾?
智能太陽檢測窗簾會根據偵測到的陽光量自動收起或放下來。
運作原理
在屋外安裝一個光度傳感器,當它偵測到強光(Light > 70)時,代表會有陽光照射到房屋。 於是窗簾會放下來,以減少熱能傳導到屋內。如此一來可以減少能量損失,並節省空調的能源。

11.3. 重點知識¶
在這個案例的編程部分,會運用到一個「flag」的概念。這是用來檢查窗簾是否已經放了下來,避免繼續放下窗簾。
11.5. 組裝步驟¶
步驟一
這個案例以「大房子模型」作為基礎。

步驟二
用縲絲批將窗簾鐵杆安裝到360ᵒ舵機上,以製作窗簾。

步驟三
將窗簾紙布剪成 8cm*8cm 的正方形。

步驟四
用膠水將剪好的紙布黏在窗簾鐵杆上。

步驟五
把萬用黏土膠搓成長條。

步驟六
將捏好的萬用黏土膠黏在窗簾的底部。

步驟七
用 M2*10 毫米螺絲及螺母把製作好的窗簾 (舵機) 安裝到 B1 模型上。

步驟八
蓋上 B1 和 C1 模型。

步驟九
用 M4*10 毫米螺絲及螺母把光度傳感器安裝到 C1 模型上。

步驟十
組裝完成!

11.7. 編程(MakeCode)¶
步驟一. 初始化 OLED顯示屏並建立變數
把
OLED 初始化 寬128 高64加入到當啟動時,以啟動 OLED 顯示屏建立變數
curtainOn,並將其設為false
步驟二. 建立窗簾控制函式「openCurtain」
建立函式
openCurtain在函式裡,控制連接端口上的 360°舵機的速度和方向,例如
轉動360度舵機以順時針方向速度高接口 P2加入暫停讓它有幾秒鐘的時間轉動 (取決於您設定的速度)
用同樣方式停止 360°舵機,例如
轉動360度舵機以順時針方向速度停止接口 P2將變數
curtainOn設為true
步驟三. 建立窗簾控制函式「closeCurtain」
建立函式
closeCurtain這個函式與上一個函式相似,但方向和狀態相反
控制連接端口上的 360°舵機的速度和方向,例如
轉動360度舵機以逆時針方向速度高接口 P2加入暫停讓它有幾秒鐘的時間轉動 (取決於您設定的速度)
用同樣方式停止 360°舵機,例如
轉動360度舵機以逆時針方向速度停止接口 P2將變數
curtainOn設為false
步驟四. 取得光度數值
在
重複無限次中,用變數 light 設為取得光度傳感器數值接口 P1透過
清除顯示在每次刷新前先清除顯示用
顯示數字 light在顯示屏上顯示數值
步驟五. 檢查光度數值並作出反應
在
重複無限次加入一個巢狀的如果語句將第一個條件設為
light ≥ 70 且 curtainOn = true第一個 If 段代表陽光較強,需關掉窗簾,所以加入
呼叫closeCurtain將第二個條件設為
light < 40 且 curtainOn = false第二個 If 段代表陽光較弱,需打開窗簾,所以加入
呼叫openCurtain
完整答案
MakeCode: https://makecode.microbit.org/_d184i0bPygjJ
你可以從以下網頁中下載HEX檔案:


