1. gzyueqian
      13352868059

      嵌入式開發:用MicroPython設計嵌入式系統的利弊

      更新時間: 2022-03-18 10:52:34來源: 粵嵌教育瀏覽量:10478

        長期以來,C/C++編程語言一直主導著嵌入式開發系統行業,很少有其他語言能夠站穩腳跟。雖然Java和Ada等語言已經嘗試過了,但Python這種語言的普及率不僅在上升,而且在相當長的一段時間內已經進入了基于Linux的應用程序。不過,在微控制器上使用的Python似乎從來都不符合要求,直到設計用于微控制器的Python 3.0端口MicroPython出現,它越來越受歡迎,勢頭也越來越強勁,這可能使它成為你設計下一個產品時使用的編程語言。


        讓我們分析一下使用MicroPython的一些優點和缺點:


        Python語言編程特性


        Python編程語言的學習曲線很短,這使得開發人員非常容易開始使用它。Python為開發人員提供了一種高級編程語言,可以用來構建簡單的腳本,也可以用來開發復雜的面向對象體系結構,這些體系結構使用了現代軟件項目的所有最佳實踐。與C相比,Python還提供了用于創建線程、處理錯誤和輕松集成到測試工具中的內置機制。


        這些語言特性的有趣之處在于,它們使開發團隊的每個成員都有可能成為程序員!MicroPython提供了一系列庫,為抽象出復雜性的低級微控制器功能提供控制。例如,硬件工程師可以設計電路板,而對微控制器(或C)的工作原理幾乎一無所知,開發高級腳本,通過控制GPIO來測試電路板,甚至可以與I2C設備通信。在C語言中,開發I2C驅動程序可能相當復雜,但在MicroPython中,創建I2C對象并將數據發送到從設備只需要以下幾行代碼:


        from pyb import I2C

        i2c = I2C(1) # create on bus 1

        i2c = I2C(1, I2C.MASTER) # create and init as a master

        i2c.init(I2C.MASTER, baudrate=400000) # init as a master

        # Set the proximity threshold that will enable GMODE

        i2c.mem_write (40, DEVICE_SLAVE_ADDRESS, REGISTER_ADDRESS, timeout=1000)


        就這樣!處理I2C的所有基礎工作都由MicroPython庫處理,這大大簡化了嵌入式開發。



        生產設計考慮


        當考慮使用MyPython進行產品開發時,開發者需要考慮的幾個關鍵因素。首先,開發人員需要考慮如何保護他們的應用程序代碼。MicroPython允許開發人員加載基于代碼文本的Python腳本,或者將這些腳本編譯成字節碼,并將其放入.mpy模塊中。這些解決方案的問題在于,任何能夠訪問MicroPython文件系統的人都可以隨時獲得應用程序代碼,這非常容易。字節碼確實讓它變得有點難,但將字節碼轉換回可讀代碼并不太難。開發者需要考慮他們需要他們的系統有多安全,并有可能采取額外的措施來保護知識產權。


        接下來,開發人員需要考慮如果出現問題,他們將如何恢復系統。根據選擇的微控制器,它們的應用程序代碼可能在微控制器內部,也可能在存儲設備(如SD卡)外部。文件系統在電源循環或斷電情況下不是很健壯。如果文件系統損壞,MicroPython將通過將默認圖像復制回文件系統來恢復它。如果開發人員需要將默認設置集成到其他設備的默認位置,那么他們至少可以將這些更新恢復到其他設備的默認位置。


        最后,嵌入式開發人員可能希望確保他們在板上有多個內存設備可供選擇。新的旗艦MicroPython開發板pyboard D系列包括兩個單獨的SPI內存設備,每個2 MB。一個用于存儲應用程序代碼,而另一個可以存儲數據或其他信息。生產系統應該做一些類似的事情,甚至保留一個固件備份副本,這樣,如果出現問題,應用程序就可以在用戶沒有問題的情況下恢復。


        基于MicroPython的產品


        雖然使用MicroPython進行產品設計聽起來很有趣,但實際上有人用它來開發商業產品嗎?根據調查,MicroPython已經在一些產品中使用,例如,MicroPython已被用于小型衛星的電子電源和數據采集系統。


        MicroPython還用于流行的OpenMV模塊,該模塊允許開發人員創建機器視覺應用程序。該模塊運行MicroPython,允許開發人員通過交互式IDE創建腳本,然后將開發人員的腳本下載到模塊中。開發者甚至可以訓練機器學習模型,并將其轉換為在OpenMV模塊上運行!這表明,MicroPython不僅可以運行簡單的算法,還可以切換一些I/O。


        Micropython會取代C/C++嗎? 


        使用MicroPython構建嵌入式產品并不能像C/C++那樣滿足每個開發團隊的需求,但它為嵌入式開發人員提供了一個有趣的解決方案,用于快速原型設計或開發商業產品。當然,仍然存在一些挑戰,比如保護基于MicroPython的系統,確保確定性行為。這些都是可以通過預先進行適當的應用程序設計來克服的挑戰。MicroPython的易用性和流行性使得利用MicroPython構建嵌入式系統成為一個有趣的機會。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 日韩欧美国产一二三区 | 亚洲精品一级AV | 亚洲精品动漫在线线观看人 | 天天摸天天碰天天添中文 | 日本国产欧美三级在线 | 在线欧美视频一区 |