PIRセンサ+サーボ

今回はPIRセンササーボを連携させてみます。
ハードウェアPWMを使うのでサーボをデジタル出力0番ピンに、PIRセンサをデジタル入力1番ピンにつなぎます。

DSC01554配線

動くものを検知した時に動き、検知していない時は止まるようにプログラムします。

 // pir_servo.c sample program for RaspberryHabu
 // Licence CC 0 ( Public Domain )
 
 #include "stdio.h"
 #include "wiringPi.h"
 #include "unistd.h"

int main()
{
  int pir,pwm;
  if (-1 == wiringPiSetup())
    {
      printf("setup error!");
      exit(1);
    }
  pinMode(1,PWM_OUTPUT);
  pinMode(0,INPUT);
  while(1){
    pir=digitalRead(0);
    if(pir == 1)
    {
    pwmWrite(1,10);
    usleep(50000);
    pwmWrite(1,500);
    usleep(50000);
    pwmWrite(1,10);
    }else if(pir == 0){
    pwmWrite(1,0);
    sleep(5);
    }
    printf("channel 0 : %d servo : %d\n", pir,pwm);
    pwmWrite(1,0);
    sleep (1);
  }
}

動く物を検知したとき、アナログ入力1ピンにつながったRaspberryPi上のLEDが光ります。

DSC01556動いたものを検知した時

DSC01555検知していない時

人が動いたときに何かを動かすようなロボットが作れます。
例えば扉の片側にサーボで扉のカギを開け閉めできるように設置するとオートロックドアを作れますね。

ブックマーク へのパーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>