OBD-II (J1962) 실드 케이블 - Right Angle 핀맵
차량용 OBD 쉴드 케이블 D-SUB 작업용 컨넥터 핀맵
OBD-II (J1962) 실드 케이블 - Right Angle 핀맵
차량용 OBD 쉴드 케이블 D-SUB 작업용 컨넥터 핀맵
[CAN_EVM] ECU Read 2 - TFT LCD에 RPM정보 그래프로 표시하기
ECU정보 읽기 두번째로 이번에는 차량 PRM(속도) 정보를 읽어와 그래프로 표시하는 예제를 작성해 보았다.
모드에 따라 숫자로도 표시되고 그래프로 표시되도록 했다.
아무래도 그래프로 표시되면 과거 정보를 볼 수 있기 때문에 적산된 그래프로 운전 패턴이나 운행 상태를 좀더 파악하기 쉽다.
(좀더 보기 좋게 하기 위해 시간축에 대해 타이밍 조절은 좀 필요할것 같다.)
일단 테스트를 위해 계기판 위쪽으로 잘 보이는 곳에 [CAN_EVM] 보드를 간의로 설치했다.
[CAN_EVM] ECU정보를 이용한 RPM(차량속도) TFT LCD 표시 테스트 동영상
테스트는 운행중 촬영에 어려움이 있기때문에 RPM만 표시하도록 했고, 기어 중립상태에서 엑셀을 밝아 RPM변화 상태를 표시해 보았다.
[CAN_EVM] ECU Read 1 - TFT LCD에 기어단수 표시하기
차량운전 하다 보면 PRM이나 속도등의 정보를 좀더 크고 잘 보이는 위치에 있었으면 좋겠다는 생각을 해 보는데 모처럼 주말에 시간이 나서 작업을 해 보았다.
차량 ECU정보를 이용하면 차량 RPM, 속도 및 기어 위치, 브레이크위치 등의 정보를 알 수 있는데 CAN통신으로 읽어올 수 있다. 차량과 CAN통신이 가능한 [CAN_EVM] 보드를 이용하여 차량의 ECU정보를 읽어와 TFT LCD에 표시하는 예제를 작성해 보았다.
인터페이스는 OBD커넥터를 이용했다.
우선 테스트를 간단하게 하기 위해 기어 위치를 임의의 숫자로 변환해서 표시 했다. 추후 좀더 디테일한 이미지로 표시하면 좋을것 같다.
ECU정보는 차량마다 다르고 공개도 되어 있지 않기 때문에(나만 못찾나?)..
아무튼 데이터 페킷을 비교해 가면서 기어 위치 정보를 표시하도록 했다.
if(g_MsgObjectRx.Data[1] == 0x40)
{
//P
gGearPos = 0;
}
else if(g_MsgObjectRx.Data[1] == 0x46)
{
//중립
gGearPos = 3;
}
else if(g_MsgObjectRx.Data[1] == 0x45)
{
//D
gGearPos = 4;
}
else if(g_MsgObjectRx.Data[1] == 0x48)
{
if(g_MsgObjectRx.Data[0] == 1)
gGearPos = 1;
else if(g_MsgObjectRx.Data[0] == 2)
gGearPos = 2;
}
else if(g_MsgObjectRx.Data[1] == 0x47)
{
//R
gGearPos = 7;
}
ECU정보를 이용한 TFT LCD에 기어위치 표시 테스트 동영상
동영상 상에 후진 표시가 안된다. 코드를 보니 후진과 D를 같은 값으로 설정하게 했다. 수정후 정상 동작한다.
[CANTUSB] 조향각 센서 테스트
자동차용 조향각 센서(Steering Sensor) 는 CAN 인터페이스 방식으로 연결되기 때문에 예전에 LM3S5732로 제작했던 CAN2USB 보드를 이용하여 센서값을 출력해 보았다.
조향각 센서는 CAN ID 7C0로 적절히 초기 값을 설정하면 2B0 에서 각도 및 각속도가 출력된다.
[ID 2B0(0):00:05] : ff 7f 00 05 | f2 00 00 00
[ID 2B0(0):00:05] : ff 7f 00 05 | e3 00 00 00
테스트 동영상
CAN2USB 보드를 이용하여 조향각 센서의 데이터값을 출력하는 테스트
댓글을 달아 주세요