【雙A計劃】Part8:Android 手機對 Arduino 同時進行資料收發
雙A計畫第八篇來了!這次我們將告訴您如何在 Android 手機端與Arduino端藉由藍牙來互傳資料,本範例可同時控制 Arduino D13 腳位的高低電位 (有個板載LED,也可以自己接一顆 LED),並在手機畫面上看到 D13 腳位的狀態(High / Low)代表資料收發都完成了。 另外,想了解雙A計畫所有內容的朋友,請參考下面的連結
雙A計畫文章總覽:
| 作者/攝影 | 袁又緣 |
| 難度 |
★★★☆☆ |
| 材料表 |
|
| 下載 |
程式下載請點我 (aia檔是App Inventor的專案檔,apk檔是手機端的安裝檔,直接丟到手機安裝就可以使用了, ino檔則是給Arduino執行的) |
!!!注意!!! 如果Arduino端太頻繁去傳送LED燈的亮暗狀態給手機的話,可能會造成藍牙通訊塞車。
以本範例來說,Arduino端是每100毫秒會傳送一次訊息,但是筆者有試過如果幾乎不等待,就讓Arduino端一直傳送的話,那麼在接收Android手機端的命令時就會出現0與1以外奇怪的數值喔!
手機端程式說明
請注意,本範例中的Clock1 元件的 TimeInterval 設定為10毫秒,也就是每10毫秒手機端就會去啟動藍牙接收程式,查看Arduino端的D13腳位的電位高低狀態。 這個參數您可以自由修改,如果想要做到最即時反應那就可以把時間間隔改低一點,但是在這邊提醒一下,藍牙的傳輸資料還是多多少少會有些時間延遲喔!
Blocks 頁面 
| 區塊 | 元件名稱 | 功能 |
| 藍牙列表的設定 | when ListPicker1.BeforePicking | 在藍牙連線到裝置前,先將之前配對好的藍芽裝置匯入到準備連接的列表中 |
| 藍牙連線到裝置 | when ListPicker1.AfterPicking | 選好要連接的藍牙裝置後,將藍牙列表關閉、啟動計時器開始每隔一段時間讀值,並把斷線的按鈕設定為可執行 |
| 斷線按鈕的設定 | when Button3.Click | 按下斷線後就會斷開藍牙通訊,並把按鈕配置回到一開始的狀態 |
按鈕發送藍牙訊號來控制 Arduino 以及定期接收 Arduino 的回傳值來改變按鈕 (Button2) 的背景顏色 
| 區塊 | 元件名稱 | 功能 |
| 藍牙遙控LED燈 | when Button1.Click | 當按下ON之後就會透過藍牙傳送"1"的訊息給Arduino,如果Arduino成功接收到的話,就會亮燈當按下OFF之後就會透過藍牙傳送"0"的訊息給Arduino,如果Arduino成功接收到的話,就會熄燈每次按下手機螢幕上的開關時,按鈕上的文字都會在"ON"、"OFF"之間做切換 |
| 藍牙接收LED燈狀態 | when Clock1.Timer | 每隔一段時間(本次範例使用的是10ms),就會去接收Arduino透過藍牙傳送過來的LED燈狀態如果是"1"的話,就將旁邊按鈕2的背景顏色設為亮色,代表此時燈是亮的如果是"0"的話,就將旁邊按鈕2的背景顏色設為暗色,代表此時燈是暗的 |

留言 💬 (0)
還沒有留言,來當第一個。