2015-07-30

EVShield筆記(4 - 2) : EVShield WiFi Web Server Arduino 軟體功能

在前篇 " (4-1) 結合 Arduino WiFi Shield 的 EVShield Web Server " 中,主要探討的是硬體介面相關,包含: SPI介面Shields 推疊 以及 Arduino 腳位配置 

本篇將以軟體功能為主,包含:建立 WiFi 連結啟動 Web server 以及 處理瀏覽器的 HTTP request

【參考資訊】

(1) Arduino WiFi.h 程式庫 
(2) HTTP Headers for Dummies 
(3) EVShield筆記(2):UI Module使用者介面擴展板程式摘要 

【1. 建立WiFi連結】


  • 連接無線網路,需要確認 SSID 與 加密方式 ,再以 WiFi.begin() 進行加密認證。
  • 通過加密認證之後,會由 DHCP 配置動態 IP,也可以先以WiFi.config() 設定靜態 IP後再進行加密認證。
  • IP 位址可以由 WiFi.localIP() 取得資料型態為IPAddress,實際上為四個元素陣列的IPV4 格式

2015-07-23

EVShield筆記(4 - 1) : 結合 Arduino WiFi Shield 的 EVShield Web Server(硬體介面)

以EVShield 結合 Arduino WiFi Shield,就可以實現透過無線網路控制 EV3/NXT 的馬達與感應器。
而最簡單便利的人機控制介面就是在 Arduino UNO建置 Web server,這樣任何平台的裝置,即只需以瀏覽器開啟網頁方式遙控機器人的操作,而不需要開發專屬的 App。

下圖為本次所計畫建置的 EVShield WiFi Web server,將會以瀏覽器控制 EVShield 上兩組 RGB LED 的顏色顯現,並同時在 UI Module 的 LCD 螢幕上顯示目前所執行的顏色設定指令。 

【示範影片】


【擴展板推疊方式】
EVShield WiFi Web server 的所有組件如下圖:除Arduino UNO之外,另還包含 UI Module shield、EVShield 以及 WiFi Shield 等三個擴展板。
  

2015-07-06

EVShield筆記(3):測試 EV3 以 I2C 連線控制 EVShield

EVShield 是作為Arduino連接 Mindstorms NXT/EV3 馬達與感應器擴展板
EVShield具備的功能中,除了 Servo pins 之外,都是透過 I2C 方式進行控制,包含:三個按鍵、兩個 RGB LED、四個 Motor ports 以及 四個 Sensor ports
而對於同樣具有 I2C 通訊
介面的 EV3主機 Sensor ports,應該也可以取代 Arduino 直接連接及運用 EVShield 的功能,以下即是對於這個需求所進行的測試記錄。


【EV3 接線方式】:
如下圖,將 EVShield 背面正下方的 4 pins I2C 接腳轉接成 RJ12 cable 之後
連接 EV3 的 Sensor Port。

【EV3 使用軟體】:
EV3 程式使用 RobotC 4.32 版。
至於 EV3 軟體,目前已知 Mindsensors 與 DI 的 EV3-I2C Programming Blocks,在功能方面並不適用。
 

EVShield I2C 架構

如下圖,EVShield 由兩個 I2C Slave 裝置所組成,分別為 Bank A ( 位址:0x34 ) 與 Bank B 0x36 ),其中 LED 與 按鍵 的控制功能都建立在 Bank A,詳細的 I2C 暫存器資訊需參考 "EVShield Advanced Development Guide文件