服務熱線
0755-83044319
發布時間:2022-03-09作者來源:薩科微瀏覽:2755
隨著Python成為主流的編程語言,MicroPython在嵌入式系統領域也越來越熱門起來,尤其是大家喜愛的ESP32以及樹莓派基金會剛推出的基于RP2040微控制器的Pico模塊都支持MicroPython。
作為一行代碼都不會寫的板農,在很多時候覺得非常受限,發誓一定要找個時機好好學會一門編程語言,這不國慶7天的假期我都奉獻給了MicroPython,并在自己設計的Pico擴展學習板上實現了板上所有外設的功能:
花式點燈 - 單色、RGB三色,各種組合,還可以按鍵和傳感器來控制
OLED屏幕上顯示文本、圖像、波形
將音頻信號進行數據采集并顯示在OLED屏幕上 - 做了一個炫酷的波形顯示
用板上的蜂鳴器奏響了“我和我的祖國”
移植了別人的代碼生成了任意波形 - 改變波形、改變頻率、改變幅度等等
。。。。
通過這7天的“探索”我自己[敏感詞]的感觸就是,以MicroPython入門嵌入式系統實在是太方便了 - 豐富的開源資源、多種形式的參考,比如視頻課程、文本案例等。
MicroPython確實是一個很好的編程語言 - 面向對象、靈活、簡單、優美!
我個人的學習得益于別人的分享(開源)、傳遞知識[敏感詞]的方式就是把自己所學、所悟也分享出去,因此我計劃上線一套基于Pico的Micro Python嵌入式編程教程,一個月以后正式開播,當然,前期會有15節PCB設計的直播課程帶著大家自己設計一款Pico的學習板,畢竟在打板都能免費且包郵的便利大環境下,基于一個Pico核心板,未來每個人都可以通過自己設計PCB來做各種有趣的應用出來,學會PCB的設計也會讓嵌入式系統工程師如虎添翼。
從現在開始陸續連載與這個課程相關的技術文章,今天是[敏感詞]篇:
MicroPython是一個小型的開源Python編程語言解釋器,運行在小型嵌入式開發板上。使用MicroPython,您可以編寫干凈、簡單的Python代碼來控制硬件,而不必使用復雜的底層語言,如C或c++ (Arduino用于編程)。
MicroPython的Logo
Python編程語言的簡單性使MicroPython成為編程和硬件新手的理想選擇。MicroPython功能非常齊全,支持大多數Python語法,所以即使是經驗豐富的Python老手也會發現使用MicroPython很熟悉和有趣。
除了易于使用之外,MicroPython還有一些獨特的特性,使它有別于其它嵌入式系統:
使用交互式解釋器:REPL(讀Read-評估Evaluate-打印Print-循環Loop) - 這允許你連接到一個板,并讓它執行代碼,而不需要編譯或上傳-完美的快速學習和試驗硬件!
豐富的軟件庫 - 像普通的Python編程語言一樣,MicroPython內置了非常多的庫來支持許多任務。例如,通過MicroPython的內置庫,可以很容易地解析來自Web服務的JSON數據,使用正則表達式搜索文本,甚至進行網絡套接字編程。
可擴展性 - 對于高級用戶來說,MicroPython可以通過低級C/C++函數進行擴展,因此在需要時,您可以將富有表現力的高級MicroPython代碼與更快的低級代碼混合使用。
MicroPython是Python 3語言的一個變種,其思想來源于劍橋大學的Darrien P. George博士,他與一個眾籌團隊一起于2013年開發了一款支持MicroPython的硬件開發板 - 叫PyBoard,并于2014年的Python大會(PyCon)上提出了MicroPython1.0。George博士也建立了micro python.org網站(www.micropython.org)來支持MicroPython和Pyboard。
MicroPython.Org官方的Logo
MicroPython.Org官方推出的PyBoard,基于STM32控制器。
MicroPython被設計用于快速有效地創建嵌入式系統控制程序。嵌入式系統可以簡單定義為任何需要使用微控制器以滿足工程需要的工程。典型的嵌入式系統通常使用傳感器,有時會使用電子機械傳動結構與微控制器接口,它們可能附接有人機接口設備,便于交互,但是更多為自動的,為單機運行或連接至云端進行遠程訪問。
就像Arduino板一樣,MicroPython可以控制硬件和連接的設備 - 可以控制GPIO引腳閃爍燈、讀取開關以及更多;可以驅動能夠驅動伺服器、LED的PWM信號; 能通過模數轉換器讀取讀取模擬傳感器的信息,與I2C或SPI設備通信也很容易,你甚至可以在一些板上找到網絡和WiFi支持。MicroPython甚至有用于控制其它硬件的庫,如NeoPixels和LED條,微型OLED顯示器等等。簡而言之,MicroPython可以做很多事情!
MicroPython有很少的限制,幾乎Arduino能做的任何事情都可以通過MicroPython板來完成。然而,需要注意的是,與類似的Arduino或其它基于C/C++的底層代碼相比,MicroPython代碼沒有那么快,需要的內存也可能更大,不過通常這并不重要,因為速度和內存差異并不大,大多數的應用不會受到影響。要注意的是,那些對時間或性能要求很嚴格的代碼可能無法在MicroPython中工作。例如,在MicroPython中完全使用軟件來驅動IO管腳實現一些高速的串行通信協議可能不是[敏感詞]的主意。然而,有一些方法可以混合MicroPython和低級C/C++代碼,這樣我們就可以同時擁有這兩個世界的優點 - 主要的邏輯是干凈且易于理解的MicroPython代碼,而性能關鍵部分使用更快的低級代碼編寫的。
MicroPython語言實現了大部分核心Python 3語言,但是MicroPython不能實現整個Python 3標準庫。Python以擁有廣泛的標準庫而聞名,但是試圖將這么大的庫壓縮到只有千字節內存的小板上是不可能的。相反,MicroPython實現了一些Python標準庫的更小版本,為我們提供了很棒的開發體驗。
免責聲明:本文轉載自“電子森林”,本文僅代表作者個人觀點,不代表薩科微及行業觀點,只為轉載與分享,支持保護知識產權,轉載請注明原出處及作者,如有侵權請聯系我們刪除。
友情鏈接:站點地圖 薩科微官方微博 立創商城-薩科微專賣 金航標官網 金航標英文站
Copyright ?2015-2024 深圳薩科微半導體有限公司 版權所有 粵ICP備20017602號-1