0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣使用MicroPython在樹莓派Pico上進行編程呢?

jf_zGNBEhbi ? 來源:趣無盡 ? 2023-08-17 09:39 ? 次閱讀

Python 編程語言是為臺式機、筆記本電腦和服務器等計算機系統(tǒng)開發(fā)的。像 Raspberry Pi Pico 這樣的微控制器板更小、更簡單、內存也更小,這意味著它們不能運行與大型 Python 語言相同的 Python 語言。這就是 MicroPython 誕生的意義。

MicroPython 最初由 Damien George 開發(fā),于 2014 年首次發(fā)布,是一種專門為微控制器開發(fā)的 Python 兼容編程語言。它包含了許多主流 Python 的特性,同時添加了一系列新的特性,旨在利用 Raspberry Pi Pico 和其他微控制器板上燈可用的設備。如果你以前與 Python 編程過,你會立即發(fā)現(xiàn) MicroPython 很熟悉。如果沒有,不要擔心,這是一個學習起來很容易的語言!

Thonny Python IDE 介紹

53399d7a-3c4d-11ee-ac96-dac502259ad0.jpg

A 工具欄 – 工具欄提供基于圖標的快速訪問系統(tǒng),用于常用的程序功能,如保存、加載和運行程序。

B 腳本區(qū)域 – 腳本區(qū)域是編寫 Python 程序的位置。它被分割成你的程序的主要區(qū)域和 顯示行數的少量側邊距。

C Python 控制臺 – Python 控制臺允許你鍵入單個指令,當你按下回車鍵時,這些指令就會運行,并提供有關運行程序的信息。這也稱為 REPL,用于「讀取、評估、打印和循環(huán)」。

D 解釋器 – Thonny 窗口的右下角顯示并允許你更改當前的 Python 解釋器——用于運行你的程序的 Python 版本。

Thonny 連接到 Pico

在開始用 MicroPython 編程之前,需要設置所謂的集成開發(fā)環(huán)境(IDE)。Thonny,一個流行的 Python 和 MicroPython IDE,已經預裝在 Raspberry Pi OS 上。如果你在另一個 Linux 發(fā)行 版、Windows 或 macOS 上使用Pico,請打開 Web 瀏覽器,訪問 thonny.org,并單擊頁面頂部的下載鏈接,下載用于你的操作系統(tǒng)的 Thonny 和 Python 包安裝程序。

作為一個集成的開發(fā)環(huán)境,Thonny 將你需要編寫或開發(fā)的所有不同工具聚集在一起或集成到單個用戶界面或環(huán)境中。有許多不同的 IDE——有些允許你使用多種不同的編程語言進行開發(fā),而另一些則像 Thonny 一樣專注于單一語言。

當你的 Pico 已經連接到樹莓派時,點擊 Thonny 窗口的右下角,上圖區(qū)域 D。這里顯示了你當前的解釋器,它負責接受你輸入的指令,并將它們轉換成計算機或微控制器可以理解和運行的代碼。通常解釋器是在 Raspberry Pi 上運行的 Python 的副本,但是為了在你的 Pico 上運行你的程序,需要對它進行修改。

在顯示的列表中,查找「MicroPython(Raspberry Pi Pico)」,然后單擊它。如果你在列表中看不到它,請仔細檢查你的 Pico 是否正確插入 microUSB 數據線,以及 micro USB 數據線是否正確插入到樹莓派或計算機。

535da486-3c4d-11ee-ac96-dac502259ad0.jpg

看看 Thonny 窗口底部的 Python 控制臺: 你會看到它現(xiàn)在輸出顯示「MicroPython」,并告訴你,它正在運行在「Raspberry Pi Pico」。恭喜你,你已準備好了編程環(huán)境。

第一個 MicroPython 程序:Hello, World!

開始編寫第一個程序時,請單擊 Thonny 窗口底部的 Python Shell 區(qū)域,只需在底部「>>>」提示符的右側,輸入以下指令之后回車。

print("Hello, World!")

53663740-3c4d-11ee-ac96-dac502259ad0.jpg

你會看到你的程序立即開始運行:Python 將在相同的 Shell 區(qū)域響應,并打印出「Hello, World!」,這是因為 Shell 與運行在你的 Pico 上的 MicroPython 解釋器直接相連,后者的工作是查看你的指令并解釋它們的含義。這就是所謂的互動模式,你可以把它想象成與某人面對面的對話:你剛說完話,對方就會做出回應,然后等著你接下來說什么。

使用 Shell 為 Pico 編程有點像電話對話:當你按下回車鍵時,你的指令將通過 microUSB 線發(fā)送到運行在 Pico 上的 MicroPython 解釋器;解釋器查看你的指令并執(zhí)行,然后通過 microUSB 線把執(zhí)行結果發(fā)送回給 Thonny。

