python學習交互模式 micropython是用python寫的嗎?
micropython是用python寫的嗎?MicroPython本來是為嵌入式微處理器設計運行的,比如也可以在nRF51822 (256kB flash 16kB RAM)的芯片上運行,也有人慌慌
micropython是用python寫的嗎?
MicroPython本來是為嵌入式微處理器設計運行的,比如也可以在nRF51822 (256kB flash 16kB RAM)的芯片上運行,也有人慌慌張張在STM32F103上運行。拜托,從代碼的角度來說,Python函數(shù)棧的官方默認是16K RAM,也就是說它可以在很多微芯片上提供一個極小的Python代碼交互環(huán)境,但這并不包括它們的擴展函數(shù)。畢竟編譯更多的功能代碼意味著。需要更多的閃存或外部存儲。
高度和寬度
根據(jù)定位場景,我們可以看到MicroPython在硬件深度上可以走向超低功耗芯片開發(fā)領域,Python語言的開發(fā)模式?jīng)Q定了它的軟件寬度,在全世界流行的Python領域都可以借鑒。參考一下,這帶來了很多改變,比如改變了以前的硬件測試流程和開發(fā)流程,改變了硬件程序開發(fā)難的刻板印象,后面會詳細介紹。
Arduino(C)
基于c代碼的設計
它的優(yōu)勢是兼容C,可以無縫訪問ESP-IDF。
大量的遺留代碼庫可以直接集成使用。
近年來外設硬件庫質(zhì)量大打折扣,導致硬件開發(fā)后缺乏穩(wěn)定性。
Java description language
常見于Ruff lite、JerryScript等。
一個新的東西,類似于MicroPython的結(jié)構(gòu)。
支持JS異步驅(qū)動事件模型要求芯片必須有系統(tǒng)(RTOS)。
在硬件上使用瀏覽器開發(fā)方法。
硬件驅(qū)動相關(guān)的支持庫比較薄弱,所以基于它深耕硬件接口的開發(fā)者并不多。
相關(guān)開發(fā)資料和代碼不夠穩(wěn)定。
Left upper arm
與MicroPython和JerryScript相比,它的可移植性更簡單。
如倉庫:
但因為lua是小眾語言,所以地位和bat、bash差不多。
所以它在開發(fā)和應用領域不是很受歡迎,但作為一個自動化腳本工具,它仍然很棒。
基本沒有周邊相關(guān)的開發(fā)資料,了解lua的大多是自戀的,比如我(大概)。
ESPEasy
大概是一個開發(fā)環(huán)境,類似于路由器系統(tǒng)(openwrt)。
It 除了好玩之外,它一無是處。
像這樣的固件還有很多,所以我贏了。;這里就不舉例了。
esp-idf
硬件開發(fā)芯片廠商一般提供SDK,esp32提供的多為esp-idf、esp-adf、esp-mdf等等,對應的stm32 hal或CC25XX棧為原生。c代碼SDK。
上述開發(fā)環(huán)境是基于這種持續(xù)開發(fā)所獲得的產(chǎn)品。
在上述對各種開發(fā)環(huán)境的初步了解之后,讓 下面我們來比較一下MicroPython的優(yōu)缺點。
Advantages and disadvantages of microfilaments
不難看出,MicroPython和Python一樣,發(fā)揮了glue語言的優(yōu)勢,最大限度地兼容并保持了各自的優(yōu)勢,減少了劣勢。
在動態(tài)語言大戰(zhàn)中,MicroPython保持了面向進程、對象、節(jié)和函數(shù)的編程語法,豐富的開發(fā)帶來了代碼開發(fā)的廣度。另一方面,lua從語法上砍掉了很多開發(fā)中常用的語法糖,大大削減了代碼量。從開箱即用的角度來看,MicroPython迎合了大多數(shù)開發(fā)者的拿來主義(我?)。
與JavaScript相比,Python沒有。;在性能上沒有太多優(yōu)勢。唯一的優(yōu)勢是Js s編程思維很長一段時間不適合面向過程領域的C語言硬件編程,比如串口收發(fā)機。在Js中,在基于的異步事件綁定模型下,需要設置一些回調(diào)函數(shù)等待處理。在MicroPython中,通過多線程可以實現(xiàn)Js效果,但是通過While無限循環(huán)輪詢或者不使用多線程的非阻塞狀態(tài)機也可以實現(xiàn)同樣的功能。后者 s無限循環(huán)是嵌入式c中常見的編程習慣,然而在JS的硬件編程中,如果一個函數(shù)出現(xiàn)無限循環(huán),那真的是災難,所有后臺線程都可以 t run,但是無限循環(huán)的開發(fā)確實不好,建議多開發(fā)硬件。編寫異步驅(qū)動程序代碼或狀態(tài)機代碼來提高IO性能。
所以在眾多動態(tài)語言中,MicroPython與C語言的兼容性最好,在編程中也是如此。同時,向后兼容語言吸收了優(yōu)秀上層代碼的精華,尤其是異常機制和動態(tài)類型。
此時,與C或C語言相比,MicroPython犧牲了部分執(zhí)行性能,返回C的每段Python代碼平均執(zhí)行函數(shù)操作增加了5 us左右,這是我寫軟串口時發(fā)現(xiàn)的,但也帶來了解釋器連接。通過動態(tài)調(diào)整執(zhí)行接口的參數(shù),加速了硬件程序的驗證和開發(fā)。
在硬件程序的主控開發(fā)中,我們經(jīng)常會面臨大量的硬件API通信調(diào)試,就像在網(wǎng)絡服務中調(diào)試HTTP API,在硬件中控制UART、I2C、SPI、RS485、CAN等從設備,使得用Micropthon開發(fā)驗證比用C和Arduino快。畢竟他們每次編譯2分鐘,運行10秒,而Micropthon燒2分鐘,然后每5秒運行一次。反復操作,這也得益于MicroPython的硬件外設驅(qū)動開發(fā)相當可靠穩(wěn)定(其實也是ESP-IDF穩(wěn)定可靠XD的原因)。
所以我可以在幾個小時內(nèi)調(diào)試別人花一天調(diào)試的硬件接口,尤其是多機協(xié)議的重復測試接口,比如Modbus readaddr或者這種接口。當然,上面提到的開發(fā)甚至是封裝成AT指令的接口。模式也可以,但是更復雜的后續(xù)邏輯操作可以在Python解釋器的基礎上編寫,而不是調(diào)試AT固件的指定接口形式。
總而言之,MicroPython s硬件開發(fā)狀態(tài)處于硬件開發(fā)的初步驗證和原始開發(fā)階段,后期大部分會轉(zhuǎn)回C。在軟件領域,有大量的邏輯樣本代碼供硬件開發(fā)調(diào)用和測試,對于硬件開發(fā)人員來說會收獲更多。多控硬件的方讓軟件人員更容易配合硬件人員開發(fā)調(diào)試硬件。
標簽
Python如何畫出交互式漏斗圖?
pyecharts中的漏斗功能可以繪制漏斗圖,根據(jù)數(shù)據(jù)大小自動生成自上而下排列的漏斗狀圖形。
工具/原材料pythonpyecharts方法/步驟導入到漏斗模塊。
Import funnel from pyecharts
初始化圖形參數(shù)。
Funnel funnel (funnel diagram