使用 Raspberry Pi Pico 的 MicroPython 初學者指南

使用 Raspberry Pi Pico 的 MicroPython 初學者指南

Raspberry Pi Pico 是 Raspberry Pi 系列的最新成員。在此之前,Raspberry Pi 系列產品是能夠運行操作系統的單板計算機。

基於新的 RP2040 芯片,Raspberry Pi Pico 同時支持 MicroPython 和 C/C++。使用 Raspberry Pi Pico,初學者和愛好者可以控制硬件和連接的設備。Raspberry Pi Pico 的 GPIO 引腳可用於使燈光變暗、讀取開關狀態等。

什麼是微Python?

微控制器上的編程主要是用 C 語言完成的,就像在Arduino 開發板上使用的那樣。然後在 2014 年,發布了一種新的微控制器編程語言 MicroPython。MicroPython 允許您在微控制器的裸機上編寫 Python 代碼。這意味著您可以在沒有操作系統的情況下編寫 Python 代碼。

Python 是一種初學者友好的高級編程語言,可讓用戶專注於學習編程概念。這與 MicroPython 非常相似。

使用 LED

為了控制硬件,Pico 與沿其兩側的一系列引腳進行通信。這些被稱為通用輸入輸出 (GPIO) 引腳,板載 LED 可以在 GPIO 25 上找到。要控制它,首先導入必要的庫:

import machine

import utime

然後使用機器庫調用Pin函數來處理Pin的GPIO pin,本例中我們將Pin設置在GPIO 25,所以它是第一個參數。第二個參數將它設置為輸出引腳而不是輸入引腳,這樣做,引腳知道它應該做什麼:

onboard_led = machine.Pin(25, machine.Pin.OUT)

繼續,在下面的代碼中,我們告訴 Pico 然後將其在 GPIO 25 處的引腳設置為 1,或“開啟”。

while True: onboard_led.value(1)

但是,您可能會意識到似乎什麼也沒有發生。這是因為 Pico 的工作速度非常快,因此 LED 亮起的速度比您肉眼所能察覺的要快。為了解決這個問題,我們需要使用utime庫中的 sleep 命令來減慢程序的速度。LED 將打開和關閉的完整代碼如下所示:

import machine import utime onboard_led = machine.Pin(25, machine.Pin.OUT) while True: onboard_led.value(1) utime.sleep(5) onboard_led.value(0) utime.sleep(5)

打開和關閉 LED

或者,還有另一種打開和關閉 LED 的方法,使用切換命令:

import machine import utime onboard_led = machine.Pin(25, machine.Pin.OUT) while True: led_onboard.toggle() utime.sleep(5)

在示例中,toggle命令取代了將 LED 的值設置為 1 和稍後設置為 0 的需要。它仍然會亮起 5 秒,然後再熄滅 5 秒,只要程序在運行。

創建函數

使用 Raspberry Pi Pico 的 MicroPython 初學者指南

隨著程序變得越來越複雜,將代碼塊組合在一起有助於保持一致性。為此,像 Python 一樣的 MicroPython 允許使用函數。函數是一組執行特定任務的相關語句。例如,在下面的代碼中,定義了一個名為printNames的函數:

def printNames: print(“Raspberry Pi 1”) print(“Raspberry Pi 2”) print(“Raspberry Pi 3”) print(“Raspberry Pi 4”) print(“Raspberry Pi Compute Module”) print(“Raspberry Pi 400”) print(“Raspberry Pi Pico”) printNames()

代碼中的最後一行調用該函數以便它實際執行。

循環

使用 Raspberry Pi Pico 的 MicroPython 初學者指南

條件邏輯根據布爾約束的計算結果為真還是假來執行不同的操作。許多Raspberry Pi Pico 項目都基於這些邏輯陳述。在以下示例中,使用 if-else 語句來確定是否執行打印語句:

i = 17 def printNames(): if i > 15: print("i is greater than 15!") else: print("i is not greater than 15") printNames()

在下一個示例中,for 循環與range函數一起使用。這些循環可用於多次重複一個代碼塊。

使用 Raspberry Pi Pico 的 MicroPython 初學者指南

在這個例子中,打印命令將被執行五次,每次執行之間有 5 秒的延遲,使用sleep命令:

import utime def printNames(): for i in range(5): print("Raspberry Pi Pico") utime.sleep(5) printNames()

模數轉換器 (ADC)

儘管您看不到它,但 Raspberry Pi Pico 有一個內部模數轉換器。在以下示例中,電位計連接到 GPIO 26 上的 Raspberry Pi Pico,具有 ADC 功能:

import machine import utime pot = machine.ADC(26) while True: print(pot.read_u16()) utime.sleep(1)

在這裡,在我們可以使用這個支持 ADC 的引腳之前,它需要設置 ADC 功能。然後當程序運行時,電位器的值將每秒打印一次。Raspberry Pi Pico 上支持 ADC 的其他引腳包括 GPIO27、28 和 29。

脈寬調製 (Pwm)

