로보밥 여름특집!!!   얼렁뚱땅 움직이면 쏘는 버블건을 제작했습니다.

아파트 계단이나 현관문에 많이사용되는 모션센서형 전등을 많이 보셨을 겁니다.   사람이 없을때는 미작동 되다가 다가오면 작동되므로 에너지 절약도 되고, 스위치 작동시키는 불편함도 없으므로 실생활에 매우 유용한 자동화 기기입니다.

이때 사용되는 센서가 PIR 근적외선 모션센서인데요 인체에서 방사되는 근적외선의 변화량을 감지하는 PIR센서가 들어있습니다. 아마도 많은 분들이 이를 응용하여 무언가를 만들고 싶어하실겁니다. 저도 마찬가지죠 ^^.   마침 며칠전 대형 할인점에 갔다가 버블건을 보고 좋은 응용예가 생각이 나서 만들어 봤습니다.

버블건의 원리는 모터의 회전시 물펌프로 비누액체를 뿜어올려주면서 동시에 팬으로 바람을 불어 비누방울을 날려주는 것입니다.  헉;;;  이 가격에 이런 기계를 만들어내는 분들에게 감사의 인사를 드리고 싶습니다 ^^.

모터 하나로 물펌프와 송풍용팬을 동시에 작동시키는 구조인데요, 보통 모터를 제어하려면 모터 드라이버를 사용하거나 릴레이를 사용하는게 정석일테지만,  이 버블건은 모터만 켜주면 되는건 아니고 방아쇠와 연결된 핸들이 비누액을 버블홀에 골고루 발라주는 역활을 하므로 반드시 방아쇠를 잡아 당겨줘야하는 구조였습니다.

음,,,   결국  서보모터 하나로 해결이 되었습니다.  그냥 손가락으로 당기듯이 서보모터를 작동시키는 방법입니다.
 단, 방아쇠의 스프링 장력이 좀 쌘것같아서 일부를 절단한 상태입니다.

버블건도 전등같이 하루 종일 켜져 있으면 효율적이지 않겠죠?!
항상 켜져있는것보다 사람이 곁에 있을경우에만 작동시킬 수 있으므로 효율적이며,  모르고 다가온 사람에게 놀라움을 선물할 수 도 있게됩니다. 


 

 

 





구현TIP
PIR 모션센서는 5V~12V에서 작동됩니다만,  9V이상의 전압에서 더 반응성이 좋습니다.  가령, 5V전원으로 사용시 감지된 뒤에 한동안 재 감지가 잘 되지 않는 현상이 있습니다.  9V전원을 사용후 이증상이 없어지는것을 확인했습니다.  즉, 수시로 감지되는 경우 9V이상의 전압으로 작동하시기 바랍니다.  단, 신호출력선은 아두이노에 입력해야 하므로 9V에 연결하시면 안되고 5V전원선과 10K옴 저항으로 연결해주셔야 합니다.


 

회로 연결 방법


아두이노 스케치 소스
#include <Servo.h>

const int ledPin = 13;
const int inputPin = 2;
const int posA = 90;
const int posB = 60;
Servo myservo;
unsigned long lastShotTime;

void setup(){
  pinMode(ledPin, OUTPUT);
  pinMode(inputPin, INPUT);
    myservo.attach(9);  // attaches the servo on pin 9 to the servo object
  lastShotTime = millis();
  Serial.begin(9600);
}

void loop(){
  int val = digitalRead(inputPin);
 // Serial.println( val);
   delay(500);
   if(val){
     myservo.write(posA);
     digitalWrite( ledPin, LOW);
   }else{
    digitalWrite( ledPin, HIGH);   
    trigger();
   }
}

void trigger(){
  if((lastShotTime + 20000UL) < millis() ){
    readyShot();
  }
  longShot();
  lastShotTime = millis();
  Serial.println( lastShotTime);
}

void readyShot(){
  myservo.write(posB);
  delay(500);
  myservo.write(posA);
  delay(500);
  myservo.write(posB);
  delay(500);
  myservo.write(posA);
  delay(500);
  myservo.write(posB);
  delay(500); 
  myservo.write(posA);
  delay(500);   
}

void longShot(){
  myservo.write(posB);
  delay(3000);
  myservo.write(posA);
}

소스 소개
PIR 센서에서 움직임이 감지되면, 출력선의 전압신호가 High에서 Low로 떨어집니다. 이를 디지탈핀에서 감지하여 서보모터를 회전시켜서 버블건을 작동시키게 됩니다.   지정된 시간(20000ms, 20초)동안 미작동상태에서 작동될 경우, 초기 거품 생성을 위해 3회를 짧게 작동시킨 후 지정된 시간(3000ms, 3초)동안 작동 되도록 프로그램 되었습니다.


재료:
1. 버블건 4,000원 ~ 10,000원 정도 (문방구, 대형할인점)
2. 아두이노(Arduino) 
3. PIR 근적외선 모션센서 
4. 서보모터
5-1. 휴대형 전원 => 9V 배럴잭 + 9V 건전지 (알카라인 고급형)
5-2. 실내형 전원 => 9V 아답터 전원 

( 9V 전지는 알카라인 고급형을 사용하셔야 잘 작동됩니다. 저가 9V 망간전지로는 서보모터 작동이 잘 안되네요)

 

연결법 안내 사진추가(2012.6.10)
안내해드린 모션센서가 5V에서 작동시엔 감이 너무 느려서 답답하며 9V ~12V 전원을 사용해야 정상 작동이 됩니다. 이때 어떻게 연결을 해야하는지 문의가 많으셨는데요...  늦게나마  아래의 사진을 올려드리오니 참고하시기 바랍니다. 아두이노 전원이 9~12V 정전압 전원인경우 아래 그림과 같이 아두이노에 있는 Vin 단자로부터 전원출력이 가능하므로 편리합니다. 별도의 전원을 사용하실때는  Vcc와 GND에 별도전원을 연결하시고  꼭  아두이노+센서+전원의 GND를 공통 함께 연결해주시기 바랍니다. 



 

+ Recent posts