天天看點

一起玩轉樹莓派(10)——觸控雷射燈

 如果你已經閱讀并且練習了本系列部落格前面實驗,那麼我相信你已經能夠使用樹莓派做很多有趣的事情。本部落格将要介紹的内容就是一個例子。

     你在小時候有玩過雷射燈麼?其模樣類似于一個小型的手電筒,隻是其光線十分集中,亮度強,并且通過不同的濾片,可以在牆上或地上打射出不同的圖案,十分有趣。本實驗,我們将找回童趣,使用觸摸傳感器和雷射燈傳感器來實作一個簡易的觸控雷射燈。

     本實驗的原理非常簡單,無非是通過樹莓派的GPIO引腳來讀取觸摸傳感器的資料,之後将其用于操作雷射傳感器的開關控制上。本次實驗使用的觸摸傳感器如下圖所示:

一起玩轉樹莓派(10)——觸控雷射燈

此觸摸傳感器有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)

在樹莓派上運作上面代碼。通過觸摸傳感器,可以看到控制台上列印出對應的電平資訊。

     下面,我們再來看一下本次實驗所使用的雷射子產品,如下圖所示:

一起玩轉樹莓派(10)——觸控雷射燈

此雷射子產品也有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)

在樹莓派上運作上面代碼,體驗下這個自制的雷射燈玩具吧!

繼續閱讀