通過設置運動傳感器來學習輸入和輸出的基礎知識。
Raspberry Pi Pico具有許多GPIO引腳,我們只需在代碼中配置這些引腳即可將其用作輸入或輸出。在本指南中,我們將學習如何使用輸入(在這種情況下為傳感器)和以LED形式的輸出進行工作。在本指南的最后,我們將在16行MicroPython中提供一個簡單的運動檢測器。
在本指南中,我們將學習如何使用Raspberry Pi Pico的GPIO引腳作為數字輸入和輸出,這些輸入和輸出使用高電平和低電平作為一種簡單的控制方法。
建立
該項目的電路增加了一個額外的組件,即一種被動紅外(PIR)傳感器,該傳感器通常用于家庭安全系統中以檢測運動。在此項目中,它將執行相同的功能,并且當傳感器報告運動時,我們的代碼將觸發一個LED亮起。
將傳感器添加到項目中需要:
? 半尺寸面包板
? LED燈
? 330歐姆電阻
? PIR傳感器
? 3 x母對公跳線
1.將Raspberry Pi Pico插入面包板,使其位于中央通道上方。確保Micro USB端口位于面包板的一端。
2.將一個330 Ohm的電阻器插入面包板,其一腳應與GND串聯,該腳為PIN38。另一腳應插入面包板的-導軌。這為我們提供了GND導軌,其中該導軌中的所有引腳都連接到GND。
3. 插入一個LED,將長腳(陽極)插入面包板的針腳34,并將短腳插入GND導軌。現在已建立電路。
PIR傳感器具有三個引腳。VCC,OUT和GND。VCC引腳用于從Raspberry Pi Pico提供3.3V電源。
4.使用跳線將VCC從PIR連接到電阻旁邊的3.3V引腳(引腳37)。
5.使用另一根跳線將PIR的OUT引腳連接到Pico的引腳21。
6.將PIR的GND引腳連接到面包板的GND導軌。
7.建立電路后,使用微型USB導線將Raspberry Pi Pico連接到計算機。打開Thonny應用程序。
現在,我們開始對項目進行編碼,并在“入門”項目中使用的代碼的基礎上,包括輸入,PIR傳感器和條件測試,以檢查傳感器是否已觸發。
1.從計算機庫中導入Pin類,然后導入utime。這些庫使我們能夠分別與GPIO通信并控制我們的項目進度。
from machine import Pin
import utime
2.創建一個對象“ led”,該對象用于在物理GPIO引腳和我們的代碼之間創建鏈接。在這種情況下,它將設置GPIO 28(映射到板上的物理引腳34)作為輸出引腳,其中電流將從Raspberry Pi Pico GPIO流入LED。然后,我們使用該對象指示GPIO引腳拉低。換句話說,這將確保在項目開始時GPIO引腳被關閉。
led = Pin(28, Pin.OUT)
3.創建另一個對象“ pir”。此對象用于在我們的代碼和GPIO引腳之間創建連接,該GPIO引腳用于從PIR進行OUT連接。默認情況下,PIR傳感器OUT被拉高,并且當檢測到移動時,PIR將OUT引腳拉低。為確保傳感器正常工作,我們將引腳設置為輸入,然后將GPIO引腳拉高。
pir = Pin(16, Pin.IN, Pin.PULL_UP)
4.確保在項目開始時LED熄滅,然后等待三秒鐘再繼續操作。這兩行確保我們不會從LED看到“錯誤觸發”,并給傳感器留出一些時間來穩定使用。
led.low()
utime.sleep(3)
5.在while True循環(無盡循環)中,使用打印功能來打印用于PIR傳感器的GPIO引腳的當前值。如果沒有移動,則返回1,如果沒有,則返回0。
while True:
print(pir.value())
6.創建一個條件測試,檢查存儲在pir.value中的值。如果值為0,則檢測到運動,然后將消息打印到Python Shell。然后打開LED(高電平)并暫停五秒鐘,同時保持LED點亮。
if pir.value() == 0:
print(“LED On”)
led.high()
utime.sleep(5)
7.沒有檢測到運動時,將激活條件測試的最后一部分。使用Else條件將消息打印到Python Shell,然后添加一行以關閉LED(低電平),然后暫停0.2秒。然后重復循環,并再次運行條件測試。
else:
print(“Waiting for movement”)
led.low()
utime.sleep(0.2)
8.單擊保存,然后選擇將代碼保存到MicroPython設備(Raspberry Pi Pico)。將文件命名為PIR.py,然后單擊“確定”進行保存。您的代碼應如下所示。
from machine import Pin
import utime
led = Pin(28, Pin.OUT)
pir = Pin(16, Pin.IN, Pin.PULL_UP)
led.low()
utime.sleep(3)
while True:
print(pir.value())
if pir.value() == 0:
print(“LED On”)
led.high()
utime.sleep(5)
else:
print(“Waiting for movement”)
led.low()
utime.sleep(0.2)
9.要運行代碼,請單擊綠色播放/箭頭按鈕,然后Python Shell將更新為“等待移動”和“ LED亮”。PIR傳感器非常靈敏,起初您可能會看到一些誤觸發,但傳感器會穩定下來。
責任編輯:pj
-
傳感器
+關注
關注
2562文章
52515瀏覽量
763333 -
檢測器
+關注
關注
1文章
887瀏覽量
48398 -
計算機
+關注
關注
19文章
7626瀏覽量
90115
發布評論請先 登錄
Raspberry Pi Pico是什么
使用raspberry pi Pico的原因
基于raspberry pi pico的EPS系統
一個印有PINOUT的Raspberry Pi pico分線板
將Esp8266的vcc和ch pd引腳連接到raspberry pi pico 3.3v時不起作用是為什么?
如何使用GPIO引腳將按鈕連接到Raspberry Pi

通過Raspberry Pi和Python使用PIR運動傳感器

Raspberry Pi上HA中的運動傳感器、警報、視頻錄制

Raspberry Pi Pico 2

評論