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