Audio w samochodzie

     Audio w starym aucie. Temat rzeka. Ilu użytkowników, tyle opinii, a nawet może trochę więcej. Nie jestem audiofilem, nie jestem człowiekiem z przysłowiowej branży i pewnie wielu osobom nie spodoba się coś w przeróbce, którą zrobiłem. Temat o tyle ciekawy, że jeżeli nie chcesz iść na łatwiznę, szkoda pieniędzy na wymianę radia lub chcesz mieć oryginalne, to warto się trochę pomęczyć.

Posiadam audi 80. Auto nie jest jeszcze na tyle stare, aby traktować je jako zabytek. Nie jest też już „nowe” kilkuletnie od niepalącej kobiety, która jeździła tylko do kościoła, taki średniak. Wraz ze zmianą z jednej 80-ki na drugą, wymianą diesla na hybrydowe Pb+Lpg, zamarzyłem o cichym wnętrzu, nietrzeszczącej tapicerce i przyjemnym słuchaniu muzyki. Mam ten komfort, że dojazd do pracy wiąże się z jazdą w trasie i mogę przez chwilę posłuchać radia.

    Cały projekt dopiero startuje, a więc od czegoś trzeba zacząć.

Założenia :

– Nic nie może być widoczne. Zakładam wykorzystanie oryginalnego radia, oryginalnych miejsc na głośniki     (avant: głośnik na podszybiu z przodu i tylne drzwi)

– Radio Gamma CC + wzmacniacz 4 kanałowy + głośniki tylko w miejscu oryginalnych wraz z oryginalnymi maskownicami,

– Nie słucham „upa-upa”, więc skrzyni basowej nie przewiduję. Nie chcę, aby okolica słuchała wraz ze mną, także nie musi być to zestaw estradowy spakowany w bagażniku.

Na pierwszy etap poszło radio.

Posiadam radio Gamma CC. Wersja Blaupunkta. Szperając w sieci znalazłem przynajmniej kilka różnych wersji, od różnych producentów i różnych wykonań. Różniły się panelem czołowym, wyprowadzeniem wyjść i kilkoma detalami w środku. Moja wydaje się tą najmłodszą wersją v5. Przynajmniej wnioskować można po panelu. Całość idealnie komponuje się z deską, co było kluczowym powodem, do zostania przy seryjnym radiu.

Naturalnie są inne, lepsze radia, o większych możliwościach, ale chodzi o to, aby samemu coś zrobić i nie dać się naciągać „fachowcom”. Radio gra ładnie. Przynajmniej ja mam takie odczucia. Trybu grania z kasety, nie sprawdzałem. Nie miałem w domu już tych wspaniałych „banków pamięci”. Nawet, aby sprawdzić czy działa mechanizm, musiałem emulować kasetę paluchem.

Aby iść z duchem czasu postanowiłem dodać znienawidzoną mp3’ke. Sam format jest tragiczny i wycina sporo z muzyki, ale niestety zdominował cały rynek. Dla ciekawskich polecam poczytanie o formatach FLAC i dodatkach pozwalających ominąć systemowy mikser. Różnica jest kolosalna i „wyczuwalna” przez zwykłego zjadacza chleba.

Wracając do tematu. Poprawa i tak jest spora. Stary, nieużywany napęd kasetowy, zamieniony na mp3 to i tak jest lepiej. Przynajmniej gra to co chcę.

Kaseta z kabelkiem, transmiter FM i inne takie cuda już przerabiałem – nie spełniają moich oczekiwań. Kupienie emulatora zmieniarki, za ok. 250 złotych nie rozwiązuje sprawy, bo to radio nie obsługuje czegoś takiego.

