作者簡介
程晨,科技作家,創(chuàng)客布道師。編著翻譯出版人工智能、物聯(lián)網(wǎng)、鴻蒙應(yīng)用、3D打印、機(jī)器人領(lǐng)域相關(guān)圖書數(shù)十余本,《掌控Python》系列圖書作者,Minecraft我的世界系列圖書作者,《無線電》、《愛上機(jī)器人》雜志特約作者,出版國內(nèi)第一本Arduino、第一本Intel Edison、第一本Mixly圖書。
2015 Intel軟件創(chuàng)新大使
2017ELF全球杰出教育領(lǐng)袖
2019年Arduino官方認(rèn)證推廣大使。
CIE青少年機(jī)器人技術(shù)等級(jí)考試標(biāo)準(zhǔn)工作組副組長,CIE青少年軟件編程等級(jí)考試標(biāo)準(zhǔn)工作組副組長,編程、機(jī)器人多個(gè)團(tuán)體標(biāo)準(zhǔn)主要起草人。
中國下一代教育基金會(huì)實(shí)踐與創(chuàng)新工程專家委員會(huì)專家。
中國最大Python教師社區(qū)聯(lián)合發(fā)起人。
最早的編程形式應(yīng)該算是打孔紙帶了,之后伴隨著中央處理單元出現(xiàn)了匯編語言。匯編語言在大學(xué)里,仍然是計(jì)算機(jī)課程中主要的編程語言之一。匯編語言只是將機(jī)器碼做了簡單編譯,所以匯編語言編寫的代碼都不是太復(fù)雜,而且推廣和移植都很難。隨者操作系統(tǒng)的出現(xiàn)和發(fā)展,C語言得到廣泛的普及。POSIX api和各種庫的推出,大大改善了C語言和Linux操作系統(tǒng)的流行。Java虛擬機(jī)的跨平臺(tái)特性,把面向?qū)ο蟮木幊趟枷肱c計(jì)算機(jī)解耦,軟件工程正式邁向高光時(shí)刻。云計(jì)算和容器的普及,大大簡化了應(yīng)用和服務(wù)的交付,go語言也因此受到歡迎。開發(fā)模式隨著信息科技的發(fā)展和新的編程語言出現(xiàn),不斷向更高級(jí)邁進(jìn),云原生、低代碼已經(jīng)成為炙手可熱的新方向。我一直在思考一個(gè)問題,在一個(gè)即將到來的云端一體萬物互聯(lián)的時(shí)代,應(yīng)用開發(fā)是不是會(huì)呈現(xiàn)出一種新的形式,一種更方便、更友好的形式?

圖1:開發(fā)語言和模式得變遷
隨著互聯(lián)網(wǎng)技術(shù)以及嵌入式技術(shù)(包括人工智能與邊緣計(jì)算技術(shù))的發(fā)展,我們正在創(chuàng)建一個(gè)萬物互聯(lián)的世界,這個(gè)世界最大的特征就是實(shí)現(xiàn)了人與機(jī)器或者機(jī)器與機(jī)器之間的信息交流。
而作為全球最著名的開源硬件Arduino,其實(shí)一直都在為這樣的一個(gè)世界布局。很多人知道Arduino可能都是從其最經(jīng)典的Arduino Uno開始的,雖然這塊基于AVR 8位單片機(jī)的控制板簡單易用,但顯然這個(gè)級(jí)別的控制板是無法承載整個(gè)IoT的應(yīng)用場景的。因此幾年前,Arduino就推出了Arduino Pro這個(gè)相對獨(dú)立的品牌(Pro的意思是專業(yè),目前從產(chǎn)品上來說沒有明確的劃分,這個(gè)品牌更像是應(yīng)用領(lǐng)域的不同)。Arduino希望通過Arduino Pro能夠在一個(gè)簡單的物聯(lián)網(wǎng)框架下快速、安全的將遠(yuǎn)程的傳感器以及執(zhí)行機(jī)構(gòu)連接到自己的業(yè)務(wù)邏輯系統(tǒng)中,以少量的代碼實(shí)現(xiàn)基于物聯(lián)網(wǎng)應(yīng)用開發(fā)平臺(tái),進(jìn)一步的讓企業(yè)通過簡單、現(xiàn)實(shí)、可量化的步驟實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型。

