ON Semiconductor IoT Development Kit初作體驗
作者:柯大
最近到手一塊新的物聯網開發套件,是由ON Semi這家美國電子零件商所推出的,套件名稱叫做IoT Development Kit (簡稱IDK)。在測試之後發現,它提供的軟硬體開發環境相當完整,對Maker也算友善(支援標準Arduino介面),更有意思的是它支援ARM的mbed OS開發平台,順便熟悉一下,確實有其獨到之處。
本篇將介紹ON Semiconductor安森美半導體公司最近推出的物聯網開發套件 IoT Development Kit (IDK),該套件包含完整的開發主板硬體及各式感測器組合,提供嵌入式作業系統架構(ARM® mbed™ OS)完整軟體開發環境及各種應用範例原始碼暨說明文件,提供所有必要的軟硬體組件,協助開發者迅速設計、評估並實作醫療、家庭及工業物聯網(IoT)應用,再搭配物聯網開發雲端平台,可適合多種複雜的物聯網應用場域測試及產品開發。並具下列開發優勢及特點:
ü 完整硬體開發套件:分為主開發板、通訊模組、馬達驅動模、多種感測器模組。
ü 易學軟體開發平台:完整IDK C程式庫物聯網雲端開發平台。
ü 易用性:可減少產品開發工作量並縮短產品上市時間。
ü 全方位開發組合:可快速評估及產出原型端到端IoT解決方案。
ü 設計靈活性:多種連接方式,傳感器,執行器,電源管理。
ü 能源效率:提供開發最長的電池壽命IOT產品解決方案。
ü 模組擴展架構:標準Arduino與Pmod™等各種業界標準介面
ü 完整應用套件案例組合:馬達工業自動化、智慧照明、智慧家庭控制、低功耗通訊傳輸及智慧環境監控解決方案。
ON Semiconductor物聯網開發套件可支援多種應用,包括
IDK Hardware 組件 |
•
IDK Baseboard IDK主開發板
•
Ambient Light Sensor (ALS)
Shield 光照度感測模組
•
Touch Shield觸控模組
•
PIR Shield被動式紅外線人體感測模組
•
Stepper Motor Shield 步進馬逹擴充控制板
•
LED Ballast Shield 高功率LED調光控制板
•
Wi-Fi® Module
•
BLDC Shield無刷DC馬達控制器
•
PoE Shield AC電力線乙太網路模組
•
CAN Shield CAN網路模組
•
USB 連接線及電力連接線
• Sigfox
IoT 長距離低功耗通訊模組
硬體開發板與擴充模組及感測器介面結構說明圖
BB-GEVK:物聯網開發套件基板設計用作物聯網開發套件的中心樞紐。內建的NCS36510低功率系統單晶片(SoC)提供相容於2.4GHz IEEE 802.15.4-2006的Wi-Fi®連線收發器、ARM® Cortex®-M3微處理器、RAM與快閃記憶體,以及多種周邊裝置控制,同時內建用於反饋的LCD字元顯示器模組。
IDK基板透過USB連線至個人電腦,可進行應用程式設計、偵錯及為應用供電。PMOD與Arduino格式的實體連接器可讓基板利用屏蔽模組,進行連線、感測與致動。此外,IDK基板配備JTAG偵錯介面,可執行複雜的軟體偵錯工作。
PIR Shield被動式紅外線人體感測模組
PIR-GEVB:PIR被動紅外線擴展評估板採用NCS36000被動紅外線(PIR)偵測器控制器。NCS36000是完全整合的混合訊號CMOS裝置,專為低成本被動紅外線控制應用設計。PIR-GEVB板也包括PCA9655E
I/O埠擴展器IC,透過I²C匯流排與SMBus提供16位元一般用途平行輸入/輸出(GPIO)擴展。
Ambient Light Sensor (ALS) Shield 光照度感測模組
ALS-GEVB:環境光感測器擴展評估板用於示範NOA1305環境光感測器(ALS)的功能。NOA1305專為手持式應用設計,內建16位元ADC、2線I²C數位介面、內部時鐘振盪器及斷電模式。此IC使用的濾光片提供接近人眼的光線反應。
Touch Shield觸控模組
TS-GEVB:觸控開關擴充板採用高效能、低成本的LC717A00AR電容數位轉換器LSI,適用於靜電電容式觸控感測器,特別重視實用性。LC717A00AR擁有8通道電容式感測器輸入。內建邏輯電路可偵測各輸入狀態(開/關)並將結果輸出,因此適用於多種開關應用。此產品亦配備PCA9655E,透過I²C匯流排與SMBus提供16位元一般用途平行輸入/輸出(GPIO)擴展,並偵測LC717A00AR的8通道電容資料輸出情形,將其視為8位元資料進行測量。
Sigfox IoT 長距離低功耗通訊擴充模組
SIGFOX-GEVB:SIGFOX®擴充板用於示範AX-SFEU,這款超低功率、高效能的Sigfox
SoC針對IoT應用,提供上行線路和下行線路功能。AX-SFEU收發器使用邏輯準位RS232
UART進行連線,運用AT指令傳送訊框及設定無線電參數。
PoE Shield AC電力線乙太網路通訊擴充模組
POE-GEVB:電力線乙太網路擴充板具備NCP1083 HIPO™高功率乙太網路供電裝置(PoE-PD)。NCP1083結合了PoE-PD介面及彈性、可設定的DC-DC轉換器控制器,該介面經強化,可支援IEEE 802.3af及IEEE 802.3at (D3.0)標準。NCP1083同時支援AC電源變壓器和電池供電等輔助電力來源,可讓應用流暢地由非PoE網路轉換至PoE網路,無需另外使用開關電源。
CAN Shield CAN通訊擴充模組
CAN-GEVB:控制器區域網路驅動器擴充板用於示範NCV7342 CAN收發器。NCV7342扮演控制器區域網路(CAN)協定控制器和實體匯流排的通訊介面。NCV7342收發器為匯流排提供差分傳輸能力,並為CAN控制器提供差分接收能力。CAN-GEVB板也包括PCA9655E I/O埠擴展器IC,透過I²C匯流排與SMBus提供16位元一般用途平行輸入/輸出(GPIO)擴展。
Stepper Motor Shield 步進馬逹擴充控制板
D-STPR-GEVK:雙步進馬達驅動器擴充板用於示範AMIS-30543微步進馬達驅動器。AMIS-30543適用於汽車、工業、醫療與海洋環境的一般用途與雙極馬達應用。AMIS-30543具備單晶片穩壓器,可縮減機電整合步進應用的材料清單。
連接方式:
LED Ballast Shield 高功率雙LED調光控制板
D-LED-B-GEVK:雙LED驅動擴充板採用NCV78763電源安定器和雙LED驅動器。NCV78763單晶片驅動器適用於高電流LED。此驅動器提供完整的解決方案,可透過兩個內建的獨立降壓開關通道輸出,驅動雙燈條,電壓最高可達60V。由於具備SPI程式能力,單一硬體設定便能支援多重系統設定,實現彈性化的平台解決方案方法。
BLDC Shield無刷DC馬達控制器
BLDC-GEVK:BLDC無刷DC馬達驅動器擴充板採用LV8907無刷DC馬達控制器(BLDC)。LV8907為高效能、無感測器的三相BLDC,整合閘極驅動器,用於驅動外部N通道MOSFET。此裝置提供多樣化的系統保護與診斷功能,如過電流、過電壓、短路、低電壓、過熱等。LV8907 BLDC支援開放迴路及閉迴路速度控制,具備使用者可設定的啟動、速度設定及比例/積分(PI)控制係數,適合各種馬達和負載組合。
物聯網開發通訊協議及雲端平台架構
完整ARM
mbed IoT Develiopment Kit 開發套件架構
(一)安裝Java Runtime Environment (JRE)
下載JRE安裝包並安裝
(二)安裝Installing GNU GCC Toolchain
下載 BB−GEVK−SOFTWARE.zip並解壓縮後安裝,再執行 Gnutoolchain.exe 安裝程式。
(三)安裝 IoT IDK 開發環境軟體
- Windows 64 bit Java JRE:IDK_installer_x86_64.exe
- Windows 32 bit Java JRE:IDK_installer_x86.exe
(四)測試第一個範例
- 確認USB通訊埠COM Port:進入裝置管理員查詢COM Port是不是COM32. 設定COM Port 傳輸參數 : 115200 N 8 1。
3. 啟動IDK程式。
開啟第一個範例程式測試:Examples =>Simple => Baseboard LCD
4. 修改COM Port 為所取得USB驅動正確的COM3,並按儲存鍵。
5. 修改程式內容字串。
6. 執行編譯範例程式。
7. 執行燒錄程式程式。
8. 按下<Reset>鍵開始燒錄。
9.燒錄完成再按下<Reset>鍵,重新啟動開發板。
10. 執行結果。
原始程式
//
---------------------------------------------------------------------------------------
// 1. This is a sample LCD application
demonstrating displying of characters
// on LCD.
//
// 2. LCD is already mounted on the
baseboard.
//
// 3. For hardware and software
capabilities/limitations kindly refer the
// help page of LCD in IDE.
//
// 4. If the application has detailed
logs, it is advisable to check the
// serial console of the computer.
To open the serial console use the
// following settings,
// Baud rate: 115200
// Data bits: 8
// Stop bits: 1
// Parity: None
// Flow control: None
// The above settings has been
tested and verified on serial client putty.
//
// 5. If
idle while loop is used in the project, then it is recommended to use
// a wait of 1 second to allow other
threads/callbacks to run and get
// processed in time.
//
---------------------------------------------------------------------------------------
#include "mbed.h"
#include "Shields.h"
/*******************************************************************************
* CLASS INSTANCE DECLARATION
******************************************************************************/
NHD_C0216CZ lcd;
//initializing the serial console instance.
Serial pc(USBTX,USBRX);
int main()
{
int ret;
char display_string[] =
"================================";
lcd.init();
pc.printf("This is a LCD Demo.
Observe the LCD display on Base Board for Demo.\r\n");
lcd.displayString(display_string);
//wait
added to make displayed data persistent to human eyes.
wait(3);
//display the string to a specific position.
ret = lcd.displayStringToPos("MAKER PRO", 1, 4); //row = 1, column
= 6 of LCD.
if(ret != LCD_RET_SUCCESS){
return -1;
}
ret = lcd.displayStringToPos("by KODA", 2, 5); //row = 2, column = 6 of LCD.
if(ret != LCD_RET_SUCCESS){
return -1;
}
//wait added to make displayed data persistent to human eyes.
wait(2);
lcd.displayString("IoT DVK by WPI!\nON Semi IDK
Test");
wait(0.5);
lcd.displayString(" \n\n");
wait(0.5);
lcd.displayString("IoT DVK by WPI!\nON Semi IDK
Test");
wait(0.5);
lcd.displayString(" \n\n");
wait(0.5);
lcd.displayString("IoT DVK by WPI!\nON Semi IDK
Test");
wait(0.5);
lcd.displayString(" \n\n");
wait(0.5);
lcd.displayString("IoT DVK by WPI!\nON Semi IDK
Test");
return 0;
}
|
沒有留言:
張貼留言