Od tego momentu, kiedy będę pisał o transmiterze, będę miał na myśli ten kawałek układu, który odczytuje dane z pliku, zamienia na sygnał audio, ale już nie nadaje go w eter, a zostaje jako sygnał w „kablu”. Najzwyczajniej, rozebrałem obudowę i część płytki odpowiedzialnej za nadawanie w paśmie FM, odciąłem. Zostało tylko gniazdo usb, do podpięcia pendriva. Posiadałem najprostszą wersję, za ok. 15-20 zł z pilotem IR.

     Pomysł nie jest mój i już inni to przerabiali. Idea jest taka, aby wyjąć cały moduł kasety, a na jej miejsce wstawić transmiter. Problematyczne okazało się sterowanie modułem mp3. Są dwie szkoły. Pierwsza zakłada wyprowadzenie złącza na zewnątrz radia i tam podpinać się z urządzeniem. Mamy dostęp do klawiatury mp3’ki i nią sterujemy.

Drugi: Całość siedzi w obudowie radia. Przedłużamy czujnik podczerwieni i montujemy go gdzieś na desce. Sterowanie modułem mp3 odbywa się przez pilota.

Jedno i drugie zakłada „ingerencję” w deskę rozdzielczą, co jest sprzeczne z pierwszym założeniem. Pierwsze to musimy mieć transmiter w gnieździe zapalniczki, drugie – wala się pilot po kabinie.

Poszedłem o krok dalej i całość „siedzi” w radiu. Sterowanie modułem mp3 odbywa się z poziomu przycisków na panelu. Pendrive z plikami siedzi w zamkniętej popielniczce. Zmiana piosenek dokonywana jest z przycisków radia. Mam pierwotny wygląd radia. Nic nie widać z zewnątrz. Nie wala mi się pilot do sterowania. W celu zmiany repertuaru, wyjmuję pendriv’a i zapisuję na nim ulubioną playlistę.

    Sama przeróbka nie jest czymś skomplikowanym. Pierwsze co robimy, to wywalamy cały moduł kasety. Wisi sobie na płytce przykręconej 4 śrubkami do obudowy. Sam etap nie jest na tyle skomplikowany, aby rozwodzić się nad nim. Wypinamy głowice (czerwone gniazdo) odpinamy zasilanie silniczka kasety wraz z cewkami i czujnikami. Podłużne gniazdo z lewej strony.

Aby podpiąć się z sygnałem audio, musimy znaleźć punkt obwodu między przedwzmacniaczem głowicy a procesorem dźwięku. Idąc od gniazda głowicy, widać pierwszy mały scalak. Jest to przedwzmacniacz. Aby określić co jest podpięte do jego nóżek, musimy znaleźć w Internecie notę katalogową. Tam powinno być wszystko rozrysowane. Nas interesuje wyjście z tego układu.

Przedwzmacniacz głowicy

Przedwzmacniacz głowicy

Kiedy prześledzimy przejście ścieżek z tego układu na płytę główną, znajdziemy bardzo dobre miejsce do podpięcia się w ten tor audio. Ja wybrałem miejsca lutownicze przejścia z jednej płytki na drugą. Jak się dobrze przyjrzeć to są nawet oznaczenia sygnałów na danych pinach. Należy przylutować trzy przewody. Kanał prawy, lewy i masę. W transmiterze przy złączu Jack’a są pola lutownicze, do których należy przylutować drugie końce przewodów.

Miejsca lutowania kanałów audio

Miejsca lutowania kanałów audio

     To był najłatwiejszy etap prac.

Teraz zasilanie modułu transmitera. Wykorzystanie zasilania silniczka nasuwa się jako pierwsze. Niestety w moim przypadku silniczek był sterowany masą. Nie nadaje się to rozwiązanie w tym przypadku, bo transmiter „podbierze” sobie masę z sygnału audio. Poszedłem trochę na łatwiznę i zasilam transmiter z plusa, który pojawia się po włączeniu radia.