不過,你不必通過 Shell 在交互模式下編程。點擊 Thonny 窗口中間的腳本區(qū)域,然后再次輸入你的程序:

print("Hello, World!")

當你這次按下回車鍵時,除了在腳本區(qū)域中獲得新的空白行外,什么都沒發(fā)生。要使此版本的程序工作,你必須單擊 Thonny 工具欄中的「運行」圖標,或單擊「運行」菜單,然后單擊「運行當前腳本」。

你會被詢問是否要保存程序到這臺電腦,即 Raspberry Pi,或「MicroPython device」,即 Pico。單擊「MicroPython device」,然后鍵入一個文件名,如 Hello_World.py,然后單擊 OK 按鈕。

5390ea4e-3c4d-11ee-ac96-dac502259ad0.jpg

一旦你的程序保存好,它就會自動在你的 Pico 上運行。你會看到兩條消息出現(xiàn)在 Shell 區(qū) 域的底部的 Thonny 窗口:

>>> %Run -c $EDITOR_CONTENT
Hello, World!

其中第一行是 Thonny 的指示,告訴 Pico 上的 MicroPython 翻譯運行腳本區(qū)域的內容:「EDITOR_CONTENT」。第二個是程序的輸出——你讓 MicroPython 打印的信息。恭喜你!現(xiàn)在你 已經以交互模式和腳本模式寫了兩個 MicroPython 程序,并成功地在你的 Pico 上運行了它們!

還有一件事需要解決,就是重新加載你的程序。按窗口右上角的「X」鍵關閉 Thonny,然后再次加載它。這次不是編寫一個新程序,而是點擊 Thonny 工具欄中的「Open」圖標。

就像當你保存你 的程序時,你會被詢問是否要保存到「This computer」或你的「MicroPython device」。點擊「MicroPython device」,你會看到你已經保存到你的 Pico 的所有程序的列表。

在列表中查找 Hello_World.py,單擊選擇它,然后單擊OK。你的程序將加載到 Thonny,準備好被編輯或你再次運行它。

循環(huán)和代碼縮進

與標準 Python 程序一樣,MicroPython 程序通常從上到下運行。它依次運行每一行,在進入下一 行之前通過解釋器運行它,就像你在 Shell 中逐行輸入它們一樣。

但是,僅僅逐行運行指令列表的程序并不是很聰明——因此,MicroPython 就像 Python 一樣,有自己的方法來控制程序運行的順序,即縮進。

通過單擊 Thonny 工具欄中的新圖標創(chuàng)建一個新程序。你不會失去現(xiàn)有的程序,相反,Thonny 將在腳本上方的區(qū)域創(chuàng)建一個新的標簽。輸入以下兩行開始你的程序:

print("Loop starting!")
for i in range(10):

第一行向 Shell 輸出一條簡單的消息,就像你的 Hello World 程序一樣。第二行開始一個定義的循環(huán),它將重復-循環(huán)-一個或多個指令的一組次數。一個變量i被賦值給循環(huán),并給出一系列數字。range 指令從數字 0 開始計次,但永遠不會到達數字 10。冒號告訴 MicroPython 循環(huán)本身從下一行開始。

變量是強大的工具。顧名思義,變量是可以改變的值,或在程序的控制下隨時間變化。最簡單 的說,一個變量有兩個方面——它的名稱和它所存儲的數據。在循環(huán)的情況下,變量的名字是「i」,其數據由 range 指令設置——從 0 開始,每次循環(huán)結束并重新開始時增加 1。

為了在循環(huán)中真正包含一行代碼,它必須縮進——從腳本區(qū)域的左側移動進來。下一行以四個 空格開始,當你按下第二行回車后,Thonny 將自動添加這些空格?,F(xiàn)在輸入:

print("Loop number", i)

與程序中的其他行相比,這四個空格將這行推入內部??s進是 MicroPython 區(qū)分循環(huán)外部指令 和循環(huán)內部指令的方式:縮進的代碼構成了循環(huán)內部,被稱為嵌套代碼。

你將注意到,當你在第三行末尾按下回車時,Thonny 會自動縮進下一行——假設它是循 環(huán)的一部分。要刪除這個縮進,只需在輸入第四行之前按下退格鍵一次:

print("Loop finished!")

你的四行程序現(xiàn)在已經完成。第一行位于循環(huán)之外,并且只運行一次;第二行設置循環(huán);第三個循
環(huán)位于循環(huán)內部,每次循環(huán)運行一次;第四行還是在循環(huán)外面。

print("Loop starting!")
for i in range(10):
print("Loop number", i)
print("Loop finished!")

單擊 Run(運行)圖標,選擇通過點擊「MicroPython device」選擇將程序保存在 Pico 上,并將其命名為 Indentation.py。該程序將在保存后立即運行,查看 Shell 區(qū)域的輸出。

