2012年9月5日 星期三

Blueterm and Arduino

Blueterm 是一個 terminal App,可以用來顯示通過 bluetooth serial port 連線傳送的資料。這篇教學將教你如何使用 Blueterm 讓 Arduino 與 Android 建立藍芽通訊。

所需材料
  • Android 裝置 x 1
  • Arduino x 1
  • bluetooth module x 1

Step 1: 安裝 Blueterm

到 Google Play 下載並安裝 Blueterm 到 Android 裝置上。

下載

Step 2: 安裝 Arduino IDE 並上傳測試程式

如果你電腦上還沒有 Arduino IDE,請先到 http://arduino.cc/en/Main/Software 下載軟體,下載後解壓縮即可。

接著將底下的 Arduino Sketch 上傳到 Arduino 板子上:

這支程式所用的 baud rate 預設是 57600 bps,如果你的藍芽模組不是 57600 bps,記得先做適當的調整:

image

Step 3: 連接藍芽模組

我用的是廣州匯承信息科技的 HC-0x 系列藍芽模組,下圖是 HC-0x 藍芽模組的外觀:

image_thumb3522 image_thumb6422
▲ HC-0x 藍芽模組 (圖左:正面圖,圖右:背面圖)

這個藍芽模組連接方法很簡單,只要照下表把 Arduino 和藍芽模組連接起來就好:

Arduino 藍芽模組 備註
5V VCC 注意電源不可接錯
GND GND 注意電源不可接錯
RXD TXD  
TXD RXD  

image_thumb132

連接的時候有兩點要注意:第一是電源千萬不可接錯,不然藍芽模組可能會壞掉,第二是 Arduino 的 RXD 要接藍芽模組的 TXD,而 Arduino 的 TXD 要接藍芽模組的 RXD。

通電之後,藍芽模組上的 LED 會一直閃爍:

image_thumb13322

Step 4: 測試連線

打開 Android 上的 Blueterm App,然後跟著後面的步驟做:

image

按 Menu 鍵打開選單(如下圖左),為了方便,你可能會想要打開 Local echo,請按 Prefeneces,然後啟用 Local echo(如下圖右),你也可以把 Font size 調大一些,這樣眼睛會比較舒服:

image image

回到選單,選擇 Connect device,如下圖左所示,點擊 Scan for devices 掃瞄藍芽裝置,然後選擇 Arduino 的藍芽裝置(如下圖右):

 image image

如下圖所示,如果是第一次跟藍芽裝置連線,Android 會出現「藍牙配對要求」的畫面,此時必須輸入配對密碼(一般為 0000 或 1234)才能與此藍芽裝置連線:

 image

建立連線後 (此時藍芽裝置上的 LED 會停止閃爍),接著你就可以在 terminal 上輸入資料測試通訊:

image

如果一切順利,當你在 terminal 輸入 1 時,Arduino 板子上的 LED 就會打開,而且 Android 會收到 "Arduino Led On" 的訊息,當你輸入 0 時,Arduino 板子上的 LED 就會關掉,而且 Android 會收到 "Arduino Led Off" 的訊息。

image
▲ Arduino 板子上的 LED

參考資料

6 意見:

chen 提到...

我要如何設定說!!!
手機輸入abc 讓led點亮

cooper maa 提到...

hi chen,
這篇的方法是輸入 1 打開 LED,輸入 0 就關掉 LED,請問你有否照著試過,可以成功嗎?

李育慈 提到...

今天照著上面的方法實作了一下,我發現我的arduino uno的TX會閃爍,輸入1或是0手機沒有辦法接收到arduino led on 或是arduino led off的訊息..請問我的問題是出在哪裡呢~"~

cooper maa 提到...

Arduino UNO 的 TX 會閃爍,代表 Arduino 有在對外傳送資料,有可能是在傳送 " Arduino Led On" 或 " Arduino Led Off" 的訊息。手機端沒有看到資料,很可能是 "Arduino Serial Port" 跟 "藍芽模組" 它們兩個的 baud rate 沒有匹配好的關係。建議你確認一下藍芽的 baud rate 是 57600。如果你用的也是 HC-0x 的藍芽模組,可以參考這篇來設定 baud rate:

http://coopermaa2nd.blogspot.tw/2012/07/config-bluetooth-baud-rate-w-arduino.html

http://coopermaa2nd.blogspot.tw/2012/07/arduino-as-usb-to-ttl-adapter.html

李育慈 提到...

不好意思,我照您的方式更改了藍芽的鮑率,一樣是是在程式上面輸入1、0 TX會閃爍(表示又送出資料),但是手機端依然沒有接收

我另外執行了之前最入門的實驗
http://coopermaa2nd.blogspot.tw/2012/06/amarino-android-arduino.html

執行程式後發現我的Arduino onboard LED 也沒有隔三秒閃爍一次....請問這樣的問題是出在手機上面嗎?!還是Arduino 需要另外的設定而我忽略掉了呢...

cooper maa 提到...

你有其它 Android 裝置嗎? 建議換一台 Android 裝置交叉測試一下