Teraz należy znaleźć w module kasety, mikroprzełącznik, który daje informację dla sterownika radia, że kaseta jest w środku i należy uruchomić tor audio kasety i zasilanie napędu. U mnie jest to ten żółty i czarny przewód. Po zwarciu tych przewodów radio przechodzi na odtwarzanie kasety. Sygnał jest tylko wyzwalaczem. Po uruchomieniu kasety można go rozłączyć, a radio nadal będzie pracowało na kasecie.

Do tego miejsca wszystko jest tak samo jak w innych przeróbkach. Nie ma w tym nic nadzwyczajnego i innowacyjnego. Jeżeli Twoje radio jest trochę inne, to warto poszperać w sieci. Jest duże prawdopodobieństwo, że już ktoś to przerabiał w identycznym modelu.

Teraz chyba najciekawsze. Nie akceptowałem innego rozwiązania do sterowania modułem mp3 jak sterowanie z przycisków radia. Należy w pierwszej kolejności zidentyfikować linie sygnałowe z przycisków. Są dwie. Właściwie gdyby nie było konieczności wciskania jednoczesnego dwóch klawiszy, mogła by być tylko jedna. Przykładamy miernik napięcia do kolejnych pinów i sprawdzamy napięcie przy wciśniętych przyciskach. U mnie są to dwie pierwsze z lewej.

Linie sygnałowe do/z panela

Linie sygnałowe do/z panela

Część przycisków jest podpięta do jednej, a druga do drugiej linii. Jeżeli jest funkcja która wymaga wciśnięcia dwóch przycisków, to na pewno są na dwóch różnych liniach. Przykładowo wyjmowanie kasety (przewijanie w przód + przewijanie w tył)

Na jednej linii sygnałowej są dołączone przyciski z rezystorami. Każdy jest inny. Kiedy wciskamy przycisk, dołączamy dany rezystor, który zmniejsza nam napięcie na linii.  Przez to, przy wciskaniu klawiszy, pojawiają nam się różne napięcia na linii sygnałowej. Wszystko w zakresie 0-5 volta. Mikroprocesor radia mierzy te napięcia i na tej podstawie wie, jaki klawisz został wciśnięty. Dwie linie są potrzebne, aby można było sprawdzać czy są wciśnięte dwa przyciski jednocześnie.

Aby móc podbierać sygnały z linii, musiałem dodać własny układ, który mierzy napięcia na liniach sygnałowych i odpowiednio na nie reaguje.

Do tego celu użyłem starego mikrokontrolera Atmeg8. Walał mi się w szufladzie od kilku lat. Za słaby, aby zrobić coś ciekawego, a szkoda wyrzucić. Właśnie teraz znalazł swoje miejsce. Nadaje się idealnie. Ma w sobie przetwornik analogowo – cyfrowy z 4 kanałami pomiarowymi, parę wolnych pinów, które wykorzystam jako wyjścia do sterowania modułem transmitera i jedno do wysyłania sygnału dla radia, że ma zacząć grać „z kasety”.

Sam układ jest absolutnie minimalistyczny. Tylko to co jest niezbędne. Zasilanie płytki to klasycznie stabilizator napięcia 5V. Kilka kondensatorów do podtrzymania stałego zasilania, obowiązkowe kondensatory filtrujące 100 nF i dławiki na zasilaniu mikroprocesora i przetwornika AD.

Mikroprocesor podpięty jest kanałami pomiarowymi do linii sygnałowych przycisków. Po przylutowaniu przewodów, miejsca te zostały zaizolowane.

Podpięcie się pod linie sygnałowe

Podpięcie się pod linie sygnałowe

