作者:柯大
資料來源: https://makerpro.cc/2019/11/iot-development-board-dsi5168/
Ameba是由國內IC設計大廠瑞昱半導體(Realtek)所推出,針對物聯網應用開發而設計的一套開發板解決方案。它提供了完善的軟、硬體開發環境,除了相容Arduino開源硬體生態系,適合自造創意實作外,同時能滿足產業開發的要求,具備低功耗、安全性等特性,並支援IAR、mbed等工程師熟悉的開發環境,能讓創意原型無痛接軌到市場量產,所以推出多年以來,相當受到歡迎,也是值得學習的物聯網開發平台,更可讓您快速以穩定安全的WiFi導入物聯網應用。
資策會數位服務創新研究所(簡稱『服創所』),為了協助創新應用開發端經由開發板設計物聯網應用產品,催生了「DSI5168」這塊量產導向的物聯網國產開發板,該開發板以Ameba 系列的主晶片 - RTL8711為核心,因此具備上述Ameba的開發優勢:完全兼容Arduino開發特性,還一舉整合MCU、Wi-Fi、Ethernet及豐富的外圍設備,搭配提供標準化的Arduino函式庫,可謂完整的物聯網方案。
資策會服創所開發基於Ameba RTL711AM WiFi 晶片的Arduino 相容開發板DSI5168
DSI5168開發板支援Wi-Fi、GPIO、I2C、UART、PWM、ADC等多項傳輸方式,其精簡的I/O接腳設計,可順利與LED、開關、壓力感測、溫濕度計、PM2.5 空氣品質感測等感測元件結合,快速將各項感測資料透過Wi-Fi上傳至雲端平台,以DSI5168開發板所開發的各項物聯網應用,將可加速量產為物聯網商品。
DSI5168硬體介紹
DSI5168 是基於Realtek RTL8711AM WiFi晶片構成的物聯網開發板,採用ARM的Cortex M3為核心,並基於低耗電的架構設計,因而繼承了Ameba系列的省電特性;同時內建輕量級的物聯網協議,並完整支援Arduino、IAR、mbed等開發環境。
在進一步認識DSI5168前,先來認識它的兩個兄長,也就是Ameba系列的Ameba RTL8710與Ameba RTL8195。
Ameba家族的RTL8710開發板(圖左)及RTL8195開發板(圖右)
這兩塊開發板的功能類似,RTL8710相較於RTL8195少了一些GPIO,也少了一些function像是SDIO、UVC、NFC、ADC、DAC……,這些反映在價格上,RTL8710在價格上比RTL8195更低廉,讓使用者可以根據需求選擇適合的開發板。兩款開發板皆支援Windows XP/7/8 32位元/64位元,以及MAC OS作業系統,並且支援Arduino IDE 1.6.5之後的版本。
下表為Ameba系列四款核心晶片的規格差異比較:
Realtk Ameba WiFi系統物聯網晶片功能比較表(圖片來源:Realtek)
再來介紹資策會服創所開發的更精簡版 - DSI5168開發板,為了滿足物聯網創新應用商品的小型化設計需求,特別簡化了晶片接腳,僅留下SPI、I2C、PWM、ADC、UART、GPIO等應用上常用的必要接腳,如下圖:
DSI5168物聯網開發板接腳圖(圖片來源:資策會服創所)
DSI5168物聯網開發板硬體功能表(圖片來源:資策會服創所)
DSI5168物聯網開發板外觀,紅色框框部分為Micro USB接頭,藍色框框部分為Reset 按鈕。(圖片來源:資策會服創所)
DSI5168 Arduino IDE開發環境介紹
DSI5168為「IoT產品開發的好幫手」,對Maker來說是非常方便的開發工具,DSI5168開發板繼承了Ameba系列Arduino 相容開發環境SDK Library,讓新創團隊及自造者可以快速上手這款國產小型物聯網開發板,更可利用Arduino 無窮盡的開源函式庫結合各種感測器,開發出許多的創意應用。
以下為大家介紹在Windows 作業系統下安裝DSI5168 Arduino IDE開發環境:
1. 至以下網址下載Arduino IDE軟體 : https://www.arduino.cc/en/Main/Software
在Arduino 網站點選紅色框框”JUST DOWNLOAD”選擇下載(圖片來源:柯清長)
在Arduino 網站點選紅色框框下載Windows版軟體(圖片來源:柯清長)
2. 安裝Arduino IDE執行下載的Arduino軟體
點選紅色框框允許存取後,Arduino IDE 即繼續安裝至完成(圖片來源:柯清長)
3. 安裝 Windows Ameba USB 驅動程式
由於DSI5168是基於Ameba ARM MBED Free RTOS SoC硬體開發系統,在Windows下無法自動辨識 USB Driver ,需至以下網址下載 ARM MBED CMSIS DAP driver:
https://os.mbed.com/handbook/Windows-serial-configuration
點選紅色框框”Download latest driver”下載 mbedWinSerial_16466.exe(圖片來源:柯清長)
將 USB 連接 Ameba插在 Windows的電腦上,執行mbedWinSerial_16466.exe驅動程式,即可看到 mbed 的磁碟及新增的Com Port 序列埠,即表示已安裝完成USB驅動程式(如下圖):
出現MBED虛擬磁碟機(圖片來源:柯清長)
可以從裝置管理員看到新增的 mbed Serial Port(圖片來源:柯清長)
4. 設定DSI5168在Arduino IDE的執行環境
開啟Arduino 程式,選擇 ”檔案”:
圖12:開啟Arduino IDE 程式(圖片來源:柯清長)
選擇 ”檔案”→”偏好設定 (Preference)”,設定Arduino 工作草稿碼工作目錄:
C:\Users\user\Documents\Arduino\DSI5168
設定額外的開發板管理員網址:
https://github.com/Ameba8195/Arduino/raw/master/release/package_realtek.com_ameba_index.json
設定DS5168在Arduino 工作目錄及開發板取得Ameba SDK網址(圖片來源:柯清長)
在Arduino 功能列選擇 “工具”(tools) 底下 →“開發版” (Boards)→“開發版管理者”(Boards manager),即可透過”額外的開發板管理員網址,連結到Realtek Ameba Boards開發板下載SDK的連結點,在畫面上往下拉即可看到 Realtek Ameba Boards (32-bits ARM Cortex-M3) 等字樣,可選擇最新版”2.05”按下其右下角的安裝 (install)。
安裝DS5168在Arduino IDE 開發SDK(圖片來源:柯清長)
關閉Arduino 重新啟動 Arduino 後 (一樣新版本的筆者沒有重啟即會自動更新,如果沒看到 Ameba 板子的出現,請重啟),點選 ”工具” (tools) 開發版 (Boards),往下來即可選擇 “Ameba RTL8195A”,大功告成。
圖已安裝好DS5168 Arduino SDK,可選到Ameba RTL8195A 開發板。(圖片來源:柯清長)
DSI5168 Arduino 第一支程式 小試身手
DSI5168 開發板完全相容Ameba Arduino開發環境及範例程式,Ameba 開發板在導入Arduino 開發環境時,為貼近Maker 們的使用方式,把常用的感測器都直接提供了內建程式庫,例如常用的溫溼度感測器(DH11、DHT22),和LCD 1602、LCD1604顯示器、紅外線IR發射接收感測器、標準SPI介面SD卡讀寫模組,以及MQTT 傳輸協助函式庫等,均不需再下載安裝外部第三方程式庫,內建各項I/O功能:GPIO、ADC、I2C、SPI、UART、NFC、WiFi通訊功能、省電模式、MCU看門狗(Watchdog),也均完整提供Arduino 函式庫,讓您可以用這款精簡國產物聯網開發板來快速進入物聯網創新應用開發領域。
以下介紹如何用DSI5168來完成第一支Arduino的程式:
1 開啟DSI5168 Arduino 開發板提供的各種感測器完整範例程式,可由Arduino IDE “檔案”→”範例”載入應用,如下圖:
DSI5168 Arduino完整開發範例程式(圖片來源:柯清長)
2.開啟我的 Ameba 第一支程式Blink LED閃爍(利用GPIO)
Arduino 開發第一支 Ameba 的程式Blink,可以Arduino IDE內建範例程式中找到,這支入門程式是Arduino 界的”HelloWord!”測試程,只要將DS5168開發板 D13接一顆LED,再開啟Arduino “檔案”→”範例”→”Basics””Blink”→,載入Blink.ino 程式即可,如下圖:
開啟載入”Blink.ino “ Arduino範例程式(圖片來源:柯清長)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Blink.ino 程式碼: // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN D13 as an output. pinMode(LED_BUILTIN, OUTPUT); }
// the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } |
3.確認選擇 【開發板:”Ameba RTL8195A”】及【序列埠:COMx”】後,進行編譯及上傳範例程式碼至DS5168開發板,上傳完畢記得按【Reset】鍵重新啟動DS5168,即可看到LED每間隔1秒亮起及熄滅。
燒錄上傳”Blink.ino rduino”範例程式(圖片來源:柯清長)
小結
本文算是小試身手,先對DSI5168有個初步認識,對於熟悉Arduino的朋友應該能輕鬆上手,可放心用它來實作自己的IoT應用想法,例如做個空氣品質監測器,為LASS網路貢獻一分資訊。如果你是創業團隊,用它來開發產品,還不用太擔心量產問題,畢竟有Realtek這家大廠在掛保證呢。
更多應用範例可見Realtek Ameba官網,或參考筆者的另一篇應用測試範例介紹文章。
(責任編輯:王姵文)