Arduino、 S4A 與藍牙遙控車
南門國小資訊組 張文宏[email protected]
1、 Arduino 簡介與序列通信
1-1 Arduino 環境建置 (1)
• 下載開發環境:至官網(arduino.cc) ,點選 download後,下載 ArduinoIDE ( 目前1.5.6r2 beta)
(以Windows 環境為例 )
• 安裝開發環境:有 2 種下載檔,如下載 installer 檔,直接執行;如為 zip 檔,直接解壓縮後,進入資料夾找執行檔即可使用。
( 可於研習下載檔案直接使用 zip檔 )
• 驅動 arduino 板:電腦連接arduino( 若需驅動程式,位置在 arduinoIDE 安裝資料夾內 drivers 資料夾 )
1-1 Arduino 環境建置 (2)
• 找出板子的 COM port 號碼:於裝置管理員找到「連接埠」,內有 Arduino Uno 的號碼
1-2 ArduinoIDE 簡介 (1)
偏好設定
設定語言及設定字型大小
( 均需重開程式才生效 )
1-2 ArduinoIDE 簡介 (2)
設定 Arduino板子類型
設定 Arduino 板子的 com port 號碼
( 要與裝置管理員內的相同 )
1-3 LED 閃爍程式 (1)
開啟內建範例程式
Blink
1-3 LED 閃爍程式 (2)
檢驗程式並上傳至 Arduino
訊息區( 回報成功或錯誤訊息 )
上傳後檢查 pin13 旁的LED 燈是否閃爍,
也可以加一個 LED 如下圖
LED 長針腳正極,接 pin13 ;
短針腳負極接 GND
1-3 LED 閃爍程式 (3)
函式 setup為初始設定
( 只執行一次 )( 設定 pin13 為數位輸出 )
函式 loop 為無窮迴圈digitalWrite(led,HIGH); 會亮燈digitalWrite(led,LOW); 會暗燈
Delay(1000); 會等待 1000 毫秒 (即 1秒 )
1-4 Arduino 微電腦板簡介 (以 UNO 為例 )
ATmega328處理器
( 含記憶體 )
Reset 鈕
數位輸出 / 輸入埠 D0~D13(有 PWM ~ 可兼類比輸出 )
傳送、接收 LED
USB 序列埠兼電源輸入
5V、 500mA(type B)
7V ~ 12V電源輸入
(DC 接頭 )
類比輸入埠 (A0~A5)5V 代表正電GND 代表負電
1-4 Arduino 微電腦板簡介 ( 電壓與感應值 )
電壓值
5V
0
數位輸入
數位輸出
1(HIGH)
0(LOW)
類比輸入
1023
0
類比輸出
255
0
2.5V 1(HIGH)
約 512 約 128
(PWM~ 腳位 )
1-5 韌體 (firmware)維基百科定義
韌體( firmware)…是一種嵌入在硬體裝置中的軟體。 通常它是位於特殊應用積體電路( ASIC )或
可程式邏輯裝置( PLD )之中的快閃記憶體或 EEPROM或PROM裡,有的可以讓使用者更新。
3 、韌體儲存於Arduino的
Atmega內的記憶體
1 、以 ArduinoIDE編寫韌體程式上傳
2 、透過 USB 線以序列 (Serial) 通
訊傳送韌體
1-6 線材介紹 (1)
杜邦單排母座( 一公頭一母頭 ) 麵包板跳線
( 雙公頭 )
大小麵包板( 可接公頭線或針
腳 )
1-6 線材介紹 (2)
杜邦線( 雙母頭 )
杜邦線( 公母頭 )
鱷魚夾 杜邦接頭
• 請開啟「研習範例程式 diy1_7BlinkBySerial 」• 將程式上傳至 Arduino• 開序列埠監視螢幕 (Serial Monitor)
1-7 LED 閃爍 ( 序列通信控制 )
• 由 Serial Monitor 傳送命令控制 Arduino
(0 是關, 1 是開, 2 是連續閃爍 )
PC 端傳送
PC 端接收
PC 端速率
數位輸出 D13
序列通信 (Serial)傳送 ascii 字元速度 9600BPS
1-8LED 閃爍程式 ( 序列通信控制 )— 概念探討
燈光閃爍韌體
序列通信程式(ArduinoIDE Serial Monitor)
D0(Rx)、D1(Tx)
1-9 延伸閱讀
• 書籍:超圖解 Arduino 互動設計入門 ( 旗標 )• Youtube: Arduino入門套件中文字幕教學• Arduino官網語法參考網頁(英文 )
• 葉難:Arduino簡介• CooperMaa:Arduino 入門教學
2、 Scratch for Arauino (S4A)
2-1 S4A 環境建置 (1)• S4A 是一個 Scratch 的修改版本,提供額外積木以支援
Arduino ,檔案與原 Scratch不相容。• 至 S4A 官網下載 ( 網址 s4a.cat) ,有兩個要下載,一個是
S4A 程式 (pc用 ) 及另一個是 S4A 韌體 (arduino用 )
S4A 韌體 (Arduino用 )
S4A 程式 (PC用 )
2-1 S4A 環境建置 (2)• S4A 程式:於 PC 端安裝• S4A 韌體:以 ArduinoIDE 開啟 S4A 韌體
(S4AFirmware15.ino) ,並上傳至 Arduino• 接線測試:用 USB 線連接電腦與 Arduino ,若看到以下畫面 ( 有感應器數字會跳動 ) ,即成功。
類比輸入的值會一直跳動(因有浮動訊號 )
連結 Arduino的 com port 號碼
2-2 燈光閃爍 (S4A版本 )S4A 程式與 S4A 韌體的連線關閉
S4A 程式與 S4A 韌體的連結(用 search board 或選擇序列埠均可 )
用左方積木即可達到控制燈光閃爍的功能
2-3 S4A 概念探討 (1)
數位輸出 D13
序列通信 (Serial)傳送資料及控制 Arduino(每 75ms 傳送 1次 )速度 38400BPS
S4A 韌體
S4A 程式 (PC端 )
D0(Rx)、D1(Tx)
2-3 S4A 概念探討 (2)
註:上圖摘自臺中市數位教學平台課程 : S4A 介紹與入門
找出 S4A預設接腳、 Arduino、 S4A擴充板的對應位置
2-4 S4A 擴充板 (S4A sensor board)(1)安裝與拆下時注意兩邊力量要平均不然針腳會歪掉
• 優點 免去麵包板 免插線 整合 7 個元件
適合初學者
• 缺點 腳位功能被限制
2-4 S4A 擴充板 (S4A sensor board)(2)
上圖摘自苗栗縣政府教育處資訊中心SmetA 科技玩創作網站
2-5 S4A 小專案 (RGB LED 小小燈光師 )(1)
2-5 S4A 小專案 (RGB LED 小小燈光師 )(2)
• S4A 小小燈光師程式位於研習範例檔案
• 書籍:程式設計邏輯訓練:使用 Scratch ( 松崗 )• 臺中市數位教學平台-科技教育開放硬體• SmetA科技玩創作(苗栗縣)
• S4A小專案:小小燈光師• youtube:人體樂器(S4A實作makey)
2-6 延伸閱讀
3 、藍牙遙控車
3-0 遙控車套件材料介紹 (1)
ArduinoUNO Sensor Shield 5.0擴充板
杜邦線
車體層板藍牙模組
銅柱、鏍絲18650鋰充
電池
超音波模組(不使用 )
3-0 遙控車套件材料介紹 (1)
L298N馬達模組
18650 電池盒萬向輪
馬達、車輪、減速齒輪組
3 組紅外線開關(不使用 )
車體底座
3-1 Sensor Shield V5.0擴充板 (1)
找出 Arduino 與Sensor Shield V5.0擴充板
的對應位置
安裝與拆下時注意兩邊力量要平均不然針腳會歪掉
G: GND 接地 負電V: VCC 5V 正電S: SIGNAL 訊號
3-1 Sensor Shield V5.0擴充板 (2)• 優點 免去麵包板 (多組 V和
G) 使用杜邦線 ( 母頭 )
可彈性使用 預留模組位置
• 缺點 複雜 要有 Arduino 腳位基本認知
3-2 直流 DC馬達模組概念正極
負極
若正負極反接會如何 ?
H橋電路可控制直流馬達正反轉L298N雙 H橋電路直流馬達模組
( 控制 2 組直流馬達正反轉 )
3-3 L298N馬達模組控制右馬達實作 (1)
VMS: 接電池盒紅線
GND: 接電池盒黑線
ENA: 接擴充板 VIN1: 接擴充板 D10IN2: 接擴充板 D11
GND: 接擴充板 G+5V: 接擴充板 V
先調整右輪馬達要依下方表格動作
( 若不行,馬達紅黑電線要交換 )
IN1(D10)
IN2(D11)
動作
on off 馬達前進 off on 馬達後退off off 馬達停止
S4A 控制積木
右馬達紅黑線無固定,先試接,相反再交換接線示意圖
3-3 L298N馬達模組控制右馬達實作 (2)實作圖
右馬達及電池盒接線
馬達模組與 Arduino 接線
站立車體以測試右馬達
3-4 L298N馬達模組控制左馬達實作
IN3: 接擴充板 D12IN4: 接擴充板 D13ENB: 接擴充板 V
先調整右輪馬達要依下方表格動作
( 若不行,馬達紅黑電線要交換 )
IN3(D12)
IN4(D13)
動作
on off 馬達前進 off on 馬達後退off off 馬達停止
S4A 控制積木
左馬達紅黑線無固定,先試接,相反再交換
接線示意圖
可試著做出可用上下左右鍵控制車子的程式,並建議要存檔供後面使用
3-5 遙控車供電 (1)USB 電源輸入
5V
7V ~ 12V外部電源輸入
可接 Arduino外部 電源
Arduino 端電源18650 電池盒電
源(3.7V x 2 = 7.4V)
接馬達模組供應馬達電力
5V_EN開關 (jumper)
左端電源 右端電源情況一: 若 5V_EN 開關相連, 左端與右端電源會相連
情況二: 若 5V_EN 開關斷開, 左端與右端電源獨立
3-5 遙控車供電 (2)5V_EN
開關 (jumper)要連接
線控模式供電建議
遙控模式供電建議
使用情況: ◎組裝測試時使用 ◎電池沒電時使用
優缺點: ◎可免用電池 ◎以 USB 線當開關 ◎ USB 長度受限制
5V_EN開關 (jumper)
要斷開
使用情況: ◎無線遙控使用
優缺點: ◎以圓形接頭當開關 ◎用電池車速較快 ◎電池容量受限制
圓形接頭可接上Arduino外部電
源
3-6 組裝遙控車
一、拆除Arduino 杜邦線及擴充板,並將 Arduino固定於上層板。
二、將 sensor board擴充板安裝於 Arduino上。
三、在車體底座加上四個銅柱。
四、鎖好上層板並連接好杜邦線
五、以 S4A 透過 USB 線控方式測試車子
3-7 藍牙模組設定與安裝 (1)
藍牙模組的預設速率是 9600 bps ,但 S4A 的通信速率是定在 38400 bps 。
作法一: USB to TTL轉換器 ( 需另購 )
作法二:把 ArduinoUNO當成 USB to TTL轉換器 ( 以下說明採作法二 )
如何改變藍牙模組傳輸速率?
3-7 藍牙模組設定與安裝 (2)以作法二為例:把 Arduino當成 USB to TTL轉換器,在 pc 上用序列通訊軟體作設定
接線: 一、接一條線在 Arduino的 GND與 RESET ,讓 Arduino停留在 reset mode 。 二、將藍牙模組接上 Arduino( 針腳依上頁圖片說明, 注意 VCC與 GND不能接錯,不然會損壞模組(若 不成功,可試著將 TX與 RX交換看看)。 三、將 Arduino 接上 PC 。
用 AT 命令更改藍牙模組設定: 一、使用 ArduinoIDE的 Serial Monitor 下命令,速率先設為 9600 bps (也可用範例檔案中的 AccessPort 軟體)。 二、連接後,先輸入 AT ,若成功會收到 OK 。 三、更改藍牙名稱的指令 AT+NAMExxxxxx( xxxxxx 為自定名稱)。 四、更改藍牙速率的指令 AT+BAUD6( 會設成 38400 bps) 。 五、 Serial斷線,移除 Arduino ,即完成藍牙模組設定,建議將新設定 以小貼紙貼在藍牙模組上。下次要再連接,速率要改 38400
3-7 藍牙模組設定與安裝 (3)
藍牙模組接上 Sensor Board擴充板
◎接擴充板上 bluetooth 的下面 4 個針腳 (不是 + 的那邊 ) ,注意 Vcc 的線在最下方
◎此接法會佔用 Arduino的 D0與 D1來連接藍牙模組
遙控車接上藍牙情形
固定於上方以免拖到地面
3-8 PC 端藍牙配對並用 S4A 連結 (1)實作前注意事項:◎確認藍牙模組已更改速率 (38400 bps) 及名稱◎確認藍牙模組已正確接上 Arduino 並等待連結 (紅色 LED 會一直閃爍 )◎確認 PC 端有藍牙接受器,而且有正確驅動並安裝配對設定程式
( 以下以 win7 環境為例 ) 首先到控制台新增 Bluetooth 裝置
3-8 PC 端藍牙配對並用 S4A 連結 (2)
選新增裝置Win7 會找到藍牙模組名稱
選擇「輸入裝置的配對碼」
3-8 PC 端藍牙配對並用 S4A 連結 (3)
輸入裝置的配對碼 1234( 常見的預設配對碼為 0000或 1234)
配對完成後,右鍵進入裝置的內容
3-8 PC 端藍牙配對並用 S4A 連結 (4)
配對完成後,右鍵進入裝置的內容,在硬體標籤處可查到藍牙模組的 com port號碼
( 以上藍牙配對只有在第一次時,才要做配對設定 )
開啟 S4A ,以之前的方法連結Arduino, 但 com port變為藍牙的號碼 ( 找到後,藍牙的紅 LED 會固定亮著 )
( 特別注意,在拔掉 Arduino 電源或關閉藍牙時,一定要先在 S4A 裡關閉與 Arduino 的連結,不然會讓 S4A當機 )若以上都完成,就可以用前面的 S4A 程式來遙控車子了。
3-9 S4A 藍牙遙控車
S4A 藍牙遙控車注意事項:
1 、在拔掉 Arduino 電源或關閉藍牙時,一定要先在 S4A 裡關閉與Arduino 的連結,不然會讓 S4A當機,造成 S4A 程式無法存檔。
2 、若要恢復成線控模式,記得要將藍牙模組拔掉 ( 也可只拔掉 Vcc 接腳 ) ,,不然 USB 線會無法傳資料 (因為USB 與藍牙模組都 是用 D0與 D1 傳送接收資料,故不能兩者同時接上 )
若以上動作都成功,就可以用前面的 S4A 程式來無線遙控
3-10 Android S4A 藍牙遙控車 (1)
開啟 Android 端藍牙,並搜尋裝置
找到藍牙模組,並輸入配對碼
完成配對 (配對一次後,不需再配對 )
3-10 Android S4A 藍牙遙控車 (2)
安裝遙控程式 S4ARobotCar(此程式以 app inventor2 寫成, Arduino 接線要同本次研習才有作用 )
執行並連結藍牙裝置
藍牙模組燈號定住後,就可使用遙控功能
3-11 S4A 藍牙遙控車概念探討
數位輸出 D10、 11、 12、
13
序列通信 (Serial)傳送資料及控制 Arduino(每 75ms 傳送 1次 )速度 38400BPS
Arduino + SensorBoard( 內有 S4A 韌體 )
S4A 程式 (PC端 )
D0(Rx)、D1(Tx)
S4ARobotCar app (android端 )
針腳In1、 2、 3、
4
馬達模組 直流馬達
• 書籍:超圖解 Arduino 互動設計入門 ( 旗標 )• 臺中市數位教學平台-科技教育開放硬體• SmetA科技玩創作(苗栗縣 )
• Bluetooth module configuration(cooper maa)• Arduino as an USB to TTL adapter(cooper maa)• 使用 L298N 模組控制直流馬達 (cooper maa)
3-12 延伸閱讀
Top Related