코너링 램프 컨트롤러를 직접 만들어 보고자 합니다.

QM5를 비롯한 여러 차종들이 스티어링휠(핸들)의 방향을 판단 후, 전방에 위치한 보조 램프를 켜는 기능이 있습니다. 밤길- 특히 어두운 시골길이라면 의외로 좌우 방향 회전시에 시야 확보에 큰 도움을 주는 기능이죠.
이러한 기능이 순정으로 장착 되지 않은 차량에서 코너링 램프를 비교적 쉽게 자동 조작하게 하는 컨트롤러를 제작 하는 내용을 설명 드립니다.
코너링 램프 기능이 있는 램프 어셈블리를 교환 하셨거나, 죽어 있던 기능을 살리시거나, 집접 코너링 램프를 추가 장착 하신다면 - 수동이 아닌 자동 동작하는 컨트롤러가 있다면 도움이 되는 것이죠. 

어떤 DIY 내용을 보면 수동 스위치를 장착 하거나, 방향지시 동작과 연동하여 동작시키기도 하나 - 거추장 스럽고, 의도와 달리 동작하는 아쉬움이 있는 것은 분명 합니다. 


여기서 제작하는 방식은 전방램프를 리니어(Linear)하게 동작하는 어댑티브 방식이 아닌, 정 회전각에 반응하여 보조 램프를 추가로 On/Off 하는 방식을 제작 하는 것입니다.


[아래는 완성한 코너링 램프 컨트롤러 사진 입니다]


이 내용은 총 3개 글로 나뉘어 져 있습니다
  1. 제작에 필요한 내용 확인 [지금 보고 계십니다]
  2. 
컨트롤러와 센서모듈 제작   
  3. 컨트롤러 프로그래밍과 설치 



본 내용에 대해서 상업적 이용을 제외한 개인적인 사용에는 아무런 제약이 없이 자유롭게 이용 가능 합니다. 가능하면 링크를 추천드리며, 복사하실경우 출처를 표기 해 주시기 바랍니다. 감사합니다.






1. 코너링 램프의 동작 

QM5 기준으로 코너링 램프 동작은 아래와 같은 조건이 있습니다.
코너링 램프가 켜지고 끄지는 조건 
   이그니션 ON(시동 상태)
   헤드램프 스위치 ON(전방 전조등 켜진 상태)
   기어 레버 P이외의 위치
   차량 에러 복구 모드가 아니어야 함
   조향각과 차량 속도는 아래의 조건을 충족 
     [0..20) km: 조향각 80도 부터 ON 
     [20..40) km: 조향각 [80..38]도에 대응하여 ON (20km:80도~30km:59도~40km:38도)
     [40..95] km: 조향각 38ON 

   조향각이 26도 이하로 떨어지면 OFF 
   100km 이상 부터 OFF 

정리를 먼저 하면 아래 두 조건은 꼭 알아야 합니다. (나머지는 가정 혹은 다르게 알아낼 수 있죠)
  A. 스티어링 휠 회전 각도 
  B. 차량 속도 



2. 동작 조건의 단순화

앞서 동작은 스티어링휠(핸들)에 부착되어 있는 휠 각도 센서에 의해서 1도(혹은 더 정밀하게) 단위의 연속적인 방향각을 정확하게 읽은 처리하는 것을 가정 합니다.
그러나 이러한 센서를 설치 하는 것은 비용 상승의 문제가 있고(이런 부품도 보쉬가 갑이더군요@@), 설사 이미 설치된 차량(VDC/ESP장착 차량들)의 경우도 해당 센서값을 얻기위해서는 CAN 통식을 해야하는 부담(제작비 상승과 함께)이 있기에 회전값 측정을 단순화 할 필요가 있습니다.

즉 별도의 스티어링휠 움직임 각도는 아래의 값 만을 측정 하는 것으로 단순화 합니다.
좌측(-)으로 / 우측(+)으로 휠을 돌렸을 때 아래의 6개의 값을 받도록 합니다.
   -80 , -38 , -26 , +26 , +38 , +80  


눈치 채셨나요?
QM5의 코너링 램프 동작 조건 중에 차량 속도별 ON 동작에 필요한 휠각도가 최대 80도(20km/h 이하일때), 최소 38도(40km/h) 이상일 때, 그리고 OFF 조건인 26도를 알아 내기 위한 최소 구별입니다.

(앞서 언급한 ON/OFF 동작에 가장 필수 적인 각도값으로 부터 추출 했습니다)
 


 
3. 휠 회전 각도는 어떻게 판단하나? 

