設(shè)施建設(shè)中最偉大的創(chuàng)新之一是在工作現(xiàn)場(chǎng)需要前幾個(gè)月在工廠預(yù)制建筑組件的想法。它不僅可以在現(xiàn)場(chǎng)破土動(dòng)工后快速完成工作,還可以提高質(zhì)量。由于軟件開發(fā)框架(也稱為軟件開發(fā)工具包或 SDK),物聯(lián)網(wǎng)嵌入式設(shè)備的軟件開發(fā)可以利用類似的概念。要了解什么是 SDK,請(qǐng)考慮從頭開始購買木材來建造房屋。你必須砍伐樹木,在窯中烘干木材,然后將木材切割成可用的木材?;蛘吣梢栽L問木材場(chǎng),只需購買幾乎可以保證手頭任務(wù)近乎完美的規(guī)格木材。
Zerynth SDK
SDK 是一種軟件開發(fā),相當(dāng)于從木材場(chǎng)購買木材,而不是自己砍伐樹木。對(duì)于希望使用 Python 對(duì)物聯(lián)網(wǎng)設(shè)備進(jìn)行編程的嵌入式開發(fā)人員來說,一種 SDK 選項(xiàng)是 Zerynth 平臺(tái)。Zerynth 支持許多流行的 32 位微控制器架構(gòu),包括 SAMD21、ESP32、ESP8266 和 NRF52832 等。SDK 可安裝在 Windows、Mac OS 和 Linux 上。Zerynth SDK 由兩個(gè)主要組件組成:Zerynth 工具鏈和 Zerynth Studio 集成開發(fā)環(huán)境 (IDE)(圖 1)。
圖 1:Zerynth 集成開發(fā)環(huán)境允許 Python 開發(fā)人員為物聯(lián)網(wǎng)編寫、調(diào)試、管理和部署固件。(來源:綠鞋車庫)
Zerynth 工具鏈 (ZTC) 是命令行工具,作為 Zerynth 生態(tài)系統(tǒng)中固件開發(fā)、調(diào)試和設(shè)備管理的核心。Zerynth Studio 是位于 ZTC 命令行界面之上的圖形界面。它提供圖形代碼編輯器和調(diào)試器界面以及大量 Python 代碼示例,以幫助開始使用 Zerynth。IDE 的一個(gè)令人興奮的特性是支持所謂的虛擬設(shè)備,它允許開發(fā)人員開發(fā)和驗(yàn)證應(yīng)用程序代碼,而無需將物理設(shè)備連接到本地主機(jī)。代碼編輯器具有許多現(xiàn)代功能,包括語法突出顯示、自動(dòng)完成和智能片段。其他應(yīng)該讓開發(fā)人員滿意的功能包括對(duì) Git 存儲(chǔ)庫的內(nèi)置支持和內(nèi)置包管理器。開發(fā)者既可以訪問 Zerynth 提供的官方 Python 代碼庫,也可以訪問用戶社區(qū)提交的庫。利用經(jīng)過驗(yàn)證的可靠源代碼存儲(chǔ)庫的能力使開發(fā)人員能夠?qū)W⒂跒榭蛻籼峁┰鲋倒δ?,而不是浪費(fèi)時(shí)間在常用的 Python 代碼上重新發(fā)明輪子。Zerynth 生態(tài)系統(tǒng)的第二個(gè)主要組成部分 Zerynth 操作系統(tǒng) (OS) 進(jìn)一步增強(qiáng)了源代碼庫的力量。
操作系統(tǒng)
Zerynth OS 是一種多線程實(shí)時(shí)操作系統(tǒng) (RTOS),經(jīng)過調(diào)整可在內(nèi)存和存儲(chǔ)資源有限的各種 32 位微控制器架構(gòu)上運(yùn)行。它包含針對(duì)許多通信協(xié)議的高度定制的軟件堆棧,包括 Wi-Fi?、Bluetooth?和洛拉。它還提供安全和電源管理功能。為硬件和 RTOS 交互使用抽象層允許 Zerynth OS 高度獨(dú)立于底層微控制器平臺(tái)。Zerynth OS 的核心是 Zerynth 虛擬機(jī) (VM),它在任意數(shù)量的 RTOS 和硬件平臺(tái)之上運(yùn)行用戶編寫的 Python 腳本。開箱即用的 RTOS 包括 FreeRtos 和 CHIBIOS。通過使用所謂的 VM 操作系統(tǒng)抽象層 (VOSAL),開發(fā)人員可以創(chuàng)建在 Zerynth VM 上運(yùn)行的高性能應(yīng)用程序,這些應(yīng)用程序利用信號(hào)量和線程等操作系統(tǒng)級(jí)功能,而不管選擇的底層 RTOS 是什么。關(guān)于硬件抽象,Zerynth OS 提供了一種機(jī)制(VM 硬件抽象層或 VHAL)來與現(xiàn)代微控制器上的許多外設(shè)交互,例如中斷、GPIO、I2C、SPI、ADC、PWM 和 UART。VHAL 是為每個(gè)受支持的微控制器定制編寫的,它為前面提到的所有外設(shè)提供了一個(gè)單一的標(biāo)準(zhǔn)軟件接口。換句話說,只需編寫一次應(yīng)用程序 Python 代碼,它就可以在多個(gè)硬件平臺(tái)上運(yùn)行,只要設(shè)備具有板載外圍設(shè)備即可。
Zerynth 設(shè)備管理器
當(dāng)然,為物聯(lián)網(wǎng)設(shè)備開發(fā) Python 代碼只是成功的一半。最終,設(shè)備必須走出去并連接到互聯(lián)網(wǎng)才能執(zhí)行其預(yù)期目的。為了幫助實(shí)現(xiàn)與部署 IoT 設(shè)備相關(guān)的各種功能(例如,遠(yuǎn)程配置、組織、監(jiān)控和管理全球多個(gè)設(shè)備),Zerynth 設(shè)備管理器 (ZDM) 也提供給開發(fā)人員。通過 ZDM,設(shè)備可以安全地接入云端。還可以通過 ZDM 使用 REST API 來管理設(shè)備的整個(gè)生命周期,包括遠(yuǎn)程過程調(diào)用 (RPC) 和無線固件 (FOTA) 升級(jí)。ZDM 提供工具來聚合和存儲(chǔ)現(xiàn)場(chǎng)物聯(lián)網(wǎng)設(shè)備收集的數(shù)據(jù)。它還包括事件管理和警報(bào)機(jī)制以響應(yīng)接收到的原始數(shù)據(jù)。ZDM 可以用作基于云的服務(wù),也可以為那些具有獨(dú)特安全或業(yè)務(wù)需求的客戶現(xiàn)場(chǎng)安裝。但是,如果開發(fā)人員需要使用第三方云服務(wù)提供商(例如,Amazon Web Services、Microsoft Azure、Google Cloud Platform、Ubidots、The Things Network),只需更改其中的一行代碼即可Python 應(yīng)用程序,而不是完整的代碼重寫。
Python 和 Zerynth:程序員的力量
Python 是一種功能強(qiáng)大的編程語言,在傳統(tǒng)桌面應(yīng)用程序之外的用例中繼續(xù)受到關(guān)注。嵌入式電子產(chǎn)品(尤其是物聯(lián)網(wǎng)設(shè)備)的開發(fā)人員將從采用 Zerynth 等軟件開發(fā)框架中獲益匪淺??蚣艽_保一致性,甚至有助于提高性能、能源管理和安全性。當(dāng)與 Python 語言的獨(dú)特性和功能相結(jié)合時(shí),框架使開發(fā)人員能夠通過消除繁重的工作來構(gòu)建最高質(zhì)量的嵌入式系統(tǒng),為重復(fù)性任務(wù)提供經(jīng)過驗(yàn)證的源代碼庫,并免費(fèi)提供資源以專注于面向客戶的功能。
審核編輯黃昊宇
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2911文章
44840瀏覽量
375253 -
python
+關(guān)注
關(guān)注
56文章
4802瀏覽量
84885
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論