이제 소프트웨어 구현 방법도 결정했으니, 하드웨어 구성 방법을 생각해봅시다.

가장 중요한 것은, "어떻게 핸들 리모컨의 신호를 가져올 것인가" 이겠죠.

 

이를 위해서는 핸들 리모컨의 작동 방식을 알 필요가 있습니다.

 

 


Resistor Ladder

대부분의 차에 해당하는 방법입니다.

핸들의 각 버튼에 각기 다른 저항을 두고, 그 저항 값으로 버튼을 판별합니다.

따라서 하나의 신호선으로 여러 버튼을 구현할 수 있습니다.

단점으로는 동시버튼 구현 시 모든 버튼 조합을 고려해야한다는 점이 있겠네요.

(물론 차량에서는 별 상관없는 단점입니다.)

 

국산 구형 차량의 경우 대부분 해당 신호선이 직접 오디오로 들어갑니다.

일부 차종은 중간에 CAN신호로 바뀌어서 들어오는 경우도 있다고 하네요.

 

그렇다면 우리의 제네시스 쿠페는 어떻게 구성돼 있을까요?


위 사진은 제네시스 쿠페 비네비 사양 오디오의 커넥터입니다.

커넥터 C2의 5번 핀이 핸들 리모컨의 +단자, 6번 핀이 -단자네요.

CAN이 아닌 직접 신호를 사용합니다.

 

오디오에서 저항값을 읽기 위해서는 결국 전압을 읽어 ADC 처리를 해야할텐데요.

따라서 +에 풀업이 돼있든 -에 풀다운이 돼있을 겁니다.

여러 검색 결과 대부분 스위치를 누르지 않았을 때 5V를 출력한다고 하니, +풀업입니다.

 

그말인 즉슨, +신호선을 따와서 ESP32의 GPIO 핀에 연결하고, -는 어차피 GND이니 ESP32의 GND에 연결하면 버튼에 따라 다른 전압을 얻을 수 있다는 뜻이 됩니다.

다만 ESP32의 GPIO는 3.3V Max인 12bit ADC이므로 전압 강하가 필요한데요, 간단하게 적당히 큰 저항 두 개로 Voltage Divider를 구현합니다.


쉽지만 모르면 어려울 수 있는 전기전자 지식으로 인해 헷갈리는 분들을 위해, 아래와 같이 결선도를 남겨드립니다.

 

 

그렇다면 어떻게 블루투스 리모컨 방식 구현을 할 수 있을까요? 


우선 하드웨어를 선정해봅시다.

위 사진은 ESP32 프로세서가 탑재된 개발보드입니다.

ESP32는 Wifi, Bluetooth 구현이 가능하며, 그것도 아두이노를 이용하여 아주 쉽게 가능합니다.

 

가격도 착합니다. 알리발 5천원 정도..

 

 


그렇다면 소프트웨어는 어떻게 할까요?

여러 방법이 있겠지만, 실현 가능한 방법으로는 아래 정도가 있었습니다.

 

 

1. AVRCP 직접 구현

가장 먼저 생각한 방식입니다.

기존 오디오가 AVRCP를 지원하지 않으니, AVRCP를 지원하는 블루투스 리모컨을 만들면 되지 않겠는가?

곡넘김을 넘어서 빨리감기/되감기도 가능하니 제일 좋네!

 

2. BLE Keyboard 구현

처음에 떠오르지 않았던 생각인데, 알고보니 위 알리발 리모컨이 해당 방식으로 구현된 것이더군요.

블루투스 키보드를 구현하고, Media Key를 입력하면 휴대폰에서 인식합니다.

아쉽게도 빨리감기/되감기는 없습니다.


참고로 저는 두 가지 경우를 모두 구현했는데.. 아래와 같은 이유로 인해 최종적으로는 2번을 선택했습니다.

 

1. AVRCP 구현을 위해서는 A2DP 프로파일을 사용하는 오디오가 필요합니다. 이게 Classic BT 표준인지는 모르겠는데.. 아무튼 ESP32에서는 그렇습니다.
2. 따라서 ESP32로 더미 A2DP 오디오를 구현하고, AVRCP로 조작을 할 수 있습니다.
3. 휴대폰에는 차량과 더미 오디오를 동시에 연결합니다.
4. 그런데, 블루투스의 특성상 마지막으로 켜진 오디오 기기에 최종 소리가 출력됩니다.
5. 더미오디오가 켜지고, 차량 오디오가 켜지므로 오디오가 차량으로 설정되어 소리 출력에 문제가 없습니다.
6. 곡 넘김, 빨리감기/되감기 까지는 너무나 완벽하게 잘 됩니다.
7. 그런데 일시정지/재생을 하면 더미오디오가 갑자기 메인 오디오가 되어 소리가 안나옵니다.
8. 차량 오디오와 더미오디오를 듀얼오디오로 연결하면 문제가 없긴 합니다만.. 기본값으로 듀얼오디오를 사용하는 것이 불가능합니다. 시동 켤 때 마다 눌러서 설정해야 돼요(...)

아래는 검색해서 찾은 갤럭시 사이트 Q&A 답변입니다 ㅠ



아이폰은 어떨지 모르겠습니다..

따라서 다음 글 부터는 BLE Keyboard 방식을 기반으로 실제 제작기를 보여드리겠습니다.

제네시스 쿠페의 낮은 트림에서는, 포르테쿱과 마찬가지로 핸들 곡넘김이 되지 않습니다.

 

일명 "2세대" 오디오 사양에서는 블루투스로 음악을 제어하는 AVRCP 프로파일을 지원하지 않기 때문인데요..

(실제로는 연결시 블루투스 속성에 AVRCP가 나오긴 한데, 구현이 안돼있는 것 같네요.)

 

순정 네비가 장착된 트림에서만 사용이 가능합니다.

 


이러한 경우 일반적으로는 아래 방법을 통해 이를 해결할 수 있습니다.

 

1. 일명 "3세대" 오디오 또는 사제오디오로 변경.

2. 순정네비로 변경

3. 안드로이드 올인원 장착

4. 별도의 리모콘 구비

5. 그냥 포기하고 휴대폰으로 넘기기(?)

 

허나 저는 아래와 같은 이유로 5. 그냥 포기하고 휴대폰으로 넘기기를 선택하고 있었습니다.

 

1. 호환 3세대 오디오가 없고.. 순정 스피커에 사제오디오는 사치네요..

2. 네비 없는 사양에서 순정네비로 변경하는 것은 아주 고된 일이라고 하네요. 네비 연식도 오래되어 차라리 3번으로..

3. 곡넘김 하나 때문에 최소 30~40 쓰기는 좀 그렇네요.. 내구성도 좋지 않다고 알고있습니다.

4. 포르테쿱에서부터 사용했던 알리발 5천원짜리 리모콘..

기능에는 충실하나 핸들에 달기는 거추장스럽고, 마땅히 다른 곳에 달 곳도 없고..

무엇보다도, 배터리 절약을 위한 자동 Sleep 기능 때문에 원할 때 바로 곡을 넘기는게 불가능해서 안 쓰게 됐습니다.

 

 


 

그렇게 어연 몇 개월 간 그냥 휴대폰으로 넘기고 다녔는데 더 이상은 안되겠다는 생각이 문득 들더군요.

 

하드웨어 버튼은 있는데 왜 쓰질 못하니!!

 

그래서 위 4번, 개별 리모컨의 컨셉으로 새로 개발할 계획을 세우게 되었습니다.

+ Recent posts