메뉴 전체보기

회원메뉴

DESHBOT SHIELD를 활용한 경계 침입 감지 로봇 > 게시판

본문 바로가기

쇼핑몰 검색

NO. 3162
제목 : DESHBOT SHIELD를 활용한 경계 침입 감지 로봇
2026-09-03 10:41

소개: DESHBOT SHIELD를 활용한 경계 침입 감지 로봇


보호 구역에 진입하는 물체나 사람을 감지하고 경보를 울리기 위해 경계 침입 감지 로봇초음파 센서, IR 센서 및 버저 를 사용하여 설계합니다.




STEP 1. 준비물


준비물


준비물


준비물


번호부품수량

1)DESHBOT Shield

1

2)Arduino Nano

1

3)초음파 센서 (HC-SR04)

1

4)IR 센서

1

5)버저

1

6)점퍼 와이어

필요한 만큼

7)배터리/USB 전원

1




STEP 2. 작동 원리


다음 초음파 센서 는 봇과 주변 물체 사이의 거리를 지속적으로 측정합니다. 물체가 미리 설정된 거리 안으로 들어오면 Arduino는 이를 침입으로 간주합니다.

다음 IR 센서 는 적외선을 사용하여 물체나 사람을 감지합니다. IR 센서가 장애물을 감지하면 Arduino로 신호를 보냅니다.

Arduino Nano는 두 센서의 신호를 모두 처리합니다:

  1. 초음파 센서가 물체 감지 → 부저 켜짐
  2. IR 센서가 물체 감지 → 부저 켜짐
  3. 침입이 감지되지 않음 → 부저 꺼짐

따라서 이 봇은 제한 구역 주변의 움직임을 감지하는 간단한 보안 시스템으로 사용할 수 있습니다.




STEP 3. 연결


부품 핀 / 연결

초음파 TRIG - A3

초음파 ECHO - A4

초음파 VCC - 5V

초음파 GND - GND

IR 센서 OUT - D2

IR 센서 VCC - 5V

IR 센서 GND - GND

부저 + D11(내장)

부저 − GND




STEP 4. 코드


물론입니다. 다음은 단계별 코드 설명입니다. 프로젝트 문서에 바로 붙여 넣을 수 있도록 작성했습니다.

코드 설명 – 경계 침입 감지 봇

1단계: 핀 연결 정의


const int TRIG_PIN = A3;
const int ECHO_PIN = A4;
const int IR_PIN = A5;
const int BUZZER_PIN = 11;

  1. TRIG_PIN은 초음파 센서의 TRIG 핀에 연결됩니다.
  2. ECHO_PIN은 초음파 센서의 ECHO 핀에 연결됩니다.
  3. IR_PIN은 IR 센서 출력에 연결됩니다.
  4. BUZZER_PIN은 버저에 연결됩니다.
  5. 이 핀 번호는 각 부품이 Arduino의 어디에 연결되어 있는지를 알려 줍니다.

2단계: 경고 거리 설정


const int ALERT_DISTANCE = 30;

  1. 경고 거리는 30 cm로 설정됩니다.
  2. 물체가 초음파 센서에서 30 cm 이내로 들어오면 침입이 감지됩니다.

3단계: Setup 함수


void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(IR_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);

digitalWrite(BUZZER_PIN, LOW);

Serial.begin(9600);
}

setup() 함수는 Arduino가 시작될 때 한 번만 실행됩니다.

  1. TRIG는 Arduino가 이를 통해 신호를 보내기 때문에 OUTPUT 으로 설정됩니다.
  2. ECHO는 Arduino가 초음파 신호를 수신하기 때문에 INPUT 으로 설정됩니다.
  3. IR 센서는 감지 신호를 수신하기 위해 INPUT 으로 설정됩니다.
  4. 버저는 Arduino가 제어하기 때문에 OUTPUT 으로 설정됩니다.
  5. 버저는 처음에 OFF상태로 설정됩니다.
  6. Serial.begin(9600)은 9600 baud로 Serial Monitor 통신을 시작합니다.

4단계: 메인 루프 시작


