[아두이노] 아두이노 네비게이션 DIY


아두이노 네비게이션이라고 하면 좀 거창한 DIY 같은 느낌인데 실제로는 간단한 참고용 프로젝트입니다. 스마트 워치 프로젝트 관련해서 메일을 주고받던 Donato Brusamento 이탈리아 친구의 아이디어로 시작해서 같이 만들었습니다.

아두이노 네비게이션이 하는 일은 간단합니다. 먼저 스마트 폰에서 전용 앱을 실행해서 원하는 목적지를 설정합니다. 그럼 현재 위치에서 목적지까지의 거리와 방위를 계산해서 아두이노로 보내줍니다. 아두이노는 이 정보를 받아서 OLED 디스플레이에 표시해 주는 방식입니다.

아래 사진처럼 동작합니다.

working_small

 

이걸 어디에 쓰나 생각되실 텐데요. 리챌(Le Chal) 이라는 스마트 슈즈 상품이 있습니다. 이 상품의 주요 특징 중 하나가 스마트 폰으로 목적지를 설정하면 목적지까지의 경로를 좌우 깔창의 진동으로 알려줍니다. 아두이노 네비게이션은 이런 DIY 프로젝트를 개발할 때 참고할 수 있도록 관련 소스를 오픈소스로 제공합니다.

le_chal_smart_shoes_140310_1

 

아두이노 네비게이션 프로젝트는 아직 부족한 점이 많습니다. 먼저 거리와 방위를 계산해 주긴 하지만 직진/좌회전/우회전 같이 보다 세밀한 네비게이션을 해주지는 못합니다. 그리고 방위를 계산할 때 정북 방향에서 목적지까지의 방위를 계산하기 때문에 사용자가 현재 바라보고 있는 방향을 기준으로 잡지 못합니다.

이를 위해서는 아두이노에 지자기 센서를 부착하고 보정해주는 작업을 추가해줘야 합니다. 그래서 아직 미완의 프로젝트로 남아있긴 하지만… 구글맵과 연동해서 DIY 를 해보고 싶으신 분께 좋은 참고자료가 될 듯 해서 현재 상태로 소스를 공개합니다.

 

 

1. 연결 방법 

 

스마트 워치 만들기 프로젝트와 완전 동일한 하드웨어 구조입니다. 아두이노 + 블루투스(HC-06) + OLED 디스플레이로 구성됩니다.

before assembly

 

아두이노 – OLED 연결

OLEDArduino
GNDGND
VCCVCC (3.3v or 5v)
SDAA4 (아날로그 4번핀)
SCLA5 (아날로그 5번핀)

 

아두이노 – 블루투스 : VCC -> 3.3VGND -> GND, TX -> D2RX -> D3 아두이노 – OLED 연결

 

OLEDArduino Pro mini
GNDGND
VCCVCC
SDAA4 (아날로그 4번핀)
SCLA5 (아날로그 5번핀)

여기에 추가로 배터리 등을 연결해 주시면 되겠습니다.

 

 

2. 프로토콜

 

스마트 폰에서 아두이노로 전달되는 데이터는 아래와 같은 형식을 가집니다. 한번 데이터를 전송할 때 7byte 를 보내줍니다.

[Start bytes] : 2 bytes, Indicates start of protocol (0xfdfe)

[body]     [Navigation mode] 1 bit (0: compass mode, 1: direction mode)

    [Distance unit] : 2 bits (00: meters, 01:kilometers, 10: feets, 11: miles)

    [Direction] : 2 bits (00: left ,01: right , 10: straight ,11: arriving)

    [Distance] : 10 bits – Android converts into lower distance unit if distance is shorter than 1. (안드로이드 앱에서 1Km, 1Mile 이하일 경우 meter, feet 단위로 자동 변환합니다.)

    [Angle] : 9 bits

[End bytes] : 2 bytes, Indicates end of protocol (0xfefe)

 