圖2:Arduino Pro
具體來說,Arduino Pro又分為IoT云、性能強(qiáng)大的核心控制板以及具有IoT特性的終端控制板這三個(gè)層面(大體上對應(yīng)IoT的應(yīng)用層、網(wǎng)絡(luò)層和終端層)。Arduino的云端服務(wù)Arduino IoT Cloud是一種可視化的創(chuàng)建云和設(shè)備軟件的平臺(tái),這個(gè)平臺(tái)可以設(shè)定網(wǎng)絡(luò)觸發(fā)事件。開源的Arduino平臺(tái)上提供了很多的示例代碼可將你的設(shè)備直接連接到Amazon Web Services (AWS)、Google Cloud Platform (GCP) 或 Microsoft Azure 的 IoT服務(wù)。另外,對于定制化的需求,用戶還可以利用包括HTTP、MQTT、X.509和JSON在內(nèi)的Arduino庫將設(shè)備連接到自己喜歡的網(wǎng)絡(luò)服務(wù)中。
具有IoT特性的終端控制板其實(shí)是利用了Arduino本身的優(yōu)勢,通過添加帶有RS-485、CAN總線、藍(lán)牙或以太網(wǎng)功能的Arduino擴(kuò)展板,可以很方便的將Arduino Uno這樣的控制板改造為物聯(lián)網(wǎng)終端(還要依靠豐富的示例代碼)。這些終端有著豐富的傳感器和代碼庫。同時(shí),對于終端控制板來說,Arduino也陸陸續(xù)續(xù)推出了32位ARM處理器的Nano系列,以及專門針對IoT的MKR系列。這些產(chǎn)品的性能都明顯優(yōu)于Arduino Uno,甚至可以在控制板上運(yùn)行人工智能算法 (TinyML)。MKR系列則是充分考慮了聯(lián)網(wǎng)與低功耗的問題,從WiFi到GSM,從LoRA到窄帶物聯(lián)網(wǎng)等等。并提供LiPO電池充電電路以及方便處理器進(jìn)入“低功耗”模式的軟件庫。

圖3: Arduino MKR WiFi 1010
而對于性能強(qiáng)大的核心控制板這塊,Arduino更是推出了Portenta系列,這個(gè)系列專為希望構(gòu)建工業(yè)級(jí)項(xiàng)目的專業(yè)用戶而設(shè)計(jì)。在CES 2020上,Arduino推出了這個(gè)家族的第一個(gè)成員是Arduino Portenta H7控制板,該控制板配備雙核處理器,一個(gè)工作在480MHz的Arm Cortex-M7和一個(gè)工作在240MHz的Arm Cortex-M4。Portenta H7能夠運(yùn)行Arduino代碼、Python和JavaScript,允許運(yùn)行更復(fù)雜的軟件,包括計(jì)算機(jī)視覺和其他需要微控制器長時(shí)間大量計(jì)算能力的任務(wù)。Portenta H7可以輕松地運(yùn)行用TensorFlow Lite創(chuàng)建的進(jìn)程,我們可以讓其中一個(gè)核動(dòng)態(tài)地計(jì)算計(jì)算機(jī)視覺算法,而另一個(gè)核可以進(jìn)行類似于控制電機(jī)或顯示用戶界面這樣的底層操作。
圖4: Arduino Portenta H7
就在前幾天,Arduino在Portenta系列中又推出了一款新的產(chǎn)品,9核的Arduino Portenta X8,這又是一款革命性的控制板,甚至可能會(huì)改變?nèi)f物互聯(lián)場景下開發(fā)的形式。Arduino Portenta X8是一種即插即用的工業(yè)級(jí)SOM,具有四核的NXP i.MX 8M Mini Cortex -A53,每核高達(dá) 1.8GHz ,一個(gè)Cortex -M4,高達(dá)400MHz,加上雙核的STM32H747AII6 Cortex -M7/M4,一個(gè)Cortex -M7,高達(dá)480Mhz ,和一個(gè)Cortex -M4,高達(dá) 240Mhz,并且由于其模塊化容器架構(gòu),能夠運(yùn)行獨(dú)立于設(shè)備的軟件。預(yù)裝Linux操作系統(tǒng)(Arduino Portenta H7預(yù)裝的是Arm Mbed操作系統(tǒng))以及docker容器,docker對系統(tǒng)資源的利用率更高,無論是應(yīng)用執(zhí)行速度,內(nèi)存損耗或者文件存儲(chǔ)速度,都要比傳統(tǒng)虛擬機(jī)技術(shù)更高效。同時(shí)docker容器應(yīng)用,由于直接運(yùn)行于宿主內(nèi)核,無需啟動(dòng)完整的操作系統(tǒng),因此可以做到秒級(jí),甚至毫秒級(jí)的啟動(dòng)時(shí)間。這相比傳統(tǒng)的虛擬機(jī)方式要快很多。Arduino Portenta X8的性能非常強(qiáng)大,具有邊緣AI和ML功能,這讓我們在開展類似于工業(yè)4.0、智能農(nóng)業(yè),智能家居、智能建筑等應(yīng)用的時(shí)候,可以快速的完成原型開發(fā)。
圖5: Arduino Portenta X8
Arduino Portenta X8可以看成是一臺(tái)微型電腦加上一個(gè)Arduino Portenta H7,微型電腦上預(yù)裝的Linux操作系統(tǒng)中還安裝了Python,這樣在模塊化docker容器架構(gòu)中就可以直接運(yùn)行Python了。另一方面,Arduino程序是運(yùn)行在STM32H747微控制器上的,這樣實(shí)際上Python程序和Arduino程序是獨(dú)立運(yùn)行的,兩者的通信是通過之間的SPI總線實(shí)現(xiàn)的,如圖5所示。