Sygnały wyjściowe mikrokontrolera, przesyłam używając kości transoptora CNY74-4, z 4 niezależnymi torami. W skrócie jest to taki odpowiednik przekaźnika półprzewodnikowego. Jeżeli przez diodę popłynie prąd o natężeniu wyższym niż 10 mA, to złącze tranzystora zostanie spolaryzowane i wejdzie w stan nasycenia. Pełne otwarcie klucza. Ważne w tym przypadku jest to, że układ z jednej i drugiej strony transoptora jest izolowany galwanicznie. Obwód sterowania radia, obwód transmitera i mikrokontrolera, jest zasilany z innych stabilizatorów. Przekazanie informacji za pośrednictwem „światła” rozwiązuje nam potencjalnie negatywne skutki łączenia obwodów. Kiedy na wyjściu pojawia się stan wysoki, „styki” transoptora zaczynają przewodzić. Zostało to wykorzystane do symulowania zwarcia przełączników na przyciskach transmitera. Pierwsze 3 kanały zostały użyte, do zwierania przełączników poprzednia, następna i play/pause. Kanał 4 zwiera przewody dla sygnału włączenia toru audio kasety w radiu.

Wyprowadzenia sygnałów przycisków mp3'ki

Wyprowadzenia sygnałów przycisków mp3’ki

Algorytm programu.

     Przetwornik AC mierzy napięcie naprzemiennie na jednej i drugiej linii sygnałowej. Jest to wykonywane cały czas od startu mikrokontrolera. Po wykonaniu pomiaru, wynik jest przepisywany na zmienne, przełączany jest kanał pomiarowy, i pomiar wykonywany jest ponownie. Taki cykl odbywa się nieprzerwanie od startu mikrokontrolera.

Przy starcie uruchamiany jest też Timer0 z okresem ok. 20 ms. W przerwaniu przepełnienia licznika, wyniki pomiarów porównywane są z przedziałami, na które sterownik ma odpowiednio zareagować.

Do przejścia na tryb odtwarzania muzyki z mp3’ki wykorzystałem przycisk Autoreversu. Normalnie przycisk ten jest aktywny podczas odtwarzania z kasety. Podczas słuchania radia, przycisk ten nic nie robi. Kiedy mój układ wykryje wciśnięcie tego przycisku, pojawia się sygnał dla radia, aby przeszedł na tor kasety oraz sygnał play dla transmitera. Kiedy mp3’ka już gra przycisk ten zmienia tylko stan transmitera  play/pause. Aby ponownie wrócić do słuchania radia, musimy klasycznie wyłączyć „kasetę” (przewijanie w przód + przewijanie w tył). Radio przechodzi na tor FM, a mikrokontroler zatrzymuje transmiter.

Z wybieraniem kolejnych lub wcześniejszych utworów pojawił się mały problem. Początkowo chciałem użyć klawiszy przewijania. Jednak kiedy normalne nieprzerobione radio, zaczyna przewijać, to wyłącza na ten czas wszystkie kanały audio, aby nie przenosić zakłóceń.

Pierwsze wciśnięcie przycisku przewijania, zmieniłoby utwór na następny  w mp3’ce, ale jednocześnie wyłączyłoby tor audio kasety. Drugie wciśnięcie przycisku przewijania wyłącza przewijanie, aktywuje tor audio i zmienia na następny utwór w mp3’ce. W efekcie musimy nacisnąć dwa razy, aby powrócić do słuchania muzyki, ale przełączamy się też o dwa utwory. Aby sobie trochę ułatwić, użyłem strzałek zmiany częstotliwości radia. Podczas słuchania kasety, przyciski nic nie zmieniają w radiu. Są tylko trochę mniej intuicyjne niż przyciski przewijania. Działanie jest zgodne z założeniem. Jedno wciśnięcie, jeden utwór w przód lub w tył.

Na filmie przedstawiłem jak to działa na stole. Jeszcze przed zamknięciem obudowy radia i montażem w aucie. Wykonanie trochę spartańskie. Użyłem nielubianego przez niektórych elektroników kleju na gorąco. Nie jest to może estetyczne, ale pewnie stabilizuje mi przewody. Zależało mi na unieruchomieniu wszystkich luźnych kabelków, aby podczas jazdy samochodem, od wstrząsów, nie dochodziło do przełamania włókien.