현재는 direction mode는 사용하지 않습니다. Direction mode는 직진/좌/우회전을 알려주도록 기획한 모드인데… 기술상의 어려움으로 무기한 연기…

 

 

3. 소스코드

 

아래 GitHub 페이지에 가시면 관련된 소스(아두이노, 안드로이드)를 모두 받으실 수 있습니다.

https://github.com/godstale/ArduNavigator

 

 

4. 사용방법

 

  1. 안드로이드 앱 실행
  2. 우측 상단 눈 모양 아이콘 – 블루투스 기기 검색
  3. 블루투스 모듈 선택해서 페어링
  4. 페어링 완료되면 구글맵에서 원하는 목적지를 선택
  5. 목적지가 선택되면 아두이노에서 거리와 방위가 표시되는지 확인

 

5. 기타

 

미완의 프로젝트라 손 안대고 놔둔지 한참이 되었네요. 더 놔두면 아무 의미없어질것 같아서 현 상태로 정리해서 공유하기로 했습니다.

구글맵 등을 이용해서 위치 정보를 연동하는 프로젝트를 하시는 분께는 미약하나마 도움이 될 것 같습니다. 새해에도 즐거운 DIY 하세요!!

 

(제작에 같이 참여해 준 Donato Brusamento 에 감사의 인사를 전합니다.)


출처 HARD COPY WORLD (http://www.hardcopyworld.com)

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

메이커 스토리

번호 제목 글쓴이 날짜 조회수
35 일반 과메기전 3차 전시자료 - 우리가 세상을 아름답게 만드는 방법 icon HellMaker 12-27 22,314
34 일반 과메기전 3차 전시자료 - 우리가 세상을 바꾸는 방법 icon HellMaker 12-25 23,762
33 일반 과메기전 2차 전시자료 - 우리가 세상을 다가가는 새로운 방법 icon HellMaker 12-24 22,202
32 일반 과메기전 1차 전시자료 - 우리가 세상을 편하게 만드는 방법 icon HellMaker 12-23 23,414
31 일반 Hell Maker의 매너가 치킨을 지킨다. icon 양재동메이커 01-11 25,777
30 일반 이원난 농원의 꺼구로 어항 icon 양재동메이커 12-02 23,984
29 일반 갈대 빨대 제작 도움이 필요합니다. icon 양재동메이커 11-06 24,447
28 일반 Toy Printer사용법에 _#2 icon 청계천도사 11-05 23,791
27 일반 Toy Printer사용법 +2 icon 청계천도사 11-05 23,411
26 일반 반려 동물 심폐 소생 시뮬레이터 icon 양재동메이커 09-26 24,054
25 일반 3D Printed Record icon HellMaker 09-05 24,170
24 일반 배터리 잔량 측정기 만들기 (마이크로 비트) icon HellMaker 09-04 31,475
23 일반 김메모 - 미세먼지 관련 인식도 조사 결과 및 분석 icon 양재동메이커 06-17 26,361
22 일반 2019년 4월 19일 DIY 청계천도사 프로젝트 진행 +1 icon 청계천도사 04-18 24,615
21 일반 김메모 와 헬메이커 2번째 협업 : 잡초제거 로봇 요구 분석 +2 icon 양재동메이커 04-14 27,006
20 일반 사랑의 독거 노인 도시락 MBED 프로그램 설명 icon 양재동메이커 04-04 23,974
19 일반 무게를 재는 방법에 대한 고찰 icon 양재동메이커 04-02 27,757
18 일반 Thermal Printer Mounts Directly to an Arduino / Raspberry Pi icon 양재동메이커 03-22 25,261
17 일반 3D-Printed Gimbal Pan/Tilts Cameras and… Lasers? icon 양재동메이커 01-17 24,174
16 일반 2019년 명동 재미랑 캐릭터 메이커 톤 참여기 +1 icon 양재동메이커 01-13 25,187