由於一般市售PIR紅外線大都是 3.3V輸出,也就是感測到移動物體時輸出 3.3V, 沒感測到時輸出 0V, 所以在MotoPiduino 板子上直接接到數位IO腳位無法判讀輸出結果,因為未達5V電壓, 此MotoPiduino是把5V電壓轉換成 3.3V樹莓派可以運作的電位. 如此我們可以利用類比IO腳位來判讀是否偵測到移動物體.
一. 使用材料:
1. Raspberry Pi
2. MotoPiduino
3. PIR 紅外線感測器
4. S4A IO Board (option)
二. 接線:
1. 把 PIR 接到 MotoPiduino A0 位置
或
直接接到 S4A IO Board 的 A0 孔位
三. 接線方式如圖:
2. 編寫Python PIR 程式 my_PIR_sensor.py 如下(請該檔案建立在adafruit_ADS1x15目錄下)
一. 使用材料:
1. Raspberry Pi
2. MotoPiduino
3. PIR 紅外線感測器
4. S4A IO Board (option)
二. 接線:
1. 把 PIR 接到 MotoPiduino A0 位置
或
直接接到 S4A IO Board 的 A0 孔位
三. 接線方式如圖:
四. I2C Library 軟體下載點:
1. 下載 ADS1015 (I2C) Library : https://github.com/m3m0ry/Adafruit-Raspberry-Pi-Python-Code2. 編寫Python PIR 程式 my_PIR_sensor.py 如下(請該檔案建立在adafruit_ADS1x15目錄下)
import time, signal, sys
from Adafruit_ADS1x15 import ADS1x15
def signal_handler(signal, frame):
print 'You pressed Ctrl+C!'
sys.exit(0)
signal.signal(signal.SIGINT,
signal_handler)
#print 'Press Ctrl+C to exit'
ADS1015 = 0x00 # 12-bit ADC
adc = ADS1x15(ic=ADS1015)
while True:
#
Read channel 0 in single-ended mode, +/-4.096V, 250sps
volts = adc.readADCSingleEnded(0, 4096, 250) / 1000
print "Channel 0 = %.6f" % (volts)
if(volts > 3.0):
print "Detected something..."
else:
print "detected nothing..."
time.sleep(1)
五. 執行:
$ sudo python my_PIR_sensor.py
$ sudo python my_PIR_sensor.py
Informatiom: http://www.motoduino.com