建造一個夜燈 - 樹莓派
在這部分課程中,你將在樹莓派上添加一個LED,並使用它來創建一個夜燈。
硬體
夜燈現在需要一個致動器。
致動器是一個LED,一個發光二極管,當電流通過時會發光。這是一個數字致動器,有兩種狀態,開和關。發送值1會打開LED,發送值0會關閉LED。LED是一個外部的Grove致動器,需要連接到樹莓派上的Grove Base帽子。
夜燈邏輯的偽代碼如下:
Check the light level.
If the light is less than 300
Turn the LED on
Otherwise
Turn the LED off
連接LED
Grove LED作為一個模組提供多種LED,允許你選擇顏色。
任務 - 連接LED
連接LED。
-
選擇你喜歡的LED,將其腳插入LED模組上的兩個孔中。
LED是發光二極管,二極管是只能單向導電的電子設備。這意味著LED需要正確連接,否則它將無法工作。
LED的一條腿是正極引腳,另一條是負極引腳。LED不是完全圓形的,一側稍微扁平一些。稍微扁平的一側是負極引腳。當你將LED連接到模組時,確保圓形一側的引腳連接到模組外側標有**+**的插座,扁平一側連接到模組中間較近的插座。
-
LED模組有一個旋轉按鈕,允許你控制亮度。首先使用小十字螺絲刀將其逆時針旋轉到最亮。
-
將Grove電纜的一端插入LED模組上的插座。它只能以一種方式插入。
-
在樹莓派斷電的情況下,將Grove電纜的另一端連接到樹莓派上Grove Base帽子上的數字插座D5。這個插座在GPIO引腳旁邊的一排插座中是從左數第二個。
編程夜燈
現在可以使用Grove光傳感器和Grove LED來編程夜燈。
任務 - 編程夜燈
編程夜燈。
-
啟動樹莓派並等待其啟動
-
在VS Code中打開你在本作業的前一部分中創建的夜燈項目,可以直接在樹莓派上運行,也可以使用Remote SSH擴展連接。
-
將以下代碼添加到
app.py
文件中以導入所需的庫。這應該添加到其他import
行的下方。from grove.grove_led import GroveLed
from grove.grove_led import GroveLed
語句從Grove Python庫中導入GroveLed
。這個庫包含與Grove LED交互的代碼。 -
在
light_sensor
聲明之後添加以下代碼,以創建管理LED的類的 實例:led = GroveLed(5)
這行
led = GroveLed(5)
創建了一個連接到引腳D5的GroveLed
類的實例 - LED連接的數字Grove引腳。💁 所有插座都有唯一的引腳號碼。引腳0、2、4和6是模擬引腳,引腳5、16、18、22、24和26是數字引腳。
-
在
while
循環內,time.sleep
之前添加一個檢查光線水平並打開或關閉LED的檢查:if light < 300:
led.on()
else:
led.off()這段代碼檢查
light
值。如果小於300,則調用GroveLed
類的on
方法,向LED發送數字值1,打開LED。如果光線值大於或等於300,則調用off
方法,發送數字值0,關閉LED。💁 這段代碼應該與
print('Light level:', light)
行縮進到同一級別,以便在while循環內!💁 當向致動器發送數字值時,0值是0V,1值是設備的最大電壓。對於使用Grove傳感器和致動器的樹莓派,1電壓是3.3V。
-
從VS Code終端運行以下命令以運行你的Python應用程序:
python3 app.py
光線值將輸出到控制台。
pi@raspberrypi:~/nightlight $ python3 app.py
Light level: 634
Light level: 634
Light level: 634
Light level: 230
Light level: 104
Light level: 290 -
覆蓋和揭開光傳感器。注意當光線水平為300或更低時,LED會亮起,當光線水平大於300時,LED會熄滅。
💁 如果LED沒有亮起,請確保它連接正確,並且旋轉按鈕設置為全亮。
💁 你可以在code-actuator/pi文件夾中找到這段代碼。
😀 你的夜燈程序成功了!