Arduino+Scratch2+s2aio使用藍牙連線Arduino

S2A需要電腦連線才能執行程式,並未將程式燒錄進Arduino,所以Arduino不能獨立運作,需要透過USB傳輸線傳送指令給Arduino才能運作,想透過藍牙取代USB傳輸線讓電腦傳送指令到Arduino,讓傳輸線可以無線化,但Arduino在此模式並未燒錄程式進去Arduino,不能獨立運作,只是能透過電腦的藍牙傳送指令給Arduino。

以下介紹使用Arduino透過AT指令更改藍牙名稱與傳輸速度,S2A的藍牙預設傳輸速度為57600bps,需要透過AT指令將藍牙傳輸速度改成57600bps,接著使用s2aio透過藍牙撰寫程式操控Arduino。

實驗所需設備

(1)Arduino

(2)HC-05

(3)杜邦線公母x5

(A)更改藍牙名稱與傳輸速度

(一)使用Arduino的序列埠下達指令給藍牙模組HC-05

Step1)此時還不需要將藍牙模組HC-05接上,使用Arduino IDE上傳以下程式到Arduino,該程式透過Arduino的序列埠傳送AT指令到藍牙,Arduino程式如下。

Step2)讓藍牙模組HC-05進入AT模式,需要先將Key輸入5V,再啟動藍牙模組HC-05就會進入AT模式。

將藍牙模組HC-05接上,接腳如下圖表,暫時不接上藍牙模組HC-05的VCC,接上Arduino與電腦的USB線,驅動Arduino,Step1的程式開始運作第7行D9輸出5V,藍牙模組HC-05就會進入AT模式,此時藍牙模組不亮燈,因為沒有接上藍牙模組HC-05的VCC。

接續上一步,馬上接上藍牙模組HC-05的VCC,啟動藍牙模組,如下圖,藍牙模組HC-05約兩秒鐘閃爍一次表示進入AT模式。

Step3)開啟Arduino的序列埠監控視窗,輸入以下AT指令,更改藍牙模組的名稱與傳輸速度。

(1)輸入「AT」,會回應「OK」,表示已經可以經由Arduino的序列埠下AT指令給藍牙模組HC-05。

(2)在上課時不能每個藍牙模組都是HC-05,需要修改名稱,使用指令「AT+NAME=所想要的名稱」,可以修改藍牙模組名稱,回應「OK」表示藍牙模組名稱已經修改完成。

(3)查詢名稱是否已經修改完成,使用指令「AT+NAME?」查詢,會回應所設定名稱為「+NAME:BT01」,表示藍牙模組名稱為BT01。

(4)S2A預設藍牙傳輸速度為57600bps,修改傳輸速度為57600bps,使用指令「AT+UART=57600,0,0」,「57600,0,0」表示 設定傳輸速率57600、一個停止位元、沒有同位檢查,可以修改藍牙傳輸速度,回應「OK」表示藍牙模組傳輸速度已經修改完成。

(5)查詢傳輸速度是否已經修改完成,使用指令「AT+UART?」查詢,會回應所設定傳輸速度為「+UART:57600,0,0」,表示藍牙模組傳輸速度為57600、一個停止位元、沒有同位檢查。

(B)使用s2aio透過藍牙撰寫程式操控Arduino

Step4)使用Arduino更新Arduino內的程式。

此時可以拔下藍牙模組。因為Step1修改Arduino內的程式,使用Arduino再燒錄韌體一次,參考Arduino+Scratch2(離線)+s2aio(支援Python3)的下載與安裝的Step2重新燒錄Firmata Plus程式到Arduino。

Step5)使用外接電源啟動Arduino與藍牙模組。

一定要使用外接電源啟動Arduino與藍牙模組,接線如下圖表,外接電源可以使用9V電池或隨身電源,擇一使用。

Step6)使用電腦連線藍牙模組

點選新增藍牙或其他裝置

點選「藍牙」

選擇「BT01」

輸入密碼

到此電腦與藍牙模組已經配對完成。

Step7)使用s2aio透過藍牙連線Arduino

在「藍牙與其他裝置」點選藍芽裝置後,點選右側「更多藍牙選項」,發現連出使用COM4與連入使用COM5。

在命令提示字元透過執行「s2aio -l 3 -p COM4」指令,s2aio使用COM4經過藍牙操作Arduino,並同時開啟Scratch2。

撰寫程式讓LED閃爍。