範例 3:使用 Arduino 製作超音波裝置
我們將以 Arduino 製作一個超音波裝置,Arduino 以超音波模組測距後,會將距離值傳送給 FlagO! 主控端。
Arduino 端材料
Arduino UNO 板 (安裝好 ZigBee 無線模組與 ArduComm 擴充板)
HC-SR04 超音波感測器
Arduino 端線路
Arduino 端程式
請開啟 Arduino IDE 如下撰寫程式:
#include <SoftwareSerial.h>
#include <FlagZigBee.h>
#include <Flago.h>
const byte echoPin = 6;
const byte trigPin = 7;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Flago.begin(); //初始化
}
void loop() {
Flago.update(); //更新狀態與 FlagO! 主控端同步
int cm = ping(); //讀取距離
Flago.sendString(String(cm)); //將距離值傳送給 FlagO! 主控端
delay(500);
}
// 超音波偵測距離的函式
int ping() {
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long us = pulseIn(echoPin, HIGH);
return us / 58.2; //將測得的時間換算成距離 (公分) 然後傳回
}
程式撰寫完畢後,請將程式上傳至 Arduino,確認出現上傳成功訊息,如此便完成了 Arduino 端的超音波裝置。
FlagO! 端裝置
- FlagO! 主控模組
- 語音合成模組
FlagO! 端積木設計
請使用瀏覽器連線 FlagO! 的積木設計環境,執行選單『專案功能/開啟舊專案』命令,然後選擇開啟產品光碟內的 Ultrasound.xml 專案,即可載入以下積木:
請修改積木中超音波和語音合成的裝置編號,超音波是用 Arduino 製作的,所以請參見 Arduino 上 ZigBee 無線模組背後的編號:
在語音合成模組的底部一樣有專屬於該裝置的識別碼以供程式辨別:
修改好超音波和語音合成的裝置編號之後,請按左上角的執行程式鈕,讓 FlagO! 主控端開始執行程式。
FlagO! 主控端執行程式後,請用手接近 Arduino 端超音波模組的前方,即可聽到語音合成模組喊出『歡迎光臨』。