void loop() {

loop() 함수는 계속해서실행됩니다.

Arduino는 다음 작업을 반복합니다:

  1. 거리를 측정합니다.
  2. IR 센서를 읽습니다.
  3. 침입 여부를 확인합니다.
  4. 버저를 제어합니다.

5단계: 초음파 펄스 전송


digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);

digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);

digitalWrite(TRIG_PIN, LOW);

  1. 먼저 TRIG 핀을 LOW로 설정합니다.
  2. 그런 다음 10 microseconds동안 HIGH로 설정합니다.
  3. 이렇게 하면 짧은 초음파 트리거 펄스가 생성됩니다.
  4. 초음파 센서가 초음파를 방출합니다.

6단계: 에코 읽기


long duration = pulseIn(ECHO_PIN, HIGH, 30000);

  1. Arduino는 초음파가 돌아올 때까지 기다립니다.
  2. pulseIn()은 ECHO 핀이 HIGH로 유지되는 시간을 측정합니다.
  3. 측정된 시간은 duration에 저장됩니다.
  4. 30000은 최대 대기 시간인 30,000 microseconds를 의미합니다.

7단계: 거리 계산


int distance = duration * 0.034 / 2;

Arduino는 에코 시간을 센티미터 단위의 거리로 변환합니다.

  1. 0.034는 마이크로초당 cm 단위로 나타낸 음속의 근삿값입니다.
  2. 소리가 물체까지 갔다가 돌아오기때문에 결과를 2로 나눕니다.

계산된 거리는 distance 변수에 저장됩니다.

8단계: IR 센서 읽기


int irValue = digitalRead(IR_PIN);

  1. Arduino는 IR 센서의 출력을 읽습니다.
  2. 값은 irValue에 저장됩니다.
  3. IR 센서에 따라 다르지만, 이 설정에서는 일반적으로 LOW가 물체가 감지되었음을 의미합니다.

9단계: 센서 값 표시


Serial.print("Distance: ");
Serial.print(distance);
Serial.print(" cm | IR: ");
Serial.println(irValue);

이 기능은 센서 측정값을 Serial Monitor에 표시합니다.

예:

Distance: 45 cm | IR: 1
Distance: 20 cm | IR: 0

이를 통해 프로젝트를 테스트하는 동안 센서를 모니터링할 수 있습니다.

10단계: 침입 여부 확인


if ((distance > 0 && distance <= ALERT_DISTANCE) || irValue == LOW) {

Arduino는 두 가지 조건을 확인합니다:

조건 1:

초음파 센서가 1 and 30 cm사이의 물체를 감지합니다.

OR

조건 2:

IR 센서가 물체를 감지합니다(LOW).

두 센서 중 하나라도 침입을 감지하면조건은 TRUE가 됩니다.

11단계: 버저 켜기


digitalWrite(BUZZER_PIN, HIGH);

Serial.println("!!! INTRUSION DETECTED !!!");

침입이 감지되면:

  1. 부저가 ON상태가 됩니다.
  2. Serial Monitor에 "INTRUSION DETECTED"가 표시됩니다.

12단계: 영역 이상 없음


else {
digitalWrite(BUZZER_PIN, LOW);

Serial.println("Area Clear");
}

두 센서 모두 침입을 감지하지 않으면:

  1. 부저는 계속 OFF상태로 유지됩니다.
  2. "Area Clear"가 표시됩니다.

13단계: 짧은 지연


delay(200);

Arduino는 다음 과정을 반복하기 전에 200밀리초 동안 대기합니다.

이를 통해 시스템이 안정적인 값을 읽을 시간을 확보하고 Serial Monitor가 너무 빠르게 업데이트되는 것을 방지합니다.


원문: https://www.instructables.com/Perimeter-Intrusion-Bot-kit-Only-Ultrasonic-IR-Buz/

좋아요 0
게시판

회사명 공방유니언 주소 각 공방 주소 참조
사업자 등록번호 0000 대표 공방유니언 전화 019-60105846 팩스 0000 이메일 gongbangunion@gmail.com
통신판매업신고번호 0000 개인정보관리책임자 공방유니언
Copyright © 2017 공방유니언. All Rights Reserved.