
Cześć,
chciałbym Wam pokazać ostatnio wykonany projekt. Posiadam Renault Megane II ph. II z 2006 roku z fabrycznym radiem Renault UpdateList. W dzisiejszych czasach standardem jest, że muzyki w samochodzie słuchamy nie tylko z radia FM czy z płyt CD, ale także z telefonu. Radio w wersji UpdateList wyposażone jest w wejście liniowe AUX, dlatego dotychczas korzystałem z różnego rodzaju chińskich dongli bluetooth do słuchania muzyki. Brakowało mi natomiast możliwości sterowania odtwarzaczem w telefonie (np. Spotify) z panelu radia czy kierownicy wielofunkcyjnej, jak ma to miejsce w nowszych autach. Dlatego powstał MeganeBT. Na powyższym zdjęciu można zobaczyć wykonany przeze mnie moduł wraz z podłączoną przelotową wiązką radia, poniżej film na YT przedstawiający działanie urządzenia:
Film:
Opis:
Urządzenie wykorzystuje interfejs zmieniarki (CDC) w radiu UpdateList, dzięki czemu można sterować telefonem/tabletem bezpośrednio z przycisków na panelu przednim radia i z pilota przy kierownicy. Generalnie interfejs CDC to UART z poziomami logicznymi 0V i 12V, o polaryzacji odwrotnej niż standardowa. Wykorzystany moduł BT to RN52, moduł ten ma możliwość odczytania z urządzenia źródłowego informacji o utworze. Urządzenie podpięte jest do szyny CAN pomiędzy radiem a wyświetlaczem i w miarę możliwości podmienia tekst na tytuł oraz wykonawcę utworu. Implementacja CAN pomiędzy radiem a wyświetlaczem jest w miarę standardowa, prędkość 500 kbps. Audio przesyłane jest interfejsem S/PDIF. Konieczne było rozpracowanie zarówno protokołu CDC, jak i protokołu pomiędzy radiem i wyświetlaczem. Musiałem wykonać sniffery do obu protokołów i przeanalizować komunikację pomiędzy radiem a wyświetlaczem, a także między radiem a zmieniarką. W Internecie jest trochę informacji na temat protokołu CDC Renault, natomiast CAN wyświetlacza jest prawie w ogóle nieopisany. Trochę wieczorów to zajęło, ale działa. Całość kontroluje mikrokontroler STM32F042K6T6.
Schematy i program uC:
Schemat układu:
https://www.github.com/Tomasz-Mankowski/MeganeBT/blob/master/PCBSch/MeganeBT_PCBSch.pdf Same schematy zawierają parę dodatkowych elementów, których ostatecznie nie przylutowałem. Np. wzmacniacz audio, który dołożyłem w razie problemów z S/PDIF i konieczności powrotu do pomysłu z wejściem liniowym. Czy wejście mikrofonu - to jest kwestia otwarta, można dołożyć funkcjonalność zestawu głośnomówiącego, ale to może na kiedy indziej.

Źródła programu i dodatkowe informacje zamieściłem na git-hubie:
https://www.github.com/Tomasz-Mankowski/MeganeBT
Schemat podłączenia MeganeBT:

Fotorelacja
Zaczęło się oczywiście od dużo mniej skomplikowanego projektu: audio miało być z AUX miał być najprostszy chiński moduł BT, w ramach rozrywki napis "AUX" miał zostać podmieniony na "Bluetooth". Ponieważ pilot przy kierownicy podpięty jest do CAN wyświetlacza chciałem przechwytywać wciskanie przycisków i tak sterować modułem BT. Na stole skompletowałem kopię instalacji radia:


Zaprojektowałem pierwszą wersję opartą o chiński moduł BT XS3868, który dodatkowo wyposażony był w moduł transceivera CAN. Uruchomienie poszło gładko, natomiast były gigantyczne problemy z samymi modułami BT. Najmniejsze wyładowanie elektrostatyczne (dotknięcie palcem czegokolwiek) powodowało natychmiastowo uszkodzenie modułu BT. Spaliłem tak chyba 4 sztuki.
EDIT: Błąd nie wynikał prawdopodobnie z elektrostatyki, ale ze niepoprawnego obciążenia wyjścia audio, słaba dokumentacja modułu wyprowadziła mnie na błędne tory. Więcej informacji w postach użytkownika -rafal- poniżej.

Dlatego zdecydowałem się wykorzystać inny moduł BT, wyższej jakości. Wybór padł na RN52, w tym miejscu projekt się skomplikował. RN52 oferuje wyjście S/PDIF oraz możliwość odczytywania z telefonu informacji o utworze. Dlatego zdecydowałem po pierwsze, że zamiast wejścia liniowego w radiu wykorzystam cyfrowe wejście S/PDIF, a do tego konieczna była emulacja zmieniarki. Dodatkowa przewaga nad wcześniejszym rozwiązaniem to możliwość przechwytywania akcji przycisków nie tylko z pilota, ale także panelu przedniego radia. Po drugie podmiana nazwy źródła na wyświetlaczu rozrosła się do wyświetlania informacji o utworze. Powstała druga wersja modułu.


Bardzo pomocna okazała się strona dot. emulacji CDC, głównie program w pythonie: tlcdcemu.sourceforge.net/ Niestety program był chyba przygotowany dla TunerList, dlatego do stanowiska testowego dołączyła oryginalna zmieniarka za 35zł. Teraz miałem możliwość podsłuchania i rozpracowania protokołu CDC. Dodatkowo konieczne było podpięcie głośnika, w przypadku AUX wystarczyły słuchawki do sprawdzania muzyki, teraz musiałem korzystać z dekodera S/PDIF w radiu.

Od tego miejsca poszło już w miarę gładko. Na dzień dzisiejszy moduł trafił na testy do samochodu. Oczywiście nie obyło się bez problemów. Okazało się, że protokół CDC w radiu, które mam w aucie minimalnie różnił się od tego na biurku, MeganeBT musiał wrócić jeszcze na 2h na stół. Nadal jest trochę bugów w oprogramowaniu, głownie w temacie wyświetlania informacji o utworze. Czasami ta część programu się wykrzacza i muszę to jeszcze dopracować. Poza tym samo odtwarzanie i kontrola odtwarzania działa całkiem sprawnie. Po podpięciu do radia wygląda to następująco:

Jeżeli macie jakieś pytania lub uwagi, śmiało.
Tomek
Cool? Ranking DIY