DIY - TPMS(Tire Pressure Monitoring System) value display for RENAULT and NISSAN via CAN(Controller Area Network)


직접 만드는 TPMS 값 표시기 입니다 - QM5/KOLEOS 용 이기는 한데 RENAULT, NISSAN 차량에 동일 CAN ID를 사용하는 차량이라면 호환 가능 할 것으로 예상 합니다.


*TPMS 장착 차량에서 개별 타이어 공기압 수치를 보기 위한 장치를 만드는 것이며 TPMS 미 장착 차량에 대한 추가 장착(개조)은 아닙니다. CAN ID 0x385 를 사용한다면 다른 차량에서도 정상 동작 할 듯 합니다.


[사진1] DIY TPMS module (케이스 만들기 전 마지막 확인 과정 중 촬영 / 클릭하면 원본 크기)
  오른쪽 Bar LED는 최초 계획에서 추가한 Accelerator, RPM 표시기 입니다(Shift down indicator 포함)

DIY - TPMS value display module


[동영상]


QM5(KOLEOS)에는 TPMS(Tire Pressure Monitoring System)가 선택 혹은 기본 사양으로 장착 되는 차량 입니다. 현 시점 기준으로 9년을 넘기고 있는 모델임에 불구하고 국내 차량 기준으로는 좀 빠른 시점에 장착이 되었다고 볼 수 있습니다 (BMW 같은 차량은 이미 오래오래 전에 기본 장착을 하고 있었죠)


그런데 QM5 TPMS display는 계기판에서 전담하고 있는데, 여러 글자를 표시할 수 있음에도 불구하고 개별 타이어의 공기압은 제공 해 주지 않습니다. 다만 공기압이 기준 수치 보다 낮아 졌을 때 경고 메시지 혹은 파열등에 의한 공기압 미확인 메시지 등만 제공을 하고 있죠.

아래 사진 처럼 말이죠.


[사진2] 뒷쪽왼편(RL) 타이어 공기압 부족 상황(이때 나사못(피스)에 의해 공기가 조금씩 빠지던 상황)

QM5/KOELOS TPMS warning messageTire pressure adjust needed


기억은 정확하지 않은데, 25psi 정도로 떨어져야 저 메시지를 보여 주게 됩니다.

이미 너무 많은 공기압이 빠진 상태에서 저 메시지를 보게 됩니다. 사전에 TPMS 에서 보고하는 수치값을 보여 준다면 미리 대비할 수 있을텐데 말이죠.

특히 비교적 최근 차량인 SM5의 경우 MMI 선택에 의해서 현재 개별 타이어 공기압 수치 확인이 가능 합니다.


그래서 TPMS 역시 별도의 MICOM으로 구성 된 것이 확인 되고(당연히) 이 또한 CAN network상에 연결 되어 있습니다. CANCLIP 으로도 확인이 가능한 내용이랍니다.


[사진3] Renault 진단 장비인 CANCLIP 에서 확인한 현재 공기압

  (RL만 1.57 bar == 23 psi 정도로 너무 낮은 상태)


위의 사진2 / 사진3과 같은 상황에서와 같이 실 사용에서 현재 공기압이 무지 궁금하고 그렇다고 매번 CANCLIP 장비(노트북 + 별도 연결용 CANCLIP 기기)를 연결해서 확인 해야 하기에 별도 TPMS display module 을 만들고자 한 꿈으로 이렇게 사진1과 같은 최종(케이스 뺀) 물건을 만들기에 이르렀습니다.


LCD로 보기에는 시인성이 떨어지기에 소형 LED 7 segment 를 여러개 조합하여 바퀴 4개에 대한 TPMS 값을 확실히 보이게 만드는 것이 목적 입니다.


사용한 모듈과 부품 등등은 아래와 같습니다.

* AT90CAN128 Module - Interboard 에서 만든 AT90CAN128BK2-ECO 모듈(CAN 트랜시버 내장)

* 3 자리 7 segment - Aliexpress 에서 찾은 매우 작은 크기의 3자리 표시 모듈

  (RED 3 Bit Digital Tube 0.25 inch LED Display 15*8*4mm)

* 만능 기판 - 3자리 7 segment 총 5개를 적절히 배치 할 크기

* 모듈과 만능기판을 연결할 2pin 핀과 핀헤더 소켓

* 배선용 배선

* 추가: 가속패달 표시와 RPM 표시(+Shift down 인디케이션)를 위한 10bit bar-graph LED 모듈



AT90CAN128 Module 은 아래 처럼 생겼습니다 - COM port 기판 표시와 실제 번호가 다른 것으로 기억.

[사진4] AT90CAN128 module


원래는 회로도를 그리고 하려고 했으나...

특정 port를 통으로 7 Segment LED에 연결 하는 것이 핵심이라... 넘어가고(2년 동안 해서 지쳤습니다)

