Raspberry Piで人体感知センサーモジュールを作動し、LEDを点灯する

概要

人感センサ(じんかんセンサ)とは、人間の所在を検知するためのセンサです。
赤外線、超音波、可視光などが用いられます。業務用の場合、赤外線と超音波を組み合わせることもあります。一般家庭用の場合は赤外線のみであることが多いです。
普段の人感センサはBISS0001 (マイクロパワーPIRモーション検出IC)基づいて、センサからのアナログ信号をデジタル信号に変更したら、出力します。

このプロジェクトの原理について、人感センサは人間のムーブメントが感知したら、Raspberry PiのGPIO port(input)へ高電位信号を送信し、Raspberry PiのGPIO port(output)を使用してLEDを点灯します。人感センサは人間のムーブメントが感知しない時、Raspberry PiのGPIO port(input)へ低電位信号を送信し、Raspberry PiのGPIO port(output)を使用してLEDを消灯します。このプロジェクトでは、Python(パイソン)と言うプログラミング言語を使用いたします。どうぞお楽しみください~

実例図

DSC_54581

必要なパーツ

  • PI-300x295 Raspberry Pi ボード x1
  • Digital-Motion-Sensor 人感センサ x1
  • LACC2006AD-24 LED x1
  • LACC2006AD-33-300x300 ジャンプワイヤー 若干
  • LACC2006AD-12 ブレッドボード x1
  • LACC2006AD-26 1KΩ抵抗 x1
  • breakout T型GPIO拡張ボード

    40 Pinケーブル

    非必要

配線図

motionsensorr&led

人感センサの回路図

schematic

人感センサの概要図

Delay Time Adjust:遅延時間の調整

Sensitivity Adjust:感度の調整

3VDC regulator:3VDC レギュレータ

BISS0001 PIR Chip:BISS0001 IC

adjust

ソフトウエアのインストール

(1)Python 言語を使用のため、 ラズベリー・パイに GPIO ライブラリと Python ライブラリのインストールが必要です:

ラズベリー・パイのTerminal窓に、apt-getのソフトパッケージリストを更新して(インタネットとの接続が必要)、必要なライブラリをインストールしてくださいませ:

ラズベリー・パイのTerminal窓に、下記のコマンドを入力して、 "Enter"キーを押して下さい:

a) ソフトウエア リストの更新 コマンド:

sudo apt-get update

b) pythonのインストール :

 sudo apt-get install python-dev

c)python-pipのインストール(python-pipはpython ソフトの管理用ソフトである):

sudo apt-get install python-pip

d)pipコマンドを使って、 rpi.gpio をインストールする:

sudo pip install rpi.gpio

e) 下記のコマンドを動作して、pythonをテストする:

sudo python

下記の写真のように表示したら、GPIOライブラリとPythonライブラリが正しくインストールしたと判明できます。

DSC_54581

(2)プログラミング

ラズベリー・パイとHDMIモニターを接続して、プログラミング工作を開始します。 モニターがない場合、SSH(Puttyをお勧め)を使用してくださいませ。

pythonコードのコンパイルについて、AとBの2つの方法がありますので、お客様のご都合で選択してくださいませ:

A. led.pyファイルの新規作成と編集する:

1)ラズベリー・パイのTerminal窓に、下記のコマンドを入力して、 "Enter"キーを押して、パイ(例:/home/pi/)にled.pyファイルの新規作成:

sudo touch led.py 


2)ラズベリー・パイのTerminal窓に、下記のコマンドを入力して、 "Enter"キーを押して、「led.py」ファイルに入ってください:

sudo nano led.py

3)下記のコードを「led.py」にコピーして、 キーボードの"Ctrl" + "X"押して、"Y"を入力して、ファイルを保存してくださいませ。

#turns on and off a light emitting diode(LED) depending on motion sensor

import RPi.GPIO as GPIO             #importing the RPi.GPIO module
import time                        #importing the time module
GPIO.cleanup()                     #to clean up at the end of your script
led_pin = 37                       #select the pin for the LED
motion_pin = 35                    #select the pin for the motion sensor
def init():
  GPIO.setmode(GPIO.BOARD)         #to specify which pin numbering system
  GPIO.setwarnings(False)   
  GPIO.setup(led_pin,GPIO.OUT)                             #declare the led_pin as an output 
  GPIO.setup(motion_pin,GPIO.IN,pull_up_down=GPIO.PUD_UP)  #declare the motion_pin as an input
  print("-----------------------------------------------------------------------")  

def main():
  while True:
    value=GPIO.input(motion_pin)  
    if value!=0:                             #to read the value of a GPIO pin
      GPIO.output(led_pin,GPIO.HIGH)                #turn on led
      time.sleep(2)        #delay 2ms
      print "LED on"                           #print information
    else:
      GPIO.output(led_pin,GPIO.LOW)                #turn off led
      time.sleep(2)       #delay 2ms
      print "LED off"                         #print information

init()
main()
GPIO.cleanup()

4) ファイルを保存完了したら、キーボードの "Enter"ボダンを押して、nano エディターを終了します。

2017-03-13-071323_1824x984_scrot

B. 直接に弊社編集済みのled.pyファイルをダウンロードする:

ラズベリー・パイのTerminal窓に、下記のコマンドを入力して、 "Enter"キーを押して、弊社のサーバーから直接にファイルをダウンロードできます:

wget http://osoyoo.com/driver/led.py

(3)led.pyファイルを動作して、実験の結果を確認する:

ラズベリー・パイのTerminal窓に、下記のコマンドを入力して、 "Enter"キーを押して、led.pyファイルを動作します:

sudo python  ./led.py

, 手でセンサーを遮ると、LEDを点灯します:

2017-03-13-071911_1824x984_scrot

Posted in Uncategorized

Leave a Reply

WordPress spam blocked by CleanTalk.