Loop starting!
Loop number 0
Loop number 1
Loop number 2
Loop number 3
Loop number 4
Loop number 5
Loop number 6
Loop number 7
Loop number 8
Loop number 9
Loop finished!

53a6b928-3c4d-11ee-ac96-dac502259ad0.jpg

縮進是 MicroPython 的一個強大部分,也是程序不能按預期工作的最常見原因之一。當尋找程 序中的問題時,一個稱為調試的過程,總是反復檢查縮進,特別是當你開始在循環(huán)中嵌套循環(huán) 時。

MicroPython 還支持無限循環(huán),它可以無限循環(huán)。要將程序從確定循環(huán)變?yōu)闊o限循環(huán),請編輯 第 2 行:

while True:

如果你現(xiàn)在單擊 Run 圖標,你將得到一個錯誤:名稱「i」沒有定義。這是因為你已經刪除了為
變量「i」創(chuàng)建并賦值的行。要修復這個問題,只需編輯第 3 行,這樣它就不再使用變量了:

print("Loop running!")

再次點擊 Run 圖標,如果你動作快,你會看到「Loop starting! 」消息后面跟著一串永無休止的「Loop running!」消息?!窵oop finished!」消息將永遠不會打印,因為循環(huán)沒有結束。每次 Python 打印完「Loop running!」消息時,它返回到循環(huán)的開始處并再次輸出。

53b54588-3c4d-11ee-ac96-dac502259ad0.jpg

點擊 Thonny 工具欄上的 Stop 圖標,告訴程序停止正在做的事情,即中斷程序并重新啟動 MicroPython 解釋器。你將看到 Shell 區(qū)域中出現(xiàn)一條消息,程序將停止,而不會到達第 4 行。

條件和變量

和所有編程語言一樣,MicroPython 中的變量的存在不僅僅是為了控制循環(huán)。點擊 Thonny 工具欄上的 New 圖標啟動新程序,然后在腳本區(qū)域輸入以下內容:

user_name = input ("What is your name? ")

點擊 Run 圖標,通過點擊「MicroPython device」選擇將程序保存在 Pico 上,并將其命名為 Name_Test.py,并觀察 Shell 區(qū)域中發(fā)生了什么:將詢問你的姓名。在 Shell 區(qū)域中輸入你的名字,然后回車。因為這是你的程序中唯一的指令,其他的都不會發(fā)生。

如果想要對放入變量中的數據進行實際操作,則需要在程序中增加更多行。

53e1fbb4-3c4d-11ee-ac96-dac502259ad0.jpg

為了讓你的程序用這個名字做一些有用的事情,從第 2 行開始輸入一個條件語句:

if user_name == "Clark Kent":
print("You are Superman!")
else:
print("You are not Superman!")

記住,當Thonny看到你的代碼需要縮進時,它會自動這么做——但它不知道什么時候你的代碼 需要停止縮進,所以你必須自己刪除空格。

單擊 Run 圖標并在 Shell 區(qū)域中鍵入你的名字。除非你的名字恰好是「Clark Kent」,否則你會看到「You are Superman!」再次點擊 Run,這次輸入 Clark Kent 的名字,確保寫的和程序中完全一樣,用大寫的 C 和 K。這次,程序承認你實際上是超人。

5415c0d4-3c4d-11ee-ac96-dac502259ad0.jpg

「==」符號告訴 Python 進行直接比較,查看變量 user_name 是否與程序中的文本(即字符串)匹配。

如果你處理的是數字,你還可以進行其他的比較「>」查看一個數字是否大于另一個數字,「<」查看它是否小于,「>=」查看它是否大于或等于,「<=」查看它是否小于或等于。還有「!=」,意思是不等于,是「==」的反義詞。這些符號在技術上稱為比較運算符。

注意:使用變量的關鍵是了解「=」,與「==」兩者的區(qū)別。記住,「=」的意思是「使這個變量等于這個值」,而「==」的意思是「檢查變量是否等于這個值」。把它們混在一起肯定會導致程序無法工作!比較操作符也可以在循環(huán)中使用。刪除第 2 行到第 5 行,然后在它們的位置輸入以下內容:

while user_name != “Clark Kent”:
print(“You are not Superman – try again!”)
user_name = input(“What is your name? “)
print(“You are Superman!”)

再次點擊 Run 圖標。這一次,程序不會退出,而是會不斷詢問你的名字,直到確認。有點像一個非常簡單的密碼。要退出循環(huán),可以在腳本區(qū)域輸入「Clark Kent」,或者單擊 Thonny 工具欄上的 Stop 圖標。

543cd55c-3c4d-11ee-ac96-dac502259ad0.jpg