작업 사진 몇 개와 실제 중요 code 구성을 안내 드리고자 합니다.

동일하게 작업하기에는 쉽지 않기에, 기본을 알려 드리고 참고 자료로서 개인별 응용이 더 맞을 듯 합니다.


위 보드만 있으면 남은 일은 전원, CAN 연결, LED 배선이 남은 일입니다. 물론 프로그래밍이 남았죠. 이 부분은 아래 설명과 함께 첨부 파일을 보신다면 절반은 해결 한 것이라고 해도 과언이 아닐 듯 합니다.


LED 배치와 배선 작업은 아래처럼 시작과 끝을 내었습니다.

무려 3x5 = 15 자리 segment를 제어 해야 하는데, 밝기를 위해 별도 트랜지스터 사용하기에는 보드 크기와 배선 난위도, 전력 고려 등등 너무 과하기에, 트랜지스터를 사용 하지 않고 8bit 출력 port에 AT90CAN128 개별 출력(40mA 한계) 전력을 넘지 않을 저항값을 선택 하게 되었습니다.

다시 말해 8개의 LED를 동시에 켜되 총 40mA 를 넘지 않게 즉 개별 LED 당 4.4 mA 를 넘지 않게 해야 합니다.

이를 위해 680옴 저항을 사용 하면 4.2mA 를 소모하게 되고 8개 모두 사용 하더라도 35mA 미만으로 소모 하기에 15자리 segment를 순차적으로 표시(15자리 중 순간적으로 하나만 표시)하게 되면 별도 TR 없이도 구동이 가능 하게 됩니다.

대신 duty cycle이 무려 1/15 라서 밝기는 줄어 들 것이라는 .... (최종 완성시에 문제 없었습니다)


말보다는 사진 나갑니다~ (클릭하면 아름다운 대형 크기로!)

[사진5] LCD 배치 - 느끼기에 균형미가 넘치게 자~알


[사진6] 뒷면에는 AT90CAN128 모듈과 직접 연결할 핀헤드를 자알~ 위치
          (고도의 도킹 시나리오 준비 필요?!)


[사진7] 공통 출력(8선)을 모두 이어 나갑니다 (거짓말 조금 하면 하루 작업 입니다 ㅠ)


[사진8] 전류 제한을 위한 공통라인 8선에 저항 부착(680옴- 검갈빨주노초)


[사진9] 개별 segment 선택 용 배선 15개 까지 추가 하면 - 인간의 한계를 시험 하는 느낌이 옵니다.


[사진10, 11] CAN 없이 Segment display 루틴 부터 만들고 배선을 제대로 했나 확인 합니다.


문자열 data도 넣어서, 영문 표현을 시도 해 봅니다^^


[사진12,13,14] AT90CAN128 보드와 디스플레이 기판 결합

핀 헤더는 디스플레이 기판에서, 소켓은 AT90128 모듈에 장착하여 서로 연결합니다.


뒷쪽은 아래와 같습니다. - 왼쪽이 CAN 라인, 우측이 전원, 헤더는 AVR ISP 프로그래머와 연결


약간 다른 각도~


위의 사진과 같이 핀헤더로 기성품인 AT90CAN128 모듈과 디스플레이 모듈을 결합 하게 됩니다.

7 Segment 표시를 위해 아래의 AVR 포트를 할당 했습니다. (code 참조 가능)
  PORTF : Segment out (수 표시용 7 세그먼트 7bit + 점(dot) 1bit)

  PORTA : Digit 0 ~ 7 (처음 8자리 표시)

  PORTC : Digit 8 ~ 15 (나머지 7자리 표시)

  ** [사진 4]에서 보시면 아시겠지만 기판 포트 위치에 맞추어 A,C,F 포트를 할당 하게 된 것입니다.


그리고 위 사진에 없지만 나중에 추가 연결한 악셀레이터(Accelerator) 와 RPM 표시를 위해 아래의 포트를 할당 했습니다.

  PORTB : 8 개 LED 개별 표시

  PORTE : 8 개 묶음 표시


LCD 모듈을 사용하면 포트 2개 정도(8bit + 8bit) 으로 해결 될 수 있겠지만 낮/밤 시인성을 위해 7 segment를 사용한 이상 엄청난 수의 출력 포트를 사용 하게 됩니다. AT90CAN128의 풍부한 포트를 잘 활용 했다고 볼 수 있습니다.


[사진15] 처음 디버깅용 MCP2515 + AVR 조합의 CAN data 전송, 확인(to BT), PC to CAN 전송 용 모듈들 - 한쌍(두줄)의 CAN 네트웍으로 연결 된 상태 입니다.

위 등장 모듈은 별도 글에서 설명 드릴 예정 입니다.


실제 모듈 구성과 기본 code 구성은 다음 글로 이어집니다.



01234567891011121314


+ Recent posts