微軟物聯網解決方案-Windows IoT Core

Windows IoT Core 作爲微軟物聯網解決方案中前端核心產品,經過幾年的發展,取得了很大的進步,雖然仍然有一些BUG,但是從2015年以來,已經取得了長足的進步,況且目前還是免費的,還能奢望什麼呢。自從成爲Windows IoT Core的技術支持以來,看到了很多人對微軟產品的抱怨,一個歪果友人說自從1998年以來,再也不用微軟的產品了,不知道他是被微軟傷了有多深,也有人說在Windows IoT Core上遇到一個問題糾結了一個月,頭髮都掉光了的。不過從一個技術支持的角度講,問題是不可避免的,否則我就要下崗換搬磚了。下面我就簡單的講講如何在Windows IoT Core上進行開發。

一、支持的開發板

Windows IoT Core支持樹莓派、MinnowBoard、DragonBoard,這三個板子是微軟官方推薦的,當然實際是不止這三個板子。其中MinnowBoard是使用的Intel x86的芯片,其他兩個都是高通的ARM芯片。通常情況下會選擇樹莓派,畢竟便宜,今年年初發布了Raspberry PI 3B+,其實就是主頻提高了,外圍沒有改變,但是不幸的是,Windows IoT Core目前只有一個Insider Preview版本來支持3B+,而且還不能使用內置的WiFi和藍牙,微軟還沒有Schedule來支持3B+。所以目前還是建議使用3B。另外,微軟提供了Windows IoT Core兼容的外設,可以看這個兼容性列表。在新版本(16299以後)的Windows IoT Core,對於已經樹莓派不支持遠程助手Windows Remote Client,只能通過接顯示屏來操作,而仍然支持其他兩個板子,其中原因可能是樹莓派的GPU太弱,而微軟不願意去花精力解決系統和GPU的問題。當然一般情況下使用Device Portal就可以進行遠程的設備維護,還可以使用PowerShell進行連接。配套的工具還有Windows IoT Dashboard,可以使用這個工具查看局域網內的所有設備。當然遇到最多的問題是燒寫系統後,板子起不來,但是燒Raspbian系統正常啓動,這個問題目前沒有好的解決方法,無非就是換SD卡或者換板子,如果你足夠不幸而且家裏有礦,那就全換一遍。微軟雖然推薦了兩個Class 10的SD卡,但是很多人還是燒寫後無法啓動,甚至有人說用非推薦的SD卡反而啓動快,我不是土豪,沒有那麼多卡來試。

二、支持的應用

Windows IoT Core本身是基於Windows 10的精簡內核,原則上是支持Windows 10的應用,但實際上仍然有很大的差別,Windows IoT Core上沒有Microsoft Store,所以不能通過Microsoft Store安裝一些應用程序,可以使用Visual Studio進行遠程部署,或者打包後進行安裝。Windows IoT Core運行的應用有兩個模式,一個是Headed模式,一個是Headless模式。Headed模式是用於有UI界面的APP,在這個模式下只能有一個APP在Active狀態,UI爲全屏顯示,而Headless用於無UI的Background應用的。具有UI的APP其實就是微軟現在主推的UWP(其實是對WPF的升級),順便說一下個人對UWP的感悟,在做UI上UWP絕對算的上一流的思想和一流的技術,可以很輕鬆的構建炫酷的APP,有內置的一些動畫效果。當然Windows IoT Core 也能運行C++的控制檯程序,不過這只能在command命令裏面執行。Windows IoT Core對系統的Service和Driver很封閉,你甚至無法查看驅動的版本信息,除非你取下SD卡找到inf文件。

前端時間研究了OpenCV在Windows IoT Core上的支持,目前微軟整合好了一個Visual Studio 2015可以編譯的Solution,但是要自己折騰Visual Studio 2017和OpenCV 3.4,還是省省力氣吧,會很麻煩。最好的解決方案是使用Windows Runtime Component(C++),在組件裏面使用nuget安裝opencv,然後作爲Bridge,把該工程作爲引用添加到你的C# Project裏面,也是很方便的。可以參考這個例子

Windows IoT Core對於不熟悉驅動、傳感器硬件的開發者來說,其實入門要比較低,本身.Net的開發就比較容易入手。Windows IoT Core讀寫GPIO、串口、SPI、I2C都變得很容易,微軟也提供了大量的Sample,還有一些非常有用的例子放在了UWP的REPO裏面,請參考這裏。當然在hackr.io也有不少微軟大神寫的Solution,有人臉識別門禁的Demo等等,非常有價值。

三、系統定製化

Windows IoT Core系統定製化其實還是比較方便的,對於OEM來說很重要,微軟提供了比較全面的文檔介紹如何定製自己的系統,請查看這個嚮導。在這裏我主要提醒的是,在Build自己的Image的時候,WDK、WSDK、BSP以及你使用的PC操作系統,一定要保持版本一致(到小版本也要一致),否則編譯會出現很多的問題。系統定製,可以添加自己的驅動程序(甚至有的PC上的驅動可以移植到Windows Io Core,但不保證能成功)、自己的應用程序、有選擇的使用系統的特性(Feature List)或配置(config.txt中存有很多系統啓動時的配置)。如果是使用DragonBoard 410C,雖然高通在官網上發佈了一個手冊來指導如何編譯,但實際上該文檔是過時的,是適配以前的Windows Mobile的(可惜Mobile部門以及被微軟砍掉了)。其實對於企業,Window IoT Core有Enterprise版本,Window IoT Core Enterprise幾乎和Windows 10一樣,當然這也只是微軟自己說的,不一樣的地方他沒有說,至少收費這一點就不一樣。微軟一個大神叫Sean Liming寫了一本書《Starter Guide Windows 10 IoT Enterprise》,該作者在MSDN上也做過很多是技術支持,大家可以去拜讀這本書。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章