본문 바로가기
카테고리 없음

GPS를 활용한 차량용 대시보드 제작

by 구루가 되고픈 2024. 9. 1.

 

GPS 대시보드 작동영상

 

 

차량용 대시보드를 새롭게 제작하였습니다.

과거 3개나 제작을 했었고, 이번에 차량을 바꾸면서 주행정보를 좀더 자세히 보기 위해 다시 제작하였습니다.

예전에 제작한 대시보드들은 아래와 같습니다.

 

https://clemencyking.tistory.com/6

 

아두이노로 자동차 대시보드를 완성하다 - 2편

아두이노로 자동차 대시보드를 완성하다 - 2편 브레드보드로 상당히 많은 컴파일과 수정을 거치면서 주문한 OLED도 도착하였고 몇가지 센서들도 도착하였습니다. 완전체로 프로그램 수정과 보완

clemencyking.tistory.com

 

https://clemencyking.tistory.com/16

 

모닝용 자동차 대시보드 제작

한달전쯤 출퇴근용 모닝을 입양해 오게 되었는데 가만두질 못하겠네요. 큰차였던 투싼에는 OBD2아답터, GPS, 자이로센서까지 달아서 OLED 8개가 들어가는 버전으로 만들었으나, 모닝은 가벼운 출퇴

clemencyking.tistory.com

 

https://clemencyking.tistory.com/27

 

차량용 대시보드 업그래이드 (3.5인치 TFT모니터 + 아두이노 UNO)

그간 여러버전의 차량용 대시보드를 제작하였고, 최근에 3.5인치 액정 3개를 활용한 대시보드까지 소개해 드렸습니다. 최종적으로 GPS를 더해 총 4개의 디스플레이로 구성된 대시보드를 완성하였

clemencyking.tistory.com

 

 

첫번째는 OBD2 아답터를 통해 차량정보를 가져와서 구현했고, 두번째는 GPS신호로 구현했습니다.

세번째는 OBD2 모듈을 통해 차량 정보를 가져와서 처리했는데요.

만들면서 조금씩 업그레이드가 되었습니다.

 

이번에 제작한것은 두번째 방식과 동일하게 GPS신호를 가지고 구현하였습니다.

먼저 제작된 결과물을 이렇습니다.

 

센터 공조기 하단에 위치, 최대한 일체감이 나오도록 연출

 

차량 중앙 대시보드 아래쪽에 OLED5개를 붙여 제작하였는데, 각각 표시하는 정보는

 

1 - 현재 시간

2 - 시동후부터 현재까지 시간 (작은글씨는 이동한 시간, 멈춰있던 시간)

3 - 전체 평균속도, 이동거리

4 - 실내 온도, 습도

5 - 고도, 주행방향, 주행방향 차트

 

온습도를 빼고 나머지는 GPS를 수신해서 GPS의 시간, 속도, 고도 정보를 추출해서 표시하였고

온습도는 DHT22 센서를 사용하였습니다.

 

사용된 부품은 

 

아두이노 마이크로 프로 5개

OLED 1.3인치 5개

NEO-6M GPS수신기 1개

DHT22 온습도 센서 1개

 

이것을 만들기 위해 제일 처음 가볍게 제작한것은 온습도계 였습니다.

차량 내부온도가 늘 궁금했기 때문에 작게 제작을 했었습니다.

 

온습도계, 샤오미 수치와 비교

 

온습도만 표시되는 기본적인 형태로 제작하였고, 이후 다음 단계로 CO2를 측정하는 것을 붙이려고 시도 했었습니다.

이렇게 환경 데이터는 2가지를 표시하고 싶었는데요.

 

그러나 CO2 센서를 국내에서 주문했는데, 이상한 제품이 와서 반품하고, 이후에 알리에서 주문해서 2주 이상 기다려서 받았는데 원하는 모델이 아닌 다른 모델이 배송되서 이것도 반품 시켰습니다.

 

그래서 CO2는 빼고 바로 GPS데이터를 붙이는 작업을 진행하였습니다.

 