祝賀你!你現(xiàn)在知道如何使用條件語句和比較操作符了!






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7398

    瀏覽量

    150661
  • python
    +關注

    關注

    54

    文章

    4759

    瀏覽量

    84298
  • 樹莓派
    +關注

    關注

    116

    文章

    1684

    瀏覽量

    105403
  • USB數據線
    +關注

    關注

    0

    文章

    11

    瀏覽量

    4908
  • macOS系統(tǒng)

    關注

    0

    文章

    9

    瀏覽量

    1536

原文標題:使用 MicroPython 在樹莓派 Pico 上編程

文章出處:【微信號:趣無盡,微信公眾號:趣無盡】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    樹莓Pico RP2040上怎樣使用MicroPython?

    RP2040 是一款由樹莓公司設計的 32 位雙核 ARM Cortex-M0+ 微控制器芯片,于 2021 年 1 月發(fā)布,作為樹莓 Pico
    的頭像 發(fā)表于 11-08 14:29 ?2867次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b> RP2040上<b class='flag-5'>怎樣</b>使用<b class='flag-5'>MicroPython</b><b class='flag-5'>呢</b>?

    MicroPython樹莓的區(qū)別是什么?

    ` 關于micropython樹莓,很多人會說micropython小巧,并且python直接接觸硬件層面,但是樹莓
    發(fā)表于 08-22 09:54

    樹莓pico入門學習筆記(一)相關資料推薦

    樹莓pico入門學習筆記選擇自己熟悉的編程語言樹莓pic
    發(fā)表于 07-01 09:28

    樹莓pico如何入門?

    樹莓pico如何入門?
    發(fā)表于 10-13 08:11

    怎么實現(xiàn)樹莓Pico電機運動控制MicroPython+pioasm編程?

    怎么實現(xiàn)樹莓Pico電機運動控制MicroPython+pioasm編程
    發(fā)表于 10-27 06:37

    如何為Pico燒錄Micropython固件

    燒錄固件務必按順序操作!否則會燒錄失?。。?)一直按住樹莓Pico板上的BOOTSEL按鍵,將樹莓P
    發(fā)表于 01-20 08:06

    樹莓Pico的相關資料推薦

    1月22日,樹莓基金會最新發(fā)布一款低成本、高性能的微控制器開發(fā)板Raspberry Pi Pico,新產品相比普通樹莓體積更小,售價僅4
    發(fā)表于 02-07 07:37

    怎樣去使用MicroPython軟件

    怎樣去使用MicroPython軟件樹莓Raspberry Pi Pico有何性能
    發(fā)表于 02-10 07:22

    樹莓PICO:使用rt-thread micropython軟件包聯(lián)網獲取天氣

    1、樹莓PICO上實現(xiàn)http請求demo  項目描述  本項目使用樹莓
    發(fā)表于 11-14 16:19

    【BPI-Pico-RP2040 開發(fā)板】+MicroPython初體驗

    使用MicroPhthon進行開發(fā),同時MicroPhthon又是自己沒有接觸到領域,所以本篇文章Pico上運行MicroPython,同時進行
    發(fā)表于 03-18 18:42

    樹莓Raspberry Pi Pico快速上手教程之MicroPython使用說明

    第一步:刷固件下載測試固件到電腦, 解壓出來。其中有兩個uf2文件, 其中的pico_micropython_20210121.uf2文件為MicroPython固件按住樹莓
    發(fā)表于 12-07 14:06 ?6次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>Raspberry Pi <b class='flag-5'>Pico</b>快速上手教程之<b class='flag-5'>MicroPython</b>使用說明

    樹莓pico入門學習筆記(一)

    樹莓pico入門學習筆記選擇自己熟悉的編程語言樹莓pic
    發(fā)表于 12-17 18:42 ?21次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>pico</b>入門學習筆記(一)

    基于樹莓pico的可編程游戲手柄設計

    方案介紹組件12x12x7.3mm 瞬時觸覺按鈕按鈕樹莓Pico通用 D1286464 OLED 顯示屏操縱桿模塊 PS210 歐姆電阻?組裝將樹莓
    發(fā)表于 12-26 15:10 ?0次下載

    基于樹莓Raspberry Pi Pico的自動澆花系統(tǒng)

    土壤濕度傳感器 x 1?4. RGB LED x 15. 面包板 x 16. 移動電源 x 1軟件組件1. MicroPython2. Thonny IDE第 1步-設置樹莓 Pico
    發(fā)表于 12-27 15:34 ?5次下載

    樹莓Pico開發(fā)板擴展ESP01S無線WiFi模塊通信實踐

    介紹樹莓Pico開發(fā)板擴展ESP01S無線模塊建立WiFi連接,并采用AT命令和MicroPython語言實現(xiàn)樹莓
    發(fā)表于 05-31 15:59 ?1次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>開發(fā)板擴展ESP01S無線WiFi模塊通信實踐