아두이노 우노 기반 인간 감지 로봇: 센서 통합 단계별 가이드
필요한 부품 및 소모품
| 아두이노 우노 (Arduino UNO) |
1개 |
| 모터 컨트롤 쉴드 (Development Board) |
1개 |
| SG90 마이크로 서보 모터 |
1개 |
| DC 모터 12V |
4개 |
| 초음파 센서 HC-SR04 |
1개 |
| DHT11 온습도 센서 (4핀) |
1개 |
| 9V 배터리 |
1개 |
| 점퍼 와이어 |
1세트 |
| PIR 센서 (7m 감지) |
1개 |
필요한 도구 및 기계
- 멀티툴/드라이버, 납땜 인두, 납땜 플럭스, 무연 납땜 와이어, 글루건
앱 및 온라인 서비스
- 아두이노 IDE
- 마이크로소프트 윈도우 10
- Control Center 안드로이드 앱 (블루투스 제어용)
프로젝트 소개
재난, 지진, 홍수 등 자연재해로 지하 등에 갇힌 사람을 적시에 구조하기 위한 모바일 구조 로봇 차량 시스템입니다. 아두이노로 제어되어 몇 초 내에 전체 과정이 완료됩니다.
주요 센서 및 기능
- PIR 센서: 인체에서 방출되는 10마이크론 파장의 열적외선 감지로 사람 움직임 감지 (5V DC 동작)
- 초음파 센서 (HC-SR04): 장애물 감지 및 거리 측정으로 자율 주행 경로 결정
- DHT11 센서: 현장 온습도 환경 모니터링
- 서보 모터: 초음파 센서 방향 제어 (스캐닝)
- 블루투스: 감지 데이터 및 로봇 상태를 베이스 스테이션(Control Center)으로 전송
시스템 동작 흐름
- PIR 센서가 사람 움직임 감지 → LED 표시 및 블루투스로 알림 전송
- 초음파 센서로 전방/좌/우 거리 측정 → 장애물 회피 경로 결정
- 모터 쉴드로 4개 DC 모터 제어 → 전진, 후진, 좌/우 회전, 정지
- 구조대원이 수신한 데이터 분석 후 구조 작업 투입
코드
Human Detection.ino (아두이노)
#include <NewPing.h>
#include <AFMotor.h>
#include <Servo.h>
#define TRIG_PIN A0
#define ECHO_PIN A1
#define MAX_DISTANCE 400
#define MAX_SPEED 255
#define COLL_DIST 20
#define TURN_DIST COLL_DIST+10
#define ACT_TIME 250
int calibrationTime = 30;
long unsigned int lowIn, pause = 5000;
boolean lockLow = true, takeLowTime;
int pirPin = A3, ledPin = A2;
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
AF_DCMotor motorR(1, MOTOR12_1KHZ);
AF_DCMotor motorL(4, MOTOR12_1KHZ);
Servo myservo;
void setup() {
Serial.begin(9600);
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(pirPin, LOW);
// PIR 센서 캘리브레이션 (30초)
for (int i = 0; i < calibrationTime; i++) { delay(1000); }
myservo.attach(9);
myservo.write(90); // 전방 향함
delay(2000);
moveForward();
}
void loop() {
checkPath(); // 초음파로 경로 확인
// PIR 센서로 사람 감지
if (digitalRead(pirPin) == HIGH) {
digitalWrite(ledPin, HIGH);
if (lockLow) { /* 감지 로그 출력 */ lockLow = false; }
takeLowTime = true;
} else {
digitalWrite(ledPin, LOW);
if (takeLowTime) { lowIn = millis(); takeLowTime = false; }
if (!lockLow && millis() - lowIn > pause) { /* 감지 종료 로그 */ lockLow = true; }
}
}
// 경로 확인, 서보 스캐닝, 모터 제어 함수들...
// (전체 코드는 원문 참조)
회로도
- 블록 다이어그램: 센서-아두이노 인터페이스
- 회로도: 센서-아두이노 우노 상세 연결
- 플로우 차트: 시스템 동작 흐름