今回はPIRセンサとサーボを連携させてみます。
ハードウェアPWMを使うのでサーボをデジタル出力0番ピンに、PIRセンサをデジタル入力1番ピンにつなぎます。
動くものを検知した時に動き、検知していない時は止まるようにプログラムします。
// 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が光ります。
人が動いたときに何かを動かすようなロボットが作れます。
例えば扉の片側にサーボで扉のカギを開け閉めできるように設置するとオートロックドアを作れますね。


