2012年7月9日 星期一

Arduino as an USB to TTL adapter

Arduino 也可以當成 USB to TTL 轉換器使用,方法很簡單,參考下圖,只要在 GND 和 Reset Pin 之間拉一條線就搞定了:

image 

這樣做會讓 MCU 停留在 reset mode,你便可以使用 RX (pin 0) 和 TX (pin 1) 直接與 USB to Serial Converter 晶片 (FT232R 或 Atmegaxxux) 溝通。

設定 HC-0x 藍芽模組

把 Arduino 變成 USB to TTL 轉換器可以做什麼?嗯...我首先想到的是可以拿來改 HC-0x 藍芽模組的設定。我在這篇介紹過如何用 USB to TTL 轉換器設定 HC-0x 藍芽模組,同樣的事 Arduino 完全可以勝任。

底下以修改 HC-0x 藍芽模組的 baud rate 為例說明:

1) 首先,參考上圖在 GND 和 Reset Pin 之間拉一條線

2) 把 Arduino 與藍芽模組連接起來

image

接線方法可以參考下表:

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

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

image_thumb133

先做個簡單的測試,看看藍芽模組通信正不正常。

打開 Serial Monitor,把換行模式改成 "No line ending",接著輸入 AT 指令(指令全部大寫),然後按下 Send 按鈕或 Enter 鍵,這時藍芽模組應該會回應 OK:

image

3) HC-0x 藍芽模組 baud rate 預設是 9600 bps,有些時候你可能會需要改變它的 baud rate,比如改成 57600 bps。要怎麼把 baud rate 修改為 57600 bps 呢?方法為:

輸入指令:

AT+BAUD7

這時藍芽模組應該會回應:

OK57600

像下圖這樣:

2012-06-25_00h21_10

以上的資訊,希望對你有幫助。

參考資料

2012年7月3日 星期二

Loop back test

Loop back test 是什麼?它是最快最簡單的測試方法,可以測試藍芽模組的接收和發送功能,用來檢查模組有沒有故障。HC-0x bluetooth module 可以做 Loop back test,也就是自己接收自己所發送的資料,方法很簡單,只要把藍芽模組的 TXD 接到自己的 RXD 就好。底下教你怎麼做:

材料
  • Arduino 板子 x 1
  • HC-0x 藍芽模組 x 1
  • 杜邦線和跳線些許
  • sscom 工具(英文版點此下載,簡體版點此下載)
連接 Arduino 與藍芽模組

下圖是 HC-0x 藍芽模組的外觀:

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

只要把 Arduino 5V  接到藍芽模組的 VCC,而 GND 接到 GND:

2012-05-06 21h54_09

要注意電源千萬不可接錯,不然可能會把藍芽模組燒壞。可參考下表:

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

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

image_thumb133

與電腦配對 (paring)

首先,打開藍芽裝置:

2012-05-06 21h57_51

按下【新增(D)…)】打開新增藍芽裝置精靈:

2012-05-06 21h58_08

勾選「我的裝置已設定並就緒可以找到」後按【下一步】,系統會將搜尋藍芽裝置,接著選 linvor 裝置,然後點【下一步】:

image

選擇「使用文件中的密碼金鑰】並輸入配對密碼 1234:

image

按下一步,系統會開始進行配對:

2012-05-06 22h07_31

配對成功:

2012-05-06 22h07_49

按下【完成】,回到藍芽裝置視窗,切到 COM 連接埠頁面,請記住名稱為 linvor 'Dev B' 的連接埠,例如下圖是 COM21:

image

Loop Back 測試

1) 拿一條跳線把藍芽模組的 TXD 和 RXD 對接起來,如下圖的綠線:

2012-05-06 22h14_21

2) 打開 SSCOM 工具,ComNum 選擇藍芽裝置的連接埠,例如 COM21:

image

這時候藍芽模組上的 LED 會停止閃爍變成恆亮。

點下方的 SEND 鈕,電腦就會發送訊息給藍芽模組,由於會 Loop back,所以正常的話,訊息便會馬上從藍芽模組傳回來顯示在視窗上方:

image

你可以試著修改要發送的訊息 (Data input),並且設定發送的間隔時間,勾選 Send every,SSCOM 就會每定期發送訊息持續的測試:

image

以上的資訊,希望對你有幫助。

參考資料

2012年7月1日 星期日

Config bluetooth baud rate w/ Arduino

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

HC-0x 藍芽模組的 baud rate 預設是 9600 bps,有些時候你可能會需要改它的 baud rate,要改 baud rate,用 USB to TTL 是最簡單的,這部份可以參考這篇,不過如果手邊沒有 USB to TTL,用 Arduino 也是可以的,底下教你怎麼做。

首先,你得知道怎麼把 Arduino 跟藍芽模組連接起來,參考下圖:

image

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

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

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

image_thumb[13]

改 Baud rate 的步驟

底下示範如何把藍芽模組 baud rate 改成 57600 bps:

1) 把底下的 sketch 上傳到 Arduino 板子上(注意!在上傳程式的時候,切記不要插著藍芽模組):

2) 打開 Serial Monitor,過 6 秒鐘之後,你應該會看到 AT+BAUD7 的訊息:

 2012-05-06 18h44_12

3) 關閉 Serial Monitor

4) 拔掉 Arduino 的電源

5) 插上藍芽模組

6) 給 Arduino 上電,請在上電後 6 秒鐘之內打開 Serial Monitor,過 6 秒後應該就會看到 AT+BAUD7OK57600 的訊息,代表你已經正確把藍芽模組 baud rate 修改成 57600 bps 了,如下圖所示:

image  

由於藍芽模組 baud rate 已經改成 57600 bps,如果想改回 9600 bps,可以照底下的步驟做。

如何把 baud rate 改回 9600?

1) 把 Sketch 的 setup() 改成如下:

void setup()
{
   Serial.begin(57600);         // Baud rate of HC-0x bluetooth module
   delay(6000);
   Serial.write("AT+BAUD4");   // Set baud rate as 9600
}

2) 把 Sketch 上傳到 Arduino 板子上(注意!在上傳程式的時候,切記不要插著藍芽模組):

3) 打開 Serial Monitor,將下方的 baud rate 設定改成 57600 bps:

image

接著等 6 秒後,應該會看到 AT+BAUD4 的訊息:

2012-05-06 18h57_41

4) 關閉 Serial Monitor

5) 拔掉 Arduino 的電源

6) 插上藍芽模組

7) 給 Arduino 上電,請在上電後 6 秒鐘之內打開 Serial Monitor,過 6 秒後應該就會看到 AT+BAUD4OK9600 的訊息,代表已經正確把藍芽模組 baud rate 改回預設值 9600 bps 了,如下圖所示:

2012-05-06 19h00_02

以上的方法,希望對你有幫助。

參考資料