횔 회전각을 알아야 하는데, 모든차량에 휠각도 센서가 기본 장착된 것도 아니고, 있다해서 땡겨 쓰기도 쉽지 않고, 그렇다고 진짜 센서를 붙이기도 곤란하고... 
만들어 버리는 것이죠!
예전 제가 진행한 리드 스위치와 같이 자석을 이용하면 딱~ 좋을 것 같습니다.
하지만 리드센서는 덩치가 작지 않고, 유리로 된 부품이라 사용성에 문제가 많습니다.
결국 자석을 이용하는 소형 센서인 "홀센서"(Hall Effect Sensor)를 사용합니다. 
이번 DIY에 사용한 Hall Sensor는 자성 방향이 있는 부품을 구입해 버렸는데(부품 수급시점에 구한게 이것이라서...) 이글 보시는 분들은 자성 방향(N/S극)에 무관하게 동작하는 부품을 사용하세요!

이 Hall Sensor를 스티어링휠 회전 부위에 -80/-30/-26/26/38/80 각도에 '잘' 배치하고, 회전하는 휠에는 소형 자석을 붙여서 무접촉으로 휠 회전각을 알아 내도록 하는 것입니다.
실제 제가 직접 만든 센서 부위 사진을 소개 드립니다.

[홀센서로 구성된 휠 회전각 센서 모듈]
실제 설치는 위아래를 뒤집어서 스티어링휠 횐전 부위에 부착 합니다.
트랜지스터 처럼 생긴 부품 위로 '자석'이 지나 가도록 휠부위에 '자석'을 잘 부착 해야 합니다.



위의 센서로 휠이 회전에 맞추어 6개의 위치 변동값을 알수 있게 됩니다.
그러나 불행이도 위 입력값으로 절대적인 회전각을 알 수가 없습니다. 일반적인 자동차의 스티어링휠은 좌우로 각각 1바퀴 반을 회전 합니다. 다시말해 끝에서 끝까지 감을 경우 3회전을 하게 된다는 것이죠.
결과적으로 센서 하나당 3가지 각도값이 존재 할 수 있습니다. @@
절대값을 돌려주는 휠각센서가 아니라서, 이러한 모호한 상태를 극복하기 위해 위 센서값은 프로그램 적으로 상태값 전이(Finite State Machine)를 이용하며 상태값에 모순이 발생하는 순간 가능한 바른 상태로 보정하는 루틴 등이 작성되게 됩니다. 이와 관련하여서는 [3. 컨트롤러 프로그래밍과 설치]에서 자세히 다루겠습니다.

 

4. 차량 진행 속도는 어떻게 판단하나? 

회전각과 달리 차량 속도는 대부분의 차량에서 CAN통신 없이도 사용가능한 쉬운 방법을 제공 하고 있습니다. 현대기아차의 경우 OBD 소켓으로도 펄스 형식의 신호가 예전부터 출력 되고 있고, 제가 목표로 하는 QM5에서도 쉽지는 않지만 내부에 2가지 경로로 속도 신호가 펄스 형식의 신호가 출력되고 있습니다.
타 차량은 인터넷에서 쉽게 공개된 자료를 찾아 볼 수 있으니 더 자세히 설명은 하지 않고, 당장 제 차량인 QM5의 경우에 대해서 차량 속도 신호 출력 부분에 대한 설명을 드리겠습니다.

공식적으로 QM5 속도 신호에 대해서는 공개된 내용이 없습니다.
결국 회로도를 뒤져 볼 수 밖에 없는데... 아래 2가지 배선에서 펄스형 속도신호가 출력 되고 있습니다.

Line 1: 47F = VEHICLE SPEED SIGNAL (차속 신호)
  실제 연결 시작: 콤비네이션 미터[247]:Pin 5 - 47F - RD(빨강) or PU(보라) 
  연결된 장치로는: 네비게이션 컨트롤 유닛[662], 리어차고센서[1372] 입니다.
  그런데 위 두 장치는 위치가 좀 어정쩡 합니다. 그중 만만한 것은 네비게이션 컨트롤 유닛인데...
  글로브박스를 분리 후에 소켓에 연결해야하는 부담이 있습니다.

Line 2: H47 = VEHICLE SPEED - SECONDARY SPEED SIGNAL (이차 차속 신호)
  실제 연결 시작: 콤비네이션 미터[247]:Pin 6 - H47 - RD(빨강)
  연결된 장치로는: 썬루프 모터[157]:Pin 8,  서비스 소켓(Socket (After-sales))[1776]:Pin 2 
  만만한 곳은 바로! 이 서비스 소켓 입니다. 센터페시아 하단 스위치쪽에 묶여 있다는 것이죠.

아래 사진(크루즈 DIY 때 촬영한 사진입니다)을 보시면 위치를 알 수 있을 것으로 생각 됩니다.
실제 연결시에는 센터페시아 분리 하지 말고, 우측 마감재를 분리해서 연결 하면 됩니다.



참고로 H47와 연결된 썬루프 모터는 차량 진행 중, 썬루프를 닫을 경우 바람에 의한 저항을 무시할 수 있도록, 속도값을 참고하고 있답니다. 정지 상태에서는 핀치(끼임) 상태를 확인하고 썬루프가 닫히지 않는게 기본이나, 속도값이 일정 이상 되면 그냥 닫이게 하는 거죠. (손을 끼우면 엄청난 고통을....)

