산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

시각장애인용 스마트 블라인드 스틱: 아두이노 & 1Sheeld 기반 내비게이션 보조기기

부품 및 소모품

부품수량비고
1Sheeld 보드1스마트폰 센서/통신 연동 쉴드
아두이노 우노1메인 컨트롤러
안드로이드 스마트폰1GPS, SMS, 블루투스 제공
HC-SR04 초음파 센서2상/하단 장애물 감지용
DC 진동 모터2촉각 피드백용 (PVC 파이프 내장)
릴레이 모듈1외부 전원 제어용
토글 스위치1긴급 SOS 버튼
9V 배터리 + USB 변환 어댑터1휴대용 전원
점퍼 와이어, PVC 파이프 등-구조물 및 배선용

소프트웨어 및 앱

프로젝트 배경

기존 흰 지팡이는 사용자가 좌우로 흔들어 장애물을 탐지해야 하므로 피로도가 높고, 계단/구멍 등 높이 차이 감지가 어렵습니다. 이를 보완하고자 초음파 센서로 전방/하단 장애물을 감지해 진동으로 알리고, 스마트폰 GPS/SMS로 위치 기반 긴급 호출 기능을 추가한 프로토타입을 졸업작품으로 제작했습니다. 1Sheeld 덕분에 6개월 만에 완성할 수 있었습니다.

작동 원리

전원 및 초기화

9V 배터리 → USB 어댑터 → 아두이노 전원 공급. 1Sheeld와 스마트폰 블루투스 페어링 후 1Sheeld 앱에서 GPS, SMS 쉴드 활성화 필요. ※ 시각장애인 단독 사용 시 스마트폰 조작이 어려우므로, 향후 점자 키패드나 음성 명령 연동 필요.

장애물 감지 및 진동 피드백

GPS 위치 기반 긴급 SOS

스틱 길이 조절

PVC 파이프 연결부 나사식으로 사용자 신장에 맞게 길이 조절 가능. 감지 거리도 코드 상수 수정으로 조정.

코드 (핵심부)

#define CUSTOM_SETTINGS
#define INCLUDE_GPS_SHIELD
#define INCLUDE_SMS_SHIELD
#include <OneSheeld.h>
#include <string.h>

#define trigPinL 4
#define echoPinL 5
#define trigPinH 6
#define echoPinH 7
#define Vib1 12
#define Vib2 13
#define SW 8

boolean isInRange = false;
float lat, lon;
String PhoneNumber = "0134087286";  // 보호자 번호로 변경 필요
String Message, Message1, Message2;
char latitude[10], longitude[10];

void setup() {
  pinMode(trigPinL, OUTPUT); pinMode(echoPinL, INPUT);
  pinMode(trigPinH, OUTPUT); pinMode(echoPinH, INPUT);
  pinMode(Vib1, OUTPUT); pinMode(Vib2, OUTPUT);
  pinMode(SW, INPUT_PULLUP);  // 풀업 권장
  OneSheeld.begin();
}

void loop() {
  // 하단 센서 읽기
  digitalWrite(trigPinL, LOW); delayMicroseconds(2);
  digitalWrite(trigPinL, HIGH); delayMicroseconds(10);
  digitalWrite(trigPinL, LOW);
  long durationL = pulseIn(echoPinL, HIGH);
  int distanceL = (durationL / 2) / 29.1;

  // 상단 센서 읽기
  digitalWrite(trigPinH, LOW); delayMicroseconds(2);
  digitalWrite(trigPinH, HIGH); delayMicroseconds(10);
  digitalWrite(trigPinH, LOW);
  long durationH = pulseIn(echoPinH, HIGH);
  int distanceH = (durationH / 2) / 29.1;

  // 진동 피드백
  if (distanceL > 40) digitalWrite(Vib1, HIGH); else digitalWrite(Vib1, LOW);
  if (distanceH < 100) {
    digitalWrite(Vib1, HIGH); delay(200);
    digitalWrite(Vib1, LOW); delay(200);
  }

  // SOS 버튼 (토글 스위치 LOW 시 전송)
  if (digitalRead(SW) == LOW) {
    lat = GPS.getLatitude();
    lon = GPS.getLongitude();
    Message1 = String(lat, 8);
    Message2 = String(lon, 8);
    Message = "I need Help! I'm at latitude: " + Message1 + " and longitude: " + Message2;
    Message += " Google Maps - https://www.google.co.in/maps/place/" + Message1 + "," + Message2;
    SMS.send(PhoneNumber, Message);
    delay(3000);
  }
  delay(1000);
}

회로도

Fritzing 파일(`OneSheeldTONGKAT.fzz`) 제공. 주요 연결: 초음파 센서 2개, 진동 모터 2개, 토글 스위치, 1Sheeld 보드(아두이노 위에 적층).

개선 과제 및 향후 계획

참고 자료

제조공정

  1. 아두이노 나노 33 BLE 센스에서 Edge Impulse로 구현하는 TinyML 언어 감지기
  2. 아두이노 나노와 MPU-6050으로 실시간 자이로스코프 게임 만들기
  3. 아두이노 디지털 주사위: LCD 기반 랜덤 넘버 제너레이터 만들기
  4. 아두이노 나노로 37개 LED 룰렛 게임 만들기
  5. ATtiny85 미니 아케이드: 스네이크 게임 - 휴대용 OLED 게임기 만들기
  6. 휴대용 거리 감지기: HC-SR04, 18650 배터리, 3D 프린트 케이스의 아두이노 나노 DIY 키트
  7. 아두이노 나노로 만드는 오디오 반응형 책상 무드등 (주소 지정 LED)
  8. 아두이노 나노 & OpenCV로 만드는 자율 주행 안면 추적 로봇 카
  9. 구리 도금 프로젝트: 아두이노 우노로 만드는 스마트 전기분해 시스템
  10. 아두이노 나노와 네오픽셀 매트릭스로 만드는 네온 퐁 게임