초음파 센서를 이용한 개체 인식

by 디노 | 2018-05-15 00:02
아두이노 초음파센서

재료

  • 초음파센서 1개
  • LEDSTRIP 1개
  • 아두이노 1개

프로젝트 프레임워크

Setup

1. 개체를 인식한다

2. 빛이 나에게 달려온다 강아지 처럼


Loop

1. 지속적으로 나를 인식한다

2. LED가 나의 위치에 해당하는 LED STRIP의 PIN의 +-3 개를 ON 한다.





이번 시간에는 첫번째 과제인 개체를 인식하는 방법을 연구해 보았습니다.

가장 사용하기 쉬운 초음파센서를 활용하여, 문의 너비인 120cm에 절반인 60cm가 거리값으로 인식될때, LED 스트립을 키는 방식을 구현해 보았습니다.





코드는 다음과 같습니다.


 //초음파 센서의 핀번호를 설정한다.

int echoPin = 9;
int trigPin = 8;
#include <Adafruit_NeoPixel.h>
#define PIN 4
Adafruit_NeoPixel strip = Adafruit_NeoPixel(26, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  Serial.begin(9600);
  // trig를 출력모드로 설정, echo를 입력모드로 설정
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  strip.begin(); 
  strip.show(); 
}

void loop() {

  
  // 초음파를 보낸다. 다 보내면 echo가 HIGH 상태로 대기하게 된다.
    digitalWrite(trigPin, LOW);
    digitalWrite(echoPin, LOW);
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);

  
  // echoPin 이 HIGH를 유지한 시간을 저장 한다.
    unsigned long duration = pulseIn(echoPin, HIGH); 
  // HIGH 였을 때 시간(초음파가 보냈다가 다시 들어온 시간)을 가지고 거리를 계산 한다.
  float distance = ((float)(340 * duration) / 10000) / 2;  
  
  Serial.print(distance);
  Serial.println("cm");
  // 수정한 값을 출력

  // 측정된 거리가 10cm 이하라면, 아래의 블록을 실행합니다.
  if (distance < 60) {
    // LED가 연결된 핀의 로직레벨을 HIGH (5V)로 설정하여, LED가 켜지도록 합니다.
    strip.setPixelColor(1, strip.Color(150,150,150));
    strip.setPixelColor(2, strip.Color(150,150,150));
    strip.setPixelColor(3, strip.Color(150,150,150));
    strip.setPixelColor(4, strip.Color(150,150,150));
    strip.setPixelColor(5, strip.Color(150,150,150));
    strip.setPixelColor(6, strip.Color(150,150,150));
    strip.setPixelColor(7, strip.Color(150,150,150));
    strip.setPixelColor(8, strip.Color(150,150,150)); 

    strip.show(); // This sends the updated pixel color to the hardware
    delay(1000);
    strip.clear();
  }
  // 측정된 거리가 10cm 이상이라면, 아래의 블록을 실행합니다.
  else {
    // LED가 연결된 핀의 로직레벨을 LOW (0V)로 설정하여, LED가 꺼지도록 합니다.
    strip.show(); // This sends the updated pixel color to the hardware
    strip.clear();
  }
}



한계점 :  지속적인 개체 인식이 불가능하다는 문제점이 있습니다. 이러면 현광등이랑 다를것이 없어요. 그래서 지속적인 개체 인식을 하여 그 위치에 맞는 LED PIN을 키기 위해 카메라 비전에 도전해 보려고합니다.

댓글 0

MADE BY

디노

3d 모델링 출력, 3d모델링, 동영상 편집, 아두이노, 자바, 포토샵, 프로세싱, 회로
초음파 센서를 이용한 개체 인식현재글