作者簡介
程晨,科技作家,創客布道師。編著翻譯出版人工智能、物聯網、鴻蒙應用、3D打印、機器人領域相關圖書數十余本,《掌控Python》系列圖書作者,Minecraft我的世界系列圖書作者,《無線電》、《愛上機器人》雜志特約作者,出版國內第一本Arduino、第一本Intel Edison、第一本Mixly圖書。
2015 Intel軟件創新大使
2017ELF全球杰出教育領袖
2019年Arduino官方認證推廣大使。
CIE青少年機器人技術等級考試標準工作組副組長,CIE青少年軟件編程等級考試標準工作組副組長,編程、機器人多個團體標準主要起草人。
中國下一代教育基金會實踐與創新工程專家委員會專家。
中國最大Python教師社區聯合發起人。
最早的編程形式應該算是打孔紙帶了,之后伴隨著中央處理單元出現了匯編語言。匯編語言在大學里,仍然是計算機課程中主要的編程語言之一。匯編語言只是將機器碼做了簡單編譯,所以匯編語言編寫的代碼都不是太復雜,而且推廣和移植都很難。隨者操作系統的出現和發展,C語言得到廣泛的普及。POSIX api和各種庫的推出,大大改善了C語言和Linux操作系統的流行。Java虛擬機的跨平臺特性,把面向對象的編程思想與計算機解耦,軟件工程正式邁向高光時刻。云計算和容器的普及,大大簡化了應用和服務的交付,go語言也因此受到歡迎。開發模式隨著信息科技的發展和新的編程語言出現,不斷向更高級邁進,云原生、低代碼已經成為炙手可熱的新方向。我一直在思考一個問題,在一個即將到來的云端一體萬物互聯的時代,應用開發是不是會呈現出一種新的形式,一種更方便、更友好的形式?
圖1:開發語言和模式得變遷
隨著互聯網技術以及嵌入式技術(包括人工智能與邊緣計算技術)的發展,我們正在創建一個萬物互聯的世界,這個世界最大的特征就是實現了人與機器或者機器與機器之間的信息交流。
而作為全球最著名的開源硬件Arduino,其實一直都在為這樣的一個世界布局。很多人知道Arduino可能都是從其最經典的Arduino Uno開始的,雖然這塊基于AVR 8位單片機的控制板簡單易用,但顯然這個級別的控制板是無法承載整個IoT的應用場景的。因此幾年前,Arduino就推出了Arduino Pro這個相對獨立的品牌(Pro的意思是專業,目前從產品上來說沒有明確的劃分,這個品牌更像是應用領域的不同)。Arduino希望通過Arduino Pro能夠在一個簡單的物聯網框架下快速、安全的將遠程的傳感器以及執行機構連接到自己的業務邏輯系統中,以少量的代碼實現基于物聯網應用開發平臺,進一步的讓企業通過簡單、現實、可量化的步驟實現數字化轉型。
圖2:Arduino Pro
具體來說,Arduino Pro又分為IoT云、性能強大的核心控制板以及具有IoT特性的終端控制板這三個層面(大體上對應IoT的應用層、網絡層和終端層)。Arduino的云端服務Arduino IoT Cloud是一種可視化的創建云和設備軟件的平臺,這個平臺可以設定網絡觸發事件。開源的Arduino平臺上提供了很多的示例代碼可將你的設備直接連接到Amazon Web Services (AWS)、Google Cloud Platform (GCP) 或 Microsoft Azure 的 IoT服務。另外,對于定制化的需求,用戶還可以利用包括HTTP、MQTT、X.509和JSON在內的Arduino庫將設備連接到自己喜歡的網絡服務中。
具有IoT特性的終端控制板其實是利用了Arduino本身的優勢,通過添加帶有RS-485、CAN總線、藍牙或以太網功能的Arduino擴展板,可以很方便的將Arduino Uno這樣的控制板改造為物聯網終端(還要依靠豐富的示例代碼)。這些終端有著豐富的傳感器和代碼庫。同時,對于終端控制板來說,Arduino也陸陸續續推出了32位ARM處理器的Nano系列,以及專門針對IoT的MKR系列。這些產品的性能都明顯優于Arduino Uno,甚至可以在控制板上運行人工智能算法 (TinyML)。MKR系列則是充分考慮了聯網與低功耗的問題,從WiFi到GSM,從LoRA到窄帶物聯網等等。并提供LiPO電池充電電路以及方便處理器進入“低功耗”模式的軟件庫。
圖3: Arduino MKR WiFi 1010
而對于性能強大的核心控制板這塊,Arduino更是推出了Portenta系列,這個系列專為希望構建工業級項目的專業用戶而設計。在CES 2020上,Arduino推出了這個家族的第一個成員是Arduino Portenta H7控制板,該控制板配備雙核處理器,一個工作在480MHz的Arm Cortex-M7和一個工作在240MHz的Arm Cortex-M4。Portenta H7能夠運行Arduino代碼、Python和JavaScript,允許運行更復雜的軟件,包括計算機視覺和其他需要微控制器長時間大量計算能力的任務。Portenta H7可以輕松地運行用TensorFlow Lite創建的進程,我們可以讓其中一個核動態地計算計算機視覺算法,而另一個核可以進行類似于控制電機或顯示用戶界面這樣的底層操作。
圖4: Arduino Portenta H7
就在前幾天,Arduino在Portenta系列中又推出了一款新的產品,9核的Arduino Portenta X8,這又是一款革命性的控制板,甚至可能會改變萬物互聯場景下開發的形式。Arduino Portenta X8是一種即插即用的工業級SOM,具有四核的NXP i.MX 8M Mini Cortex -A53,每核高達 1.8GHz ,一個Cortex -M4,高達400MHz,加上雙核的STM32H747AII6 Cortex -M7/M4,一個Cortex -M7,高達480Mhz ,和一個Cortex -M4,高達 240Mhz,并且由于其模塊化容器架構,能夠運行獨立于設備的軟件。預裝Linux操作系統(Arduino Portenta H7預裝的是Arm Mbed操作系統)以及docker容器,docker對系統資源的利用率更高,無論是應用執行速度,內存損耗或者文件存儲速度,都要比傳統虛擬機技術更高效。同時docker容器應用,由于直接運行于宿主內核,無需啟動完整的操作系統,因此可以做到秒級,甚至毫秒級的啟動時間。這相比傳統的虛擬機方式要快很多。Arduino Portenta X8的性能非常強大,具有邊緣AI和ML功能,這讓我們在開展類似于工業4.0、智能農業,智能家居、智能建筑等應用的時候,可以快速的完成原型開發。
圖5: Arduino Portenta X8
Arduino Portenta X8可以看成是一臺微型電腦加上一個Arduino Portenta H7,微型電腦上預裝的Linux操作系統中還安裝了Python,這樣在模塊化docker容器架構中就可以直接運行Python了。另一方面,Arduino程序是運行在STM32H747微控制器上的,這樣實際上Python程序和Arduino程序是獨立運行的,兩者的通信是通過之間的SPI總線實現的,如圖5所示。
圖6: Arduino Portenta X8上Python程序和Arduino程序之間的通信
另外,針對Portenta系列,Arduino這次還推出了一個Carrier(功能底板)——Portenta Max Carrier,這塊功能底板有多種連接器,包含兩個USB A型端口、一個網口、一個FD-CAN總線的RJ11端口、一個 mini-PCI Express (mPCIe) 插槽、一個帶RS232/433/485總線的RJ12端口、立體聲音頻輸入和輸出以及專用麥克風輸入、外部揚聲器連接器和用于存儲擴展的microSD 插槽。調試方面,有一個板載 JLink OB/Blackmagic探頭。供電方面,Max Carrier 可以通過外部電源 (6-36V) 或板載18650鋰電池供電。另外,還預裝了兩個無線通信模塊:提供的LoRa連接的Murata CMWX1ZZABZ-078,和處理Cat M.1和NB-IoT蜂窩連接的u-blox SARA-R412M-02B。
圖7:Portenta Max Carrier
通過這個功能底板,應該能夠盡快的將Arduino Portenta H7或Arduino Portenta X8應用到你的項目中。
隨著云、機器學習和容器在云計算廣泛應用,我們能看到一種新的開發模式呼之欲出,它通過云將多方的軟硬件整合在一起,能夠借助tinyML、輕量級容器讓機器人應用快速在各種各樣的邊緣計算場景快速部署。Arduino和樹莓派等開源硬件,正在不斷不斷推進開發模式演化。相信可能要不了多久,我們就能夠基于這樣得開源硬件,更加快速地開發機器人應用。
原文標題:Arduino Portenta X8新開發模式支持Docker
文章出處:【微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。
-
連接器
+關注
關注
98文章
14649瀏覽量
137011 -
python
+關注
關注
56文章
4807瀏覽量
84938 -
Arduino
+關注
關注
188文章
6477瀏覽量
187571
原文標題:Arduino Portenta X8新開發模式支持Docker
文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論