圖6: Arduino Portenta X8上Python程序和Arduino程序之間的通信
另外,針對Portenta系列,Arduino這次還推出了一個(gè)Carrier(功能底板)——Portenta Max Carrier,這塊功能底板有多種連接器,包含兩個(gè)USB A型端口、一個(gè)網(wǎng)口、一個(gè)FD-CAN總線的RJ11端口、一個(gè) mini-PCI Express (mPCIe) 插槽、一個(gè)帶RS232/433/485總線的RJ12端口、立體聲音頻輸入和輸出以及專用麥克風(fēng)輸入、外部揚(yáng)聲器連接器和用于存儲(chǔ)擴(kuò)展的microSD 插槽。調(diào)試方面,有一個(gè)板載 JLink OB/Blackmagic探頭。供電方面,Max Carrier 可以通過外部電源 (6-36V) 或板載18650鋰電池供電。另外,還預(yù)裝了兩個(gè)無線通信模塊:提供的LoRa連接的Murata CMWX1ZZABZ-078,和處理Cat M.1和NB-IoT蜂窩連接的u-blox SARA-R412M-02B。
圖7:Portenta Max Carrier
通過這個(gè)功能底板,應(yīng)該能夠盡快的將Arduino Portenta H7或Arduino Portenta X8應(yīng)用到你的項(xiàng)目中。
隨著云、機(jī)器學(xué)習(xí)和容器在云計(jì)算廣泛應(yīng)用,我們能看到一種新的開發(fā)模式呼之欲出,它通過云將多方的軟硬件整合在一起,能夠借助tinyML、輕量級(jí)容器讓機(jī)器人應(yīng)用快速在各種各樣的邊緣計(jì)算場景快速部署。Arduino和樹莓派等開源硬件,正在不斷不斷推進(jìn)開發(fā)模式演化。相信可能要不了多久,我們就能夠基于這樣得開源硬件,更加快速地開發(fā)機(jī)器人應(yīng)用。
原文標(biāo)題:Arduino Portenta X8新開發(fā)模式支持Docker
文章出處:【微信公眾號(hào):Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
連接器
+關(guān)注
關(guān)注
106文章
16415瀏覽量
147968 -
python
+關(guān)注
關(guān)注
58文章
4889瀏覽量
90343 -
Arduino
+關(guān)注
關(guān)注
190文章
6527瀏覽量
197529
原文標(biāo)題:Arduino Portenta X8新開發(fā)模式支持Docker
文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
如何在Arduino程序中引用接地引腳以允許Arduino程序和手表之間進(jìn)行通信?
Arduino板是什么如何使用IDE軟件創(chuàng)建和上傳Arduino程序到Arduino板
Arduino進(jìn)行端口通信的實(shí)例程序免費(fèi)下載
怎樣使用PySerial接口Python和Arduino
用于工業(yè)應(yīng)用的Arduino Portenta
Arduino Nano 33 BLE與Web應(yīng)用程序通信
為Arduino Portenta定制的主機(jī)板
使用Arduino Yun與移動(dòng)應(yīng)用程序進(jìn)行通信
ArduPy:當(dāng)Arduino遇見Python
如何將Arduino MKR和Portenta安裝到機(jī)柜中
Arduino Portenta H7雙核調(diào)試
如何使用Python和PinPong庫控制Arduino
CES 2025上的板卡 Arduino Portenta 原型套件
Arduino Portenta X8上Python程序和Arduino程序之間的通信
評(píng)論