微控制器的數字輸出只能是 1 或 0。要創建模擬信號,您需要一個數模轉換器。然而,另一種方法是通過使用脈寬調製或簡稱 PWM 來人為地創建模擬信號。

通過打開和關閉數字信號,這被稱為脈衝。通過調製脈衝寬度,可以人為地創建模擬信號,如下例所示:

import machine import utime pot = machine.ADC(26 led = machine.PWM(machine.Pin(21)) led.freq(1000) while True: led.duty_u16(pot.read_u16())

首先,機器和utime庫被導入。使用GPIO 引腳 21 上激活的 PWM 輸出創建一個對象onboard_led。然後,使用freq命令設置頻率以調製脈衝寬度。想像一下轉動電位器,當轉動一個方向時,LED 會變亮。

發生這種情況是因為電位器的模擬值被用作 PWM 信號佔空比的值,它是一個介於 0 和 65535 之間的值。但是,如果不進行轉換,稍微轉動電位器可能已經使 LED 達到其最大亮度級別.

為了解決這個問題,使電位器只在轉動到最後時才達到全亮度,使用duty_u16函數轉換該值。此函數將其轉換為 16 位整數,該整數介於 0 和 1024 之間,這與您從 Pico 的模擬引腳接收的值範圍相同。

使用 Raspberry Pi Pico 創造更多

本文介紹了 Raspberry Pi Pico 上 MicroPython 中的基本命令。有關更多信息,請查看有關使用 Raspberry Pi Pico進行MicroPython 編程的官方文檔。

如果尚未在您的 Raspberry Pi Pico 上進行設置,請使用Thonny IDE來運行您的 MicroPython 代碼,或者查看Unicorn CPU 模擬器以直接在您的計算機上運行虛擬微控制器。


改變臥室的 10 大 DIY 燈創意

改變臥室的 10 大 DIY 燈創意

照明是將您的裝飾固定在一起的膠水。它突出了您房間的迷人特色,將其變成了您每天晚上都會喜歡的溫暖舒適的綠洲。最好的部分?你甚至不必破產,因為有一些非常驚人的 DIY 想法可以照亮你的臥室。這是我們的前 10 名:

使用 FDM 打印機設計和 3D 打印您自己的桌面微縮模型

使用 FDM 打印機設計和 3D 打印您自己的桌面微縮模型

D&D 和 Warhammer 等桌面遊戲提供了一種無需計算機或控制台即可享受互動娛樂的絕佳方式。

如何在您的汽車中安裝行車記錄儀

如何在您的汽車中安裝行車記錄儀

如果你有一個行車記錄儀,安裝它可能看起來有點麻煩。在某些情況下,這並不像您希望的那麼簡單,但是在您的汽車中安裝行車記錄儀值得您花在它上面的每一分鐘。

搜索 3D 打印模型的 6 個最佳位置

搜索 3D 打印模型的 6 個最佳位置

隨著 3D 打印專利到期,該行業迅速進入家庭。

如何從外部硬盤驅動器恢復數據

如何從外部硬盤驅動器恢復數據

外置硬盤因其速度、成本和便利性而變得越來越流行。然而,就像普通的硬盤驅動器一樣,它們面臨著相同的數據丟失風險,無論是機械還是軟件引起的。

您可以在家製作 10 個 DIY 遠程 Wi-Fi 天線

您可以在家製作 10 個 DIY 遠程 Wi-Fi 天線

雖然現代 Wi-Fi 天線允許您使用 ISP 包內的最快速度,但它們可能非常昂貴。幸運的是,您可以隨時轉向 DIY 項目來改善您的連接信號,而無需花太多錢。

使用 Raspberry Pi Pico 的 MicroPython 初學者指南

使用 Raspberry Pi Pico 的 MicroPython 初學者指南

Raspberry Pi Pico 是 Raspberry Pi 系列的最新成員。在此之前,Raspberry Pi 系列產品是能夠運行操作系統的單板計算機。

如何為桌面遊戲建造 DIY 骰子塔

如何為桌面遊戲建造 DIY 骰子塔

骰子被認為已經存在了數千年。然而,在這段時間裡,幾乎沒有採取任何措施來推進或創新這項技術。雖然材料發生了變化,製作骰子的方法也有所進步,但您仍然像某種穴居人一樣手工擲骰子。

10 個最佳 ESP32 智能家居項目

10 個最佳 ESP32 智能家居項目

智能家居是一種可以通過任何具有互聯網連接的手機或計算機遠程控制電器和設備的家居。它通常基於使用微控制器創建的無線連接設備,例如 Arduino 或 ESP32 板。

繼承人如何超頻 PC RAM:但你應該嗎?

繼承人如何超頻 PC RAM:但你應該嗎?

為您的 PC 獲取 RAM 是必要的。雖然,如果您不以最大容量運行它,您將失去很多。每個程序都會在 RAM 中存儲一段時間的數據,以便更快地訪問。使用超頻 RAM,您可以提高 PC 的性能。