주행 보조기

개요

  • 기간: 2015
  • 기술: Arduino, C, 납땜질, 배선 설계, 소형 패키징, 수학(?)

주요 기능

  • 시계
  • 온도, 습도 표시
  • 속도, 방향 표시
  • 고도, 지역(특별시, 광역시, 도) 표시
  • 기타 정보(GPS 위성수, 오차율) 표시
  • 버튼을 누르면 1~5화면 전환, 또는 모든 화면 자동 순환
  • 음주 측정기 (공간 문제로 삭제)
  • 펌웨어 업데이트 가능

재료

  • Arduino Pro Mini Clone
  • 중국산 1.3인치 OLED (SH1106 계열 128X64)
  • DHT-22 온습도센서
  • GPS모듈
  • 핀소켓, 빵판, 푸시버튼, MicroUSB소켓
  • 플라스틱 케이스

후기

족보 없는 OLED 샀더니... 맞는 OLED 드라이버 찾느라 꽤 고생했다. 한글폰트가 없어서 비트맵으로 찍어서 만든 수제폰트를 사용했다. 8픽셀 소형 아이콘도 직접 도트작업으로 만들었다.

처음엔 GPS모듈 좋은게 있어서 테스트해보니 baud rate이 너무 빨라서(119600) 아두이노가 출력 속도를 못 견뎠다. baud rate 9600짜리로 구해서 해보니 잘되었다. 비싼 GPS는 라즈베리파이랑 묶어야 겠다.

생각보다 DHT-22 센서도 오차가 좀 있는듯 하다. 같은 센서 여러개 놓고 돌려보면 스펙을 넘어선 오차가... 중국산 클론인건가...

현재 위치가 어느 위치인지 판단하기 위해 수학 알고리즘까지 사용. 다각형이 존재할때, 임의의 점이 다각형의 안에 있는지 바깥에 있는지 판단하는 알고리즘이다. 알고리즘의 정식 명칭은 Point in polygon | Wikipedia이다.

각 시도의 경계는 네이버 지도에서 위도 경도를 찍어서 데이타로 저장해놓고 사용했다. 대부분이 10~20각형으로 표현되었다.

최종 수정: 2019-1-3 04:38:32