如果你已經閱讀并且練習了本系列部落格前面實驗,那麼我相信你已經能夠使用樹莓派做很多有趣的事情。本部落格将要介紹的内容就是一個例子。
你在小時候有玩過雷射燈麼?其模樣類似于一個小型的手電筒,隻是其光線十分集中,亮度強,并且通過不同的濾片,可以在牆上或地上打射出不同的圖案,十分有趣。本實驗,我們将找回童趣,使用觸摸傳感器和雷射燈傳感器來實作一個簡易的觸控雷射燈。
本實驗的原理非常簡單,無非是通過樹莓派的GPIO引腳來讀取觸摸傳感器的資料,之後将其用于操作雷射傳感器的開關控制上。本次實驗使用的觸摸傳感器如下圖所示:

此觸摸傳感器有3個引腳,除了正負極引腳外,最外側的引腳用來輸出信号,當手指觸摸傳感器上的圓形區域時,其信号引腳會輸出高電平,否則輸出低電平。對于這種類型的傳感器,我們可以直接使用GPIO的下拉電阻功能,将其預設設定為低電平,輪詢等待高電平信号。
首先,先來體驗下觸摸傳感器的應用,連線如下:
觸摸傳感器 樹莓派
GND GND
VCC 3.3V
SIG BCM編碼17的引腳(對應實體引腳為11)
編寫如下測試代碼:
#coding:utf-8
import RPi.GPIO as GPIO
import time
touchPin = 11
GPIO.setmode(GPIO.BOARD)
GPIO.setup(touchPin,GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
while True:
swi = GPIO.input(touchPin)
print(swi)
time.sleep(0.5)
在樹莓派上運作上面代碼。通過觸摸傳感器,可以看到控制台上列印出對應的電平資訊。
下面,我們再來看一下本次實驗所使用的雷射子產品,如下圖所示:
此雷射子產品也有3個引腳,其中“-”号一側的引腳接地,中間引腳接3.3V電壓,“S”一側引腳接GPIO信号引腳。當S信号引腳輸入高電平時,雷射子產品被激活發射雷射,當S信号引腳輸入低電平時,雷射發射關閉。雷射子產品的接線如下:
雷射子產品 樹莓派
- GND
--- ---
中間引腳 3.3V
S BCM編碼18的引腳(對應實體引腳為12)
修改上面的示例代碼如下:
# 觸摸傳感器的信号引腳
# 雷射子產品的信号引腳
lightPin = 12
# 設定采用實體編碼
# 對觸摸傳感器的引腳進行初始化
# 對雷射傳感器的引腳進行初始化
GPIO.setup(lightPin,GPIO.OUT)
# 當觸摸發生時,觸摸傳感器的引腳輸入高電平
if swi == 1:
# 向雷射子產品的引腳輸出高電平,發射雷射
GPIO.output(lightPin, GPIO.HIGH)
else:
# 與上面相反,關閉雷射
GPIO.output(lightPin, GPIO.LOW)
在樹莓派上運作上面代碼,體驗下這個自制的雷射燈玩具吧!