經過了前面章節的洗禮、相信對各零件模組有了硬體模組的認知;與相對應積木程式的構成方式。
在本範例內容上會進行2組以上的電路模組與軟體整合規劃。讓使用者可以訓練自我組裝模組與簡易系統的設計流程。在硬體與軟體與使用者三端進行整合互動是首要目標。因為每盒硬體模組的限制,因此範例皆是以一盒可以完成的方式進行設計。
7-1 簡易門禁系統說明
首先設定一個目標後我們需要進行規劃,設定門禁系統需要的是那些功能,本範例主要製作兩個子系統;一為密碼鎖:透過密碼輸入啟動門鎖。二為防盜偵測:透過感測模組偵測有無異常反應。並將兩系統合併在Arduino 主板上與電腦溝通合作。
7-2 功能要求
1.透過scratch規劃一個管家精靈了解目前系統狀態,並在同一頁面上設計密碼鎖的鍵盤介面可輸入「0到9」的數字鍵、「確認」鍵、「更正」鍵。
2.「0到9」的數字鍵觸發時,將數值送到系統裡並顯示在管家精靈與顯示模組。
3.「確認」鍵觸發時,將輸入的密碼送至系統進行認證。
4.「更正」鍵觸發時,歸復所有軟硬體系統狀態。
5.規劃顯示模組將其視為裝配在門禁系統外側,顯示密碼鎖狀態。
6.門鎖裝置,按密碼鎖狀態進行開關,本範例以伺服馬達模擬門鎖。
7.除了顯示區域之外,規劃一全彩LED指示燈,指示目前系統狀態。
8.防盜系統規劃,磁力感測器模擬門窗偵測、蜂鳴器模擬警報、歸復按鈕停止警報系統。
7-3 使用模組:
按鈕模組、霍爾磁性模組、LCD1602液晶模組 、伺服馬達模組、無源蜂鳴器模組 、RGB LED模組。
7-4 密碼鎖
接線說明
按上一章節「LCD1602液晶模組」範例,將 I2C所需4組接線接至主板(如接線圖)獨立 I2C 排針上。取「伺服馬達模組」將兩條電源線(紅線為VCC,棕線為GND)接於主板上「D2」旁紅黑兩排針上;將信號線(橘線)接至「D2」排針上,將注意馬達角度為90度位置。取「RGB LED模組」將模組「R」(紅)、「G」(綠)、「B」(藍)三隻接腳分別接於主板「D6」、「D5」、「D4」S訊號排針位置,將模組「-」接於主板「D4」~「D6」擇一GND排針位置。
接線圖
7-5 防盜警鈴
接線說明
取「按鈕模組」將兩條電源線(紅線為VCC,棕線為GND)接於主板上「D8」旁紅黑兩排針上;將信號線(橘線)接至「D8」排針上。
取「霍爾磁性模組」將兩條電源線(紅線為VCC,棕線為GND)接於主板上「A0」旁紅黑兩排針上;將信號線(橘線)接至「A0」排針上。雖霍爾磁性模組為數位訊號方式呈現,範例接於類比輸入端亦可以從數值呈現上判讀出變化。
取「無源蜂鳴器模組」將兩條電源線(紅線為VCC,棕線為GND)接於主板上「D3」旁紅黑兩排針上;將信號線(橘線)接至「D3」排針上。
接線圖
7-6 使用者介面(UI):
說明:
本範例主題是門禁系統,其首要的是認證的輸入進行認證;也因為輸入模組的數量限制,故以 Scratch的畫面作為鍵盤輸入功能,本範例僅以數字鎖作為功能,搭配輸入數值鍵將密碼送出進行認證的「確認」鍵與還原到待機原始狀態的「更正」鍵。
在頁面的呈現上規劃了 4 X 3鍵盤「0~9數字」、「更正」、「確認」合計12個矩形角色。維持貓咪角色作為系統管家顯示系統目前狀態。規劃警鈴角色作為防盜偵測功能。
頁面上所呈現的變數在功能完成後皆可以隱藏,變數值用途如下:
「keyval」:即時儲存觸發0~9角色表示之值。
「temp」:暫存鍵盤角色按下時的累計值。
「checkval」:儲存正確的認證碼。
「passwd」:儲存所輸入的密碼。
「A0val」:讀取霍爾磁性模組數值。
角色造型編輯:
貓咪角色:因只進行狀態顯示,不進行額外編輯。
按鈕角色:需要顯示按鈕按下產生的反白效果,編輯如下圖。
警鈴角色:作為警鈴作用需要閃爍的效果,編輯如下圖。
7-7 角色造型
(按鈕)
(警鈴角色)
7-8 程式碼
(按鈕程式碼)
「0」~「9」按鈕程式碼
「確認」、「更正」按鈕程式碼
(貓咪角色程式碼)
啟動「綠旗」(初始化)程式碼
指示燈副程式
收到「按鍵值」廣播訊息程式碼
收到「確認」廣播訊息程式碼
收到「按鍵值」廣播訊息程式碼
收到「窗戶被打開」廣播訊息程式碼
(貓咪角色完整程式碼)
(警鈴角色程式碼)
7-9 範例程式