중요 사항으로 이 라인에서 출력 되는 신호는 펄스 입니다. PWM 신호 정도로 이해하면 될것 같습니다.
그러나 정밀하게 Pulse 폭의 시간값을 측정하면 좋겠지만, 엄청나게 code량이 늘어나기도 하고 정확히 순간순간의 속도값이 필요한게 아니므로, 1초당 이 신호의 개수를 세어서 속도값을 정하고자 합니다.
실측 결과는 아래와 같습니다 (속도계를 만들경우  실제 Pulse width 간격을 정밀 측정 필요!)
  10km/h 당 = 약 3.5 Pulse/Sec
  20km/h = 약 7 Pulse/Sec
  100km/h = 약 35 Pulse/Sec

1초 마다 타이머 루틴에서 차속센서 인터럽트 개수를 확인하여
아래 속도에 맞추어 속도 state를 갱신하게 됩니다.
속도별 구간: [0, 20, 95, 100, 100이상]
안정적인 확인을 위해 구간별 Finite State Machine으로 처리 합니다. 



5. 램프 On/Off 동작 제어 

컨트롤러의 최종 동작은 앞서 설명한 휠 회전각과 차량 속도를 입력받아 좌/우에 있는 코너링 램프를 제어 하는 것입니다.
즉 왼쪽/오른쪽으로 차량을 조절 할 때 마다 알아서 판단해서 좌우 램프를 켜고 끄도록 해야 하는 것이죠.
동작은 궁극적으로 앞에 모두 설명을 했고, 현실적인 문제만 본다면 차량용 램프는 12V에 적어도 5~6A 를 감당해야 합니다.
그래서 직접적으로 제어를 할 수는 없고, 컨트롤러에서는 릴레이를 동작 시킬만한 출력을 제어 하는 것만으로도 OK 입니다. 나머지는 차량 배선을 릴레이의 접전과 연결하여 실제 램프를 구동 하는 것이죠.
하지만 릴레이라는 물건이 여전히 보통 12V 차량 전원에 연동되어야 하고 또한 적어도 100mA 를 흘려 주어야 합니다.
결과적으로 마이컴(여기서는 AVR 사용)에서 출력하는 신호를 직접 연결은 못하고 추가적인 트랜지스터(TR)를 사용해서 외부에 위치할 릴레이를 가동 해야 합니다.

저와 같은 실수가 반복되지 않도록 집고 넘어가야 할 점이라면,  5V TTL 신호로 12V 를 제어 해야 하므로 NPN 계열의 TR을 사용 해야 합니다. 즉 +5V를 NPN TR로 흘려주고, TR에서는 GND와 연결된 E를 C와 연결하도록 회로를 구성 해야 합니다. (저는 최초에 PNP을 사용해서 +12를 연결 하려 했으나 잘못된 구성입니다 - 전압 Level 이 다르므로 TR구동의 용이성을 위해 NPN을 사용)
더 복잡한 이야기는 TR회로를 공부 하시면 자연스럽게 아는 내용이라, 여기서는 언급 하지 않겠습니다.(저도 전자공학 전공이 아니라 한참을 공부하고 원리를 이해 했네요)



6. 후진에서는 반대방향 동작 

전진에서는 당연히 왼쪽 반향으로 스티어링휠을 돌리면 왼쪽 램프, 오른쪽으로 돌리면 오른쪽 램프를 켜야 하는 것은 당연한데!, 후진시에는 이게 반대로 되어야 합니다.
즉 후진하면서 우측으로 붙이기 위해서는 스티어링휠은 왼쪽으로 돌리게 되고, 확인이 필요한 방향은 우측 입니다. 즉 반대 동작이죠.
이것을 만족하기 위해서 후진기어 위치를 확인하기 위한 센서 입력을 하나 더 받고, 홀센서 혹은 리드스위치로 입력을 받으면 쉽게 해결 되겠습니다.
더 상세한 내용은 컨트롤러 제작 부분을 참고 하세요.



7. 컨트롤러 제작 

컨트롤러는 1 Chip MICOM인 AVR시리즈의 ATMega8을 사용 합니다. 만능기판을 이용할 것이므로 대중적인 DIP형을 사용하여 기본 구성을 합니다.
주변 부품으로는 전압 레귤레이팅을 위해 1,000 원 짜리 DC-DC 컨버터, 속도입력 신호 입력을 위해 포토커플러 정도를 사용합니다.
또한 릴레이 제어용으로 소출력 TR과 정류 다이오드 혹은 모터 제어용 중출력 TR모듈 IC를 사용 할 수도 있겠습니다 (1차 제작은 C1815이용, 2차 제작은 저렴하게 구한 모터제어용 TR모듈 사용) - 어차피 회로는 같습니다.
또한 동작 확인용 LED와 주변 부품이 추가 됩니다.
더 상세한 것은 그림, 도면, 사진과 함께 다음글에 이어 집니다.


.

+ Recent posts