Za estetykę wykonania pewnie nikt mnie nie pochwali, ale przynajmniej mam swoje wytłumaczenie.

cały układ

cały układ

Płytka zrobiona metodą naświetlania. Jednostronna, z elementami SMD i przewlekanymi. Można pokusić się o zmniejszenie jej wymiarów, ładniejszego poprowadzenia ścieżek. Ale jak to już bywa, jako prototyp, popracuje pewnie przez dłuższy czas. Może kiedyś pokuszę się, o przerobienie jej na płytkę dwuwarstwową, z ładną soldermaską  i zamówię w prototypowni. Ale to już w przyszłości.

Koszt wykonania takiej przeróbki:

Atmega 8    – ok 8 zł

CNY74-4     – 3,3 zł

stabilizator 7805 – 1,5

laminat   – ok 7 zł

kondensatory, goldpiny itp – ok 6 zł

kabel USB – 7 zł

transmiter – 15 zł

Suma :  47,8 zł

Poniżej załączam schemat i program mikrokontrolera. Może komuś się przyda.

schemat

schemat


 

/*
* mp3gamma.c
*
* Created: 2016-06-14 21:43:38
* Author: GrzegorzM
*/

#define F_CPU 1000000L
#include <avr/io.h>
#include <avr/signal.h>
#include <util/delay.h>

uint16_t wynikA,wynikB;
uint8_t kanal;
uint8_t krotnoscA;
uint8_t MP3ON;

int main(void)
{

DDRD = 0xff;
PORTD = 0x00;
DDRB = 0xff;
PORTB = 0x00;
DDRC = 0x3c;
PORTC = 0x00;

ADCSRA = 0x88;
ADMUX = 0x00;

TIMSK |= (1<<TOIE0);
TCCR0 = 0x03;

_delay_ms(2000);
PORTD = (1<<PD1);
_delay_ms(100);
sei();
ADCSRA |= (1<<ADSC);

while(1)
{

}
}
ISR(ADC_vect){

if (kanal==0)
{
ADMUX = 0x00;
wynikA=ADC;
kanal=1;
ADCSRA |= (1<<ADSC);

}
else
{
ADMUX = 0x01;
wynikB=ADC;
kanal=0;
ADCSRA |= (1<<ADSC);

}

}

ISR(TIMER0_OVF_vect){
////////////////////////////////////////////////////////////////////////////////////////////////
if ((wynikA>=820)&&(wynikA<=1024)&&(wynikB>=820)&&(wynikB<=1024)) //nic nie jest wcisniete
{
PORTD = 0x00;
krotnoscA=0x00;

}

////////////////////////////////////////////////////////////////////////////////////////////////
if ((wynikA>=95)&&(wynikA<=105)) // strzalka Autorevers
{
if (MP3ON==0x00)
{
PORTD = (1<<PD0);
MP3ON=0x01;
}

if ((MP3ON==0x01)&&(krotnoscA==0x00))
{
PORTD ^= (1<<PD1);
krotnoscA=0x01;
}

}

////////////////////////////////////////////////////////////////////////////////////////////////
if ((wynikA>=655)&&(wynikA<=675)) // strzalka w lewo
{
PORTD = (1<<PD2);
}
////////////////////////////////////////////////////////////////////////////////////////////////
if ((wynikB>=655)&&(wynikB<=675)) // strzalka w prawo
{

PORTD = (1<<PD3);
}

////////////////////////////////////////////////////////////////////////////////////////////////
if ((wynikB>=95)&&(wynikB<=105)&&(wynikA>=0)&&(wynikA<=10)) // strzalka w prawo lewo
{
MP3ON=0x00;
PORTD = (1<<PD1);
}
//pd3 lewo
//pd2 prawo
//pd1 pause

}


Pozdrawiam

GrzegorzM.