520 likes | 880 Views
Arduino 、 S4A 與藍牙遙控車. 南門國小資訊組 張文宏 wenhong@mail.nmes.tyc.edu.tw. 1 、 Arduino 簡介與序列通信. 1-1 Arduino 環境建置 (1). ( 以 Windows 環境為例 ). 下載開發環境 :至官網 (arduino.cc) ,點選 download 後,下載 ArduinoIDE ( 目前 1.5.6r2 beta). 安裝開發環境 :有 2 種下載檔,如下載 installer 檔,直接執行;如為 zip 檔,直接解壓縮後,進入資料夾找執行檔即可使用。
E N D
Arduino、S4A與藍牙遙控車 南門國小資訊組 張文宏 wenhong@mail.nmes.tyc.edu.tw
1-1 Arduino環境建置(1) (以Windows環境為例) • 下載開發環境:至官網(arduino.cc),點選download後,下載ArduinoIDE(目前1.5.6r2beta) • 安裝開發環境:有2種下載檔,如下載installer檔,直接執行;如為zip檔,直接解壓縮後,進入資料夾找執行檔即可使用。 (可於研習下載檔案直接使用zip檔)
1-1 Arduino環境建置(2) • 驅動arduino板:電腦連接arduino(若需驅動程式,位置在arduinoIDE安裝資料夾內drivers資料夾) • 找出板子的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為例) 傳送、接收LED 數位輸出/輸入埠D0~D13(有PWM ~可兼類比輸出) USB序列埠 兼電源輸入 5V、500mA (type B) Reset 鈕 ATmega328 處理器 (含記憶體) 7V ~ 12V 電源輸入 (DC接頭) 5V代表正電 GND代表負電 類比輸入埠(A0~A5)
1-4 Arduino微電腦板簡介(電壓與感應值) 電壓值 數位輸入 數位輸出 類比輸入 類比輸出 (PWM~腳位) 5V 1(HIGH) 255 1023 2.5V 1(HIGH) 約512 約128 0 0 0(LOW) 0
1-5 韌體(firmware) 維基百科定義 • 韌體(firmware)…是一種嵌入在硬體裝置中的軟體。 • 通常它是位於特殊應用積體電路(ASIC)或可程式邏輯裝置(PLD)之中的快閃記憶體或EEPROM或PROM裡,有的可以讓使用者更新。 3、韌體儲存於 Arduino的Atmega 內的記憶體 2、透過USB線 以序列(Serial)通訊 傳送韌體 1、以ArduinoIDE 編寫韌體程式上傳
1-6 線材介紹(1) 杜邦單排母座 (一公頭一母頭) 麵包板跳線 (雙公頭) 大小麵包板 (可接公頭線或針腳)
1-6 線材介紹(2) 杜邦線 (雙母頭) 杜邦線 (公母頭) 鱷魚夾 杜邦接頭
1-7 LED閃爍(序列通信控制) • 請開啟「研習範例程式diy1_7BlinkBySerial」 • 將程式上傳至Arduino • 開序列埠監視螢幕 (Serial Monitor) PC端傳送 PC端接收 • 由Serial Monitor傳送命令控制Arduino • (0是關,1是開,2是連續閃爍) PC端速率
1-8LED閃爍程式(序列通信控制)—概念探討 數位輸出 D13 燈光閃爍韌體 D0(Rx)、D1(Tx) 序列通信(Serial) 傳送ascii字元 速度9600BPS 序列通信程式 (ArduinoIDE Serial Monitor)
1-9 延伸閱讀 • 書籍:超圖解 Arduino 互動設計入門(旗標) • Youtube:Arduino入門套件中文字幕教學 • Arduino官網語法參考網頁(英文) • 葉難:Arduino簡介 • CooperMaa:Arduino 入門教學
2-1 S4A環境建置(1) • S4A是一個Scratch的修改版本,提供額外積木以支援Arduino,檔案與原Scratch不相容。 • 至S4A官網下載(網址s4a.cat),有兩個要下載,一個是S4A程式(pc用)及另一個是S4A韌體(arduino用) S4A程式(PC用) S4A韌體(Arduino用)
2-1 S4A環境建置(2) • S4A程式:於PC端安裝 • S4A韌體:以ArduinoIDE開啟S4A韌體(S4AFirmware15.ino),並上傳至Arduino • 接線測試:用USB線連接電腦與Arduino,若看到以下畫面(有感應器數字會跳動),即成功。 連結Arduino的com port號碼 類比輸入的值會一直跳動 (因有浮動訊號)
2-2 燈光閃爍(S4A版本) S4A程式與S4A韌體的連結 • (用search board或選擇序列埠均可) S4A程式與S4A韌體的 連線關閉 • 用左方積木即可達到控制燈光閃爍的功能
2-3 S4A概念探討(1) 數位輸出 D13 S4A韌體 D0(Rx)、D1(Tx) 序列通信(Serial) 傳送資料及控制Arduino(每75ms傳送1次) 速度38400BPS S4A程式(PC端)
2-3 S4A概念探討(2) 找出S4A預設接腳、Arduino、S4A擴充板的對應位置 註:上圖摘自臺中市數位教學平台 課程: S4A介紹與入門
2-4 S4A 擴充板(S4A sensor board)(1) 安裝與拆下時 注意兩邊力量要平均 不然針腳會歪掉 • 優點 • 免去麵包板 • 免插線 • 整合7個元件 • 適合初學者 • 缺點 • 腳位功能 • 被限制
2-4 S4A 擴充板(S4A sensor board)(2) 上圖摘自苗栗縣政府教育處資訊中心 SmetA科技玩創作網站
2-5 S4A小專案(RGB LED小小燈光師)(2) • S4A小小燈光師程式位於研習範例檔案
2-6 延伸閱讀 • 書籍:程式設計邏輯訓練:使用Scratch (松崗) • 臺中市數位教學平台-科技教育開放硬體 • SmetA科技玩創作(苗栗縣) • S4A小專案:小小燈光師 • youtube:人體樂器(S4A實作makey)
3-0 遙控車套件材料介紹(1) 杜邦線 ArduinoUNO Sensor Shield 5.0擴充板 超音波模組(不使用) 藍牙模組 車體層板 18650鋰充電池 銅柱、鏍絲
3-0 遙控車套件材料介紹(1) L298N馬達模組 3組紅外線開關 (不使用) 車體底座 馬達、車輪、 減速齒輪組 18650電池盒 萬向輪
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馬達模組概念 正極 若正負極反接會如何? 負極 L298N雙H橋電路直流馬達模組 (控制2組直流馬達正反轉) H橋電路可控制直流馬達正反轉
3-3 L298N馬達模組控制右馬達實作(1) 右馬達紅黑線無固定,先試接,相反再交換 ENA:接擴充板V IN1:接擴充板D10 IN2:接擴充板D11 接線示意圖 VMS:接電池盒紅線 GND:接電池盒黑線 GND:接擴充板G +5V:接擴充板V 先調整右輪 馬達要依下方表格動作 (若不行,馬達紅黑電線要交換) S4A控制積木
3-3 L298N馬達模組控制右馬達實作(2) 實作圖 右馬達及電池盒接線 站立車體以測試右馬達 馬達模組與Arduino接線
3-4 L298N馬達模組控制左馬達實作 IN3:接擴充板D12 IN4:接擴充板D13 ENB:接擴充板V 接線示意圖 左馬達紅黑線無固定,先試接,相反再交換 先調整右輪 馬達要依下方表格動作 (若不行,馬達紅黑電線要交換) S4A控制積木 可試著做出可用上下左右鍵控制車子的程式,並建議要存檔供後面使用
3-5 遙控車供電(1) Arduino端電源 18650電池盒電源 (3.7V x 2 = 7.4V) USB電源輸入 5V 可接Arduino 外部電源 7V ~ 12V 外部電源輸入 接馬達模組 供應馬達電力 5V_EN 開關(jumper) 左端電源 右端電源 情況一: 若5V_EN開關相連, 左端與右端電源會相連 情況二: 若5V_EN開關斷開, 左端與右端電源獨立
3-5 遙控車供電(2) 5V_EN 開關(jumper) 要連接 線控模式 供電建議 使用情況: ◎組裝測試時使用 ◎電池沒電時使用 優缺點: ◎可免用電池 ◎以USB線當開關 ◎USB長度受限制 遙控模式 供電建議 圓形接頭可接上 Arduino外部電源 使用情況: ◎無線遙控使用 優缺點: ◎以圓形接頭當開關 ◎用電池車速較快 ◎電池容量受限制 5V_EN 開關(jumper) 要斷開
3-6 組裝遙控車 一、拆除Arduino杜邦線及擴充板,並將Arduino固定於上層板。 二、將sensor board擴充板安裝於Arduino上。 四、鎖好上層板並連接好杜邦線 三、在車體底座加上四個銅柱。 五、以S4A透過USB線控方式測試車子
3-7 藍牙模組設定與安裝(1) 藍牙模組的預設速率是9600 bps,但S4A的通信速率是定在38400 bps。 如何改變藍牙模組傳輸速率? 作法二:把ArduinoUNO當成 USB to TTL轉換器(以下說明採作法二) 作法一: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程式來無線遙控 S4A藍牙遙控車注意事項: 1、在拔掉Arduino電源或關閉藍牙時,一定要先在S4A裡關閉與Arduino的連結,不然會讓S4A當機,造成S4A程式無法存檔。 2、若要恢復成線控模式,記得要將藍牙模組拔掉(也可只拔掉Vcc接腳), ,不然USB線會無法傳資料(因為USB與藍牙模組都 是用D0與D1傳送接收資料,故不能兩者同時接上)
3-10 Android S4A藍牙遙控車(1) 開啟Android端藍牙,並搜尋裝置 找到藍牙模組,並輸入配對碼 完成配對(配對一次後,不需再配對)
3-10 Android S4A藍牙遙控車(2) 安裝遙控程式S4ARobotCar (此程式以app inventor2寫成,Arduino接線要同本次研習才有作用) 執行並連結藍牙裝置 藍牙模組燈號定住後,就可使用遙控功能