服務熱線
隨著 Python 成為主導的程式語言,MicroPython 在嵌入式系統領域變得越來越流行,特別是在流行的 ESP32 和 Raspberry PI 基金會剛剛發布的基於 RP2040 微控制器的 Pico 模組中。
身為一個不會寫一行程式碼的班農,大部分時間都覺得自己很有限,發誓一定要找個好時機學習程式語言。國慶7天假期潛心研究MicroPython,在自己設計的Pico擴展學習板上實現了板子上外設的全部功能:
-
花式燈光-單色、RGB三色、各種組合,還可以透過按鈕和感應器控制
-
OLED螢幕顯示文字、影像和波形
-
音訊訊號被擷取並顯示在OLED螢幕上-製作酷炫的波形顯示
-
用板上的蜂鳴器播放“我和我的國家”
-
移植別人的程式碼來產生任意波形 - 改變波形、改變頻率、改變幅度等
在這7天的「探索」中,讓我印象最深刻的是MicroPython的嵌入式系統上手是多麼的容易——豐富的開源資源,各種形式的參考資料,例如視訊課程、文字案例等。
MicroPython 確實是一種很棒的程式語言——物件導向、靈活、簡單、優雅!
我個人的學習受益於別人的分享(開源),而傳遞知識最好的方式就是分享自己所學、所學。因此,我打算推出基於Pico的Micro Python嵌入式程式教程,一個月後正式上線。當然, 前期將有15堂PCB設計直播課程,帶領你自己設計一塊Pico學習板。畢竟,在免費印板、免費送貨的便利環境下,基於一塊Pico核心板,未來每個人都可以設計PCB做出各種有趣的應用。 學習如何設計 PCB 對於嵌入式系統工程師來說也是一個優勢。
今後將會有一系列與本課程相關的技術文章。今天是第一個:
1.什麼是MicroPython
MicroPython 是一種小型開源 Python 程式語言解釋器,運行在小型嵌入式開發板上。 使用 MicroPython,您可以編寫乾淨、簡單的 Python 程式碼來控制硬件,而無需使用 C 或 C ++(用於程式設計的 Arduino)等複雜的底層語言。

MicroPython 標誌
Python 程式語言的簡單性使 MicroPython 成為程式設計和硬體初學者的理想選擇。 MicroPython 功能非常齊全,支援大多數 Python 語法,因此即使是經驗豐富的 Python 老手也會發現使用 MicroPython 熟悉且有趣。
除了易於使用之外,MicroPython 還具有一些區別於其他嵌入式系統的獨特功能:
使用互動式解釋器:REPL(讀取讀取-評估評估-列印列印-循環) - 這允許您連接到開發板並讓它執行程式碼,而無需編譯或上傳 - 非常適合快速學習和實驗硬體!
豐富的軟體庫 - 與常規 Python 程式語言一樣,MicroPython 內建了大量程式庫來支援許多任務。例如,透過 MicroPython 的內建函式庫,可以輕鬆解析來自 Web 服務的 JSON 資料、使用正規表示式搜尋文本,甚至進行網路套接字程式設計。
可擴展性 - 對於高級用戶,MicroPython 可以使用低階 C/C++ 函數進行擴展,因此您可以在需要時將富有表現力的高級 MicroPython 程式碼與更快的低階程式碼混合在一起。
MicroPython 是 Python 3 語言的變體。它是劍橋大學 Darrien P. George 博士的創意,他於 2013 年與眾籌團隊合作開發了一款支援 microPython 的硬體開發板,名為 PyBoard。博士也建立了Micro Python.org 網站(www.micropython.org)來支援MicroPython 和Pyboard。

MicroPython.Org 官方標誌
MicroPython.Org PyBoard,基於STM32控制器。
2.MicroPython能做什麼?
MicroPython 旨在快速且有效率地建立嵌入式系統控製程式。 嵌入式系統可以簡單地定義為任何需要使用微控制器來滿足工程需求的專案。 典型的嵌入式系統通常使用感測器,有時還會使用機電執行器來與微控制器連接。它們可以連接到人機介面設備以方便交互,但更加自動化,可以獨立操作或遠端存取雲端。
就像 Arduino 板一樣,MicroPython 可以控制硬體和連接的設備——您可以控制 GPIO 引腳閃爍、讀取開關等; 可以驅動可以驅動伺服器和LED的PWM訊號; 類比感測器可以透過類比數位轉換器讀取和讀取。與 I2C 或 SPI 設備通訊也很容易。您甚至可以在某些主機板上找到網路和 WiFi 支援。 MicroPython 甚至還有用於控制其他硬體的庫,例如 NeoPixels 和 LED 燈帶、微型 OLED 顯示器等。 總之,MicroPython 可以做很多事情!
MicroPython 有哪些限制?
MicroPython 的限制非常少,幾乎 Arduino 能做的任何事情都可以透過 MicroPython 板完成。 然而,值得注意的是,MicroPython 程式碼的速度並不快,而且可能比類似的Arduino 或其他基於C/C++ 的低階程式碼需要更多的內存,儘管這通常並不重要,因為速度和內存差異不夠大,無法滿足需求。 請注意,對時間或效能至關重要的程式碼可能無法在 MicroPython 中運行。 例如,完全使用軟體來驅動IO引腳來在MicroPython中實現一些高速串行通訊協定可能不是最好的想法。 然而,有一些方法可以混合 MicroPython 和低階 C/C++ 程式碼,這樣我們就可以兩全其美 - 主要邏輯是乾淨且易於理解的 MicroPython 程式碼,而效能關鍵部分是用更快的低階程式碼。
MicroPython 語言實作了大部分核心 Python 3 語言,但 MicroPython 並未實作整個 Python 3 標準函式庫。 Python 以其豐富的標準庫而聞名,但試圖將如此大的庫壓縮到只有千字節記憶體的小板上是不可能的。 相反,MicroPython 實作了一些較小版本的 Python 標準函式庫,提供了出色的開發體驗。
免責聲明:本文轉載自《電子森林》,本文僅代表作者個人觀點,不代表薩克威及業界觀點,僅供轉載分享,支持保護知識產權,轉載請註明原始出處以及作者,如有侵權,請聯絡我們刪除。


粵公網安備44030002007346號