SparkFun 아두이노 Pro Mini 328 - 5V/16MHz (아두이노 마이크로컨트롤러 아무 버전이나 가능)
1
초음파 센서 HC-SR04 (일반)
1
부저
1
점퍼 와이어 (일반)
1
선글라스
1
필요한 도구 및 장비
납땜 인두 (일반)
글루 건 (일반)
앱 및 온라인 서비스
아두이노 IDE (클라우드 IDE도 사용 가능)
프로젝트 소개
이것은 올해 5학년인 제 아들 Jacob의 STEM 박람회 프로젝트입니다. 그는 실험 프로젝트 대신 엔지니어링 프로젝트를 하기로 결정했습니다. 장애인들에게 어떤 식으로든 도움이 되는 무언가를 발명하고 싶었죠. 그는 시각 장애인들이 앞에 있는 물체를 감지하여 머리를 부딪히지 않게 해주는 안경을 고안했습니다. 걸을 때 사용하는 흰 지팡이는 바닥 탐색에는 도움이 되지만 위쪽에는 별로 도움이 되지 않습니다. 아두이노 Pro Mini MCU, 초음파 센서, 부저를 사용하여 앞에 있는 물체의 거리를 감지하고 비프음으로 경고하는 안경을 만들었습니다. 제작이 간단하고 저렴합니다. 일부 부품은 hackerboxes.com에서 제공받았습니다.
코드
시각 장애인용 초음파 안경 (아두이노)
이 아두이노 코드는 HC-SR04 초음파 센서와 아두이노 Pro Mini 마이크로컨트롤러를 사용합니다. 어떤 아두이노 마이크로컨트롤러와도 호환됩니다. 코드는 음파가 되돌아오는 데 걸리는 시간(밀리초)을 센티미터 단위 거리로 변환하여 거리를 감지합니다. 물체가 62cm(약 2피트) 이내에 있으면 간헐적으로 비프음이 울리고, 31cm(약 1피트) 이내면 연속적인 단일 비프음이 울립니다. 아두이노 IDE에 내장된 라이브러리 외에 추가 하드웨어 라이브러리가 필요 없는 매우 간단한 코드입니다.
/* 초음파 센서 선글라스용 아두이노 코드 - Jacob Gardner, 5학년 STEM 엔지니어링 프로젝트 */
#define trigPin 8 // 값에 이름을 할당하여 쉽게 식별
#define echoPin 7
#define buzzer 12 // 코드 실행 전 설정
/* 이 코드 섹션은 한 번만 실행됩니다.
* 시리얼 모니터 출력을 활성화하고
* 핀을 입력 또는 출력으로 설정합니다. */
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzer, OUTPUT);
}
/* 나머지 코드는 끊임없이 루프를 돕니다.
* 초음파 센서를 트리거하고 음파가 돌아오는 데 걸린 시간을 계산합니다.
* 밀리초 단위 시간을 센티미터 단위 거리로 변환합니다. */
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
Serial.print(distance);
Serial.println(" cm");
// 감지된 거리에 따라 비프음 여부 결정
// 물체가 62cm 이내면 비프음 시작
if (distance > 30 && distance < 62) {
tone(buzzer, 100, 50); // 간헐적 비프음
}
if (distance > 0 && distance < 31) {
tone(buzzer, 100); // 연속 비프음
} else {
}
delay(500);
}
회로도
초음파 안경 회로도입니다. 아두이노 Pro Mini와 HC-SR04 초음파 센서를 사용하며, 9V 배터리로 전원을 공급합니다.