GPS 수신, 프로그램 테스트

 

GPS센서 값을 software시리얼로 여러개의 아두이노에 병렬로 연결하고 코딩을 해 나갔습니다. 

(참고: 센서하나를 여러 아두이노에 동시에 연결해도 됨)

 

GPS로 작업시 제일 문제가 실내에서는 신호가 거의 잡히지 않아 동작확인을 제대로 할수 없다는 문제가 있습니다.

이것 때문에 상당한 시간을 잡아 먹으면서 작업을 진행했습니다.

 

I2C 멀티플렉서 테스트

 

처음에는 아두이노 개수를 줄이려고 I2C Multiplexer로 아두이노 하나로 5개 디스플레이에 다 표시하려고 하드웨어를 구성하고 코드를 짜 나갔는데, oled 개수가 4개 이상 넘어가면서 코드가 복잡해지고 아두이노의 작은 프로그램 메모리가 full이 되버려서 중간에 방향을 바꾸고 oled 한개당 아두이노 1개씩을 다 물려서 코딩을 했습니다.

(이전 사진 참고)

 

프로그램 완성 후에는 PCB사용 없이 와이로만 회로를 연결해 주었습니다.

선이 매우 지저분하지만 가장 용이하게 할수 있는 방법이라 개인적으로 선호하는 편입니다.

 

점퍼선으로 회로 연결

 

다음으로 케이스를 제작하기 위해 모델링을 해서 출력하였습니다.

 

3 디스플레이로 모델링 하였다가 4 디스플레이로 수정해서 다시 출력

 

오차로 몇번의 출력을 다시하고 디스플레이 개수도 4개로 늘려서 출력하였고,

출력된 케이스에 부품들을 정렬해서 배치하고 글루건과 접착테이프로 대충 고정하였습니다.

GPS 수신기는 외부에 있어야 하기 때문에 상부에 올려 주었습니다.

프로그램 수정이 필요할 수 있으므로 USB포트를 뒤쪽으로 맞춰 배열시킴
GPS안테나를 케이스 위쪽으로 빼서 붙여줌

 

뒷모습은 지져분해도 전면에서 보는 모습은 깔끔해 보입니다.

 

케이스 안쪽 회로연결
박스형 케이스로 제작

 

차량에서 설치해서 실 주행을 해 보았습니다.

여기에서 치명적인 문제가 생깁니다.

GPS가 수신이 안됩니다.

수신기가 하늘을 바라볼 정도로 노출이 되어야 하는데 차량 안쪽으로 깊숙히 들어가서 수신이 전혀 안되는 문제가 생겼습니다.

 

아래쪽에 위치를 잡아줌

 

사진에는 데이터가 나오고 있는데요,

대시보드 위에 올려서 GPS수신이 되었을때 그때 이 자리에 놓았기 때문에 수신이 되고 있는데

처음에 대시보드 위에 올려 놓지 않는 이상 GPS수신은 전혀 안되었습니다.

 

그리고 나름 케이스까지 만들었지만 뭔가 좀 깔끔하지 않다는 느낌도 있고, GPS수신이 가능하도록 안테나 위치를 해결해야 하는 문제도 있었습니다.

그래서 위치와 디자인을 전면 수정해서 다시 제작에 들어 갑니다.

 

다시 잡은 위치는 가운데 바람구멍 바로 아래부분으로 정하고 케이스 제작부터 합니다.

위치를 새로 잡다보니 크기를 좀더 키우는게 일체감이 있어서 OLED를 5개로 늘립니다.

 

출력을 위해 케이스 모델링

 

OLED 하나 더 추가하고 코딩까지 넣어서 하드웨어를 제작해 줍니다.

역시나 안보이는 부분은 매우 지저분 합니다. 

연결된 회로들을 잘 정리해서 넣음

 

그래도 전면부는 깔끔하긴한데, 한가지 오른쪽 부분의 3D프린터의 질감이 유독 도드라지네요.

