1. gzyueqian
      18529173453

      嵌入式開發(fā):用MicroPython設(shè)計嵌入式系統(tǒng)的利弊

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

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


        讓我們分析一下使用MicroPython的一些優(yōu)點和缺點:


        Python語言編程特性


        Python編程語言的學(xué)習(xí)曲線很短,這使得開發(fā)人員非常容易開始使用它。Python為開發(fā)人員提供了一種高級編程語言,可以用來構(gòu)建簡單的腳本,也可以用來開發(fā)復(fù)雜的面向?qū)ο篌w系結(jié)構(gòu),這些體系結(jié)構(gòu)使用了現(xiàn)代軟件項目的所有最佳實踐。與C相比,Python還提供了用于創(chuàng)建線程、處理錯誤和輕松集成到測試工具中的內(nèi)置機制。


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


        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的所有基礎(chǔ)工作都由MicroPython庫處理,這大大簡化了嵌入式開發(fā)。



        生產(chǎn)設(shè)計考慮


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


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


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


        基于MicroPython的產(chǎn)品


        雖然使用MicroPython進行產(chǎn)品設(shè)計聽起來很有趣,但實際上有人用它來開發(fā)商業(yè)產(chǎn)品嗎?根據(jù)調(diào)查,MicroPython已經(jīng)在一些產(chǎn)品中使用,例如,MicroPython已被用于小型衛(wèi)星的電子電源和數(shù)據(jù)采集系統(tǒng)。


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


        Micropython會取代C/C++嗎? 


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

      免費預(yù)約試聽課

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

      
      

      1. 久久丝袜国产精品视频 | 日本高清午夜色 | 亚洲欧美国产精品专区久久 | 久久国产精品-国产精品99 | 亚洲色资源在线播放 | 亚洲免费VA不卡在线播放 |