藍芽是目前非常普遍的一種無線通訊技術,在許多資訊設備都能找到他的蹤影,而目前幾乎所有的智慧型裝置以及筆記型電腦都有配備這樣的無線通訊設備,這對於許多無線控制的應用是一個非常友善的環境。
本篇文章將會為各位介紹 mbed LPC1768 如何使用藍芽模組來與電腦通訊。
開始之前
本篇文章你將會使用到:
- mbed LPC1768
- 藍芽模組(本篇使用 HC-05 )
- 接線若干
- 具藍芽無線通訊功能的電腦
硬體接線
接線方式頗為簡單,只要把 HC-05 的 RX TX 與 mbed 的 TX RX 互連即可。
正文開始
mbed 部分
首先我們要先知道藍芽模組要如何操作與使用,我手上這個藍芽模組是透過 UART 來傳遞訊號的,還記得我們先前的教學嗎? 這時候就派上用場了~
1 2 3 4 5 6 7 8 9 10 11 |
#include "mbed.h" Serial bt(p9, p10); // tx, rx int main() { while(1) { bt.printf("Hello, World!\n"); wait(1); // 每秒傳送一次 } } |
電腦部分
既然有傳送,那我們就得要用一台有藍芽接收器的電腦來接收 mbed 所傳的藍芽資料,不然這傳送就沒有意義了。
而因為我們用的是藍芽的序列阜功能,這時候請開啟 CoolTerm 或 Putty 來接收,你應該會看到畫面上每兩秒跳一次的「Hello, World!」字串訊息。
對了,HC-05 與電腦配對時的顯示名稱就是 HC-05 ,而配對密碼預設則是 1234。
進階一點
知道這個藍芽模組是透過 UART 來傳輸之後,我們就可以來做一點有趣的事情,例如,用電腦控制 mbed LPC1768 板子上的 4 顆 LED 的亮滅。
mbed 部分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include "mbed.h" Serial bt(p9, p10); // tx, rx BusOut LEDs(LED1, LED2, LED3, LED4); void setLED(char c) { switch( c ) { case '1': LEDs = 0x01; break; case '2': LEDs = 0x02; break; case '3': LEDs = 0x04; break; case '4': LEDs = 0x08; break; } } int main() { while(1) { int input = bt.getc(); setLED( input ); } } |
電腦部分
一樣是開啟 CoolTerm 或 Putty 來用,你只要用鍵盤輸入 1、2、3、4 這幾個數字,就會看見 LED 分別亮起與消滅。
總結
其實藍芽的操作很簡單,他只是透過 UART 來做通訊,但跟一般 UART 不同的地方是,他與電腦之間不需要額外一條連接線就能夠將資料傳送到另一方去,這種傳輸方式就稱做為無線傳輸。
這篇文章稍嫌短了些,不過想想主軸是以基礎為目的,我就不把其他太多的控制給加進來了,留待之後再寫一篇文章跟大家分享。