적층 레이어를 크게 주었더니 더 물결무늬가 도드라집니다.

레벨링을 제대로 잡고 다시 출력하면 좋은데,  6시간 가까이 출력을 다시 해야 하기 때문에 이대로 장착해 줍니다.

 

다섯개 OLED 디스플레이

 

GPS수신기는 아래 사진처럼 안쪽에 넣었습니다.

처음보단 차량 위쪽으로 조금 올라간 위치에 있는거라 GPS를 잘 잡아주기를 기대하면서 설치를 했는데,

차량 장착 후 주행해보니 전혀 GPS신호를 못잡는 문제가 여전했습니다.

 

GPS안테나를 내부 안쪽에 설치

 

그래서 GPS수신기만 따로 선을 연장하고 별도 케이스를 출력해서 그안에 넣고 핸들 뒤쪽에 위치시켜 주었습니다.

이 위치가 운전자 시야에서도 전혀 보이지 않고, 보조석 탐승자가 볼때도 도드라지는 정도가 아니어서 신경써서 보지 않는 이상은 인지하지 못할 정도인것 같습니다.

 

작은 상자를 출력해서 GPS수신기를 넣었고, 위쪽에 구멍을 내에서 안테나만 노출되게 함

 

수신기 선은 하단으로 빼서 나중에 깔끔하게 정리해 놓음

 

이 위치에 잡아주니 다행스럽게도 GPS수신이 됩니다.

다만 좋은 환경에서는 GPS수신이 보통 20~30초 이내로 되는게 정상인데, 이 위치에서는 초기 수신까지 3~5분정도 소요됩니다.

그래서 처음부터 정보가 표시되진 않지만 그후론 잘 수신이 되기 때문에 가장 적합한 위치가 아닐까 생각합니다.

 

각 정보들은 128X64 픽셀크기의 OLED크기에 맞춰 오밀조밀 디자인 하였습니다.

 

1~3번 디스플레이

 

4~5번 디스플레이

 

OLED 특성상 주간과 야간의 시인성이 매우 좋습니다.

그리고 하단에 위치하고 있어서 야간에도 눈에 전혀 거슬리지 않습니다.

 

야간 시인성이 매우좋고 약간 하단에 위치하고 있어 주행시 불편함이 없음

 

결과물로만 봤을때 자작이라고 하기 전에는 순정 장치인것처럼 일체감을 보여주어서 매우 만족스럽습니다.

또한 주행과 관련된 정보를 제공하기 때문에 기존 계기판의 트립컴퓨터의 아쉬움을 충분히 커버해 줍니다.

 

처음 구성부터 완성되기까지 약 2달가까이 걸린것 같습니다.

이중 3주 이상은 주문한 부품 기다린 시간이었는데요, 그때도 코딩을 중간중간 계속 해 왔기 때문에 꾀 오랜 시간이 걸린 작업이 되었습니다.

 

3D 프린팅도 상당히 여러버전을 했고, 수치가 조금이라도 안맞으면 수정해서 다시 출력해야 했기 때문에 이것도 시간을 상당히 잡아먹기도 했습니다.

 

그래도 매우 만족스런 결과물이어서 향후 몇년간은 손안대고 이대로 사용할것 같습니다.

 

마지막으로 원래 이 작업은 GPS를 사용하려고 했던것이 아니라 차량에서 OBD2 커넥터를 통해 차량 정보를 가져와서 제작하려고 했었던 겁니다.

 

그래서 CAN-BUS통신 모듈로 차량에 연결해서 아두이노로 기본코딩을 돌려봤으나 전혀 나오는 정보가 없었고, 나중에 자료를 찾아보니 전기차는 내연기관차와 다르게 대부분 비표준 PID를 사용하고 있어서 표준 PID로는 전혀 정보를  가져올수가 없던 것이었습니다.

 

그래서 방향을 틀어 GPS로 제작을 하게 되었습니다.

 

이상으로 또 하나의 작업을 마칩니다.