Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Citroen C4 Picasso - Wygenerowanie sygnału MUTE w sieci CAN

karo3003 14 Mar 2017 23:00 1959 24
  • #1 14 Mar 2017 23:00
    karo3003
    Poziom 11  

    Witam serdecznie

    W samochodzie Citroen C4 Picasso mam fabryczny zestaw radionawigacji RT3 z nagłośnieniem Philips NXT i wzmacniaczem JBL, mam problem z dołożeniem zestawu głośnomówiącego z bluetooth ponieważ nie da się w łatwy sposób wyciszyć zestawu audio podczas przychodzącej rozmowy. Mam pytanie:

    Czy jest jakiś sposób na generowanie w sieci CAN sygnału MUTE? Na kierownicy jest przycisk MUTE, łączność z radionawigacją odbywa się właśnie przez CAN. Wiem, że mogę wyprowadzić przewody z przełącznika przy kierownicy i symulować włączanie przycisku przekaźnikiem ale doprowadzenie ich jest trochę problematyczne...

    Pozdrawiam i z góry dziękuję za pomoc
    Karol

    1 24
  • #2 15 Mar 2017 05:27
    rosak
    Poziom 24  

    Jest sposób. Mam kompletne sterowanie swoim bluetoothem z kierownicy, poprzez atmege. Późna pora już, postaram się jutro coś więcej napisać. Generalnie musisz sobie zmontować przynajmniej Arduino z MCP2515 i 2551 a wszystkie interesujące Cię komendy (mute, +, -, next, prev itp.) Ci podam.
    Pomysł z przewodami jest raczej niewykonalny, bo ten wysyła ramkę do CAN, a nie poprostu zwiera (chyba że go całkiem rozpracujesz).

    Edit:
    Przeczytałem to raz jeszcze i chyba nie wiem o co Ci chodzi. Chcesz przyciskiem MUTE na kierownicy wyciszyć fabryczne RT3? Przecież do tego on służy, czy poprostu u Ciebie nie działa..?

    0
  • #3 15 Mar 2017 08:49
    karo3003
    Poziom 11  

    Już tłumaczę. Przycisk MUTE na kierownicy działa poprawnie. Poprostu RT3 nie ma tak jak inne radia wejścia MUTE, które podłącza się do zestawu głośnomówiącego które to wycisza audio gdy przychodzi rozmowa.

    Szukam jakiegoś innego rozwiązania żeby zestaw głośnomówiący mógł automatycznie podczas przychodzącej rozmowy wyciszyć radio.

    0
  • Pomocny post
    #4 15 Mar 2017 12:16
    rosak
    Poziom 24  

    Już rozumiem.
    No to nic prostszego. Montujesz taki układ:
    Citroen C4 Picasso - Wygenerowanie sygnału MUTE w sieci CAN
    Oczywiście jeden nie dwa i bez LEDów bo zbędne. Zamiast Arduino możesz dać samą atmegę, lub Arduino mini/nano, możesz też kupić gotowy CAN BUS shield ale po co przepłacać.
    Wyjście mute ze swojego BT podłączysz do dowolnego wejścia atmegi a CAN LO i CAN HI podłączysz do wyprowadzeń z tyłu radia. Zasilanie do Atmegi też łatwo wyciągniesz z tyłu radia i całość możesz tam schować.
    W wolnej chwili prześlę Ci do tego sketch.
    Mam podobnie zrobione z tym, że w innym celu. Po przekręceniu kluczyka chiński BT łączy się z moim telefonem i uruchamia Spotify. Przyciskami na kierownicy steruję Spotify- poprzedni/następny utwór itp.

    1
  • #5 15 Mar 2017 12:48
    karo3003
    Poziom 11  

    Bardzo dziękuję za pomoc, czekam na dodatkowe info.

    0
  • #6 15 Mar 2017 13:28
    hagmen
    Poziom 2  

    Przy okazji zapytam czy w ten sam sposób możliwe byłoby wygenerowanie sygnału który pozwala to żeby wejście Video nie było blokowane po przekroczeniu 5 km/h ?

    0
  • Pomocny post
    #7 15 Mar 2017 17:17
    rosak
    Poziom 24  

    Poniżej pełny kod wysyłający komendę MUTE:

    Code:
    #include <mcp_can.h>
    
    #include <SPI.h>

    MCP_CAN CAN0(10);     // Set CS to pin 10

    void setup()
    {
      Serial.begin(115200);

      // Initialize MCP2515 running at 16MHz with a baudrate of 500kb/s and the masks and filters disabled.
      if(CAN0.begin(MCP_ANY, CAN_125KBPS, MCP_16MHZ) == CAN_OK) Serial.println("MCP2515 Initialized Successfully!");
      else Serial.println("Error Initializing MCP2515...");

      CAN0.setMode(MCP_NORMAL);   // Change to normal mode to allow messages to be transmitted
    }

    byte data[8] = {0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

    void loop()
    {
      // send data:  ID = 0x100, Standard CAN Frame, Data length = 8 bytes, 'data' = array of data bytes to send
      byte sndStat = CAN0.sendMsgBuf(0x21F, 0, 8, data);
      if(sndStat == CAN_OK){
        Serial.println("Message Sent Successfully!");
      } else {
        Serial.println("Error Sending Message...");
      }
      delay(1000);
    }


    Dodano po 1 [godziny] 7 [minuty]:

    hagmen napisał:
    Przy okazji zapytam czy w ten sam sposób możliwe byłoby wygenerowanie sygnału który pozwala to żeby wejście Video nie było blokowane po przekroczeniu 5 km/h ?


    Nie wiem jak to jest realizowane, ja mam RD4. Jeżeli informację o prędkości pobiera z ECU, co jest bardzo prawdopodobne, to jedyną opcją byłoby odizolowanie radia od sieci CAN poprzez powyższe urządzenie. Musiał byś wtedy zaprogramować aby wszystkie interesujące Cię sygnały były przekazywane do radia z wyjątkiem prędkości. Dałoby się to rozwiązać jedną linijką kodu z filtrem.

    0
  • #8 15 Mar 2017 17:50
    karo3003
    Poziom 11  

    rosak napisał:
    Nie wiem jak to jest realizowane, ja mam RD4. Jeżeli informację o prędkości pobiera z ECU, co jest bardzo prawdopodobne, to jedyną opcją byłoby odizolowanie radia od sieci CAN poprzez powyższe urządzenie. Musiał byś wtedy zaprogramować aby wszystkie interesujące Cię sygnały były przekazywane do radia z wyjątkiem prędkości. Dałoby się to rozwiązać jedną linijką kodu z filtrem.


    Wydaje mi się, że mogłoby to skutkować jakimś błędem albo zaburzyć działanie nawigacji albo komputera pokładowego bo straciłby dane o prędkości pojazdu... Ogólnie to bardzo dziękuję za pomoc i przedstawienie w prosty sposób jak można rozwiązać problem z tematu.

    0
  • #9 15 Mar 2017 18:01
    rosak
    Poziom 24  

    karo3003 napisał:
    Wydaje mi się, że mogłoby to skutkować jakimś błędem albo zaburzyć działanie nawigacji albo komputera pokładowego bo straciłby dane o prędkości pojazdu... Ogólnie to bardzo dziękuję za pomoc i przedstawienie w prosty sposób jak można rozwiązać problem z tematu.


    Nie rozumiesz, jak działa komunikacja w sieci CAN. W ogromnym skrócie i uproszczeniu- ECU rozgłasza dane o prędkości, kto chce, to korzysta z tych informacji, a my tutaj odcinamy tylko radio od tych informacji.

    0
  • #10 15 Mar 2017 18:43
    karo3003
    Poziom 11  

    Ok, Ty masz tylko radio ale kolega z kilku postów pisał o RT3 czyli radionawigacji. Nie wiem czy sygnał o prędkości nie jest nawigacji potrzebny do działania a jak go nie "wpuścisz" do niej żeby nie blokowała ekranu podczas jazdy (fabrycznie powyżej 5km/h obraz jest odcinamy) to może nie działać poprawnie. Również komputer pokładowy wylicza takie dane jak prędkość średnia i tym podobne i "siedzi" on w wyświetlaczu radionawigacji z której to bierze informacje z CAN o prędkości pojazdu itd.

    0
  • #11 15 Mar 2017 19:05
    hagmen
    Poziom 2  

    Jeśli chodzi o odblokowanie sygnału video to chyba na tej zasadzie działają te dostępne w sprzedaży po 450 zł boxy. Tu jest instrukcja https://pdf.ampire.de/caraudiosystems/TF-PSA/man_eng_TF-PSA.pdf w której jest informacja, że podczas działania video nie jest dostępna nawigacja. Swoją droga to bez znaczenia bo skoro na ekranie wyświetlone jest coś innego to po co działająca nawigacja. Ja chciałem tego użyć do podłączenia boxa samochodowego z opcja klonowania obrazu z telefonu i wyświetlanie np. yanosika czy nawigacji z telefonu. Problem tylko w tym, że zaburzane pewnie będą również wartości związane z działaniem komputera pokładowego np. informacje o spalaniu.

    0
  • #12 15 Mar 2017 19:16
    rosak
    Poziom 24  

    karo3003 napisał:
    Ok, Ty masz tylko radio ale kolega z kilku postów pisał o RT3 czyli radionawigacji. Nie wiem czy sygnał o prędkości nie jest nawigacji potrzebny do działania a jak go nie "wpuścisz" do niej żeby nie blokowała ekranu podczas jazdy (fabrycznie powyżej 5km/h obraz jest odcinamy) to może nie działać poprawnie. Również komputer pokładowy wylicza takie dane jak prędkość średnia i tym podobne i "siedzi" on w wyświetlaczu radionawigacji z której to bierze informacje z CAN o prędkości pojazdu itd.


    Przepraszam kolego, w pośpiechu nieuważnie przeczytałem. Skądś mi się ubdurało, że myślisz, że przez to będziesz miał zakłócone wskazania prędkościomierza co jest oczywiście niemożliwe. Wskazania komputera pokładowego, który znajduje się w nawigacji, rzeczywiście mogą być w ten sposób zablokowane, co zresztą potwierdza mój przedmówca.

    Tak czy siak odbiegliśmy od głównego tematu. Gdybyś potrzebował jeszcze jakiejś pomocy z MUTE, daj znać.

    0
  • Pomocny post
    #13 20 Kwi 2017 16:25
    rosak
    Poziom 24  

    Wykonałem owy moduł dla kolegi karo3003, gdyby ktoś był zainteresowany:


    Link


    Zrobiłem tak, że podczas połączenia przychodzącego radio się wycisza, a dźwięk z zestawu przez przekaźnik trafia do lewego głośnika w drzwiach.

    1
  • #14 20 Kwi 2017 16:41
    Samuraj
    Poziom 35  

    Komputer pokładowy nie jest zawarty w radionawigacji.
    Radionawigacja służy za wyświetlacz.
    Nie wiem co jest w środku ale ja bym to zrobił inaczej.
    Dwie magistrale CAN, dane przerzucać z jednego CAN'a do drugiego podmieniając ramkę o prędkości. Całkowite odcięcie radia od CAN'a nie wchodzi w grę, choć by dlatego iż po tej magistrali przesyłane są dane wciśniętych klawiszy na kierownicy.

    1
  • Pomocny post
    #16 20 Kwi 2017 17:28
    Samuraj
    Poziom 35  

    Dla potrzebujących informacji o budowie ramek odsyłam na stronę:
    https://autowp.github.io/

    W tym konkretnym przypadku uruchomienie funkcji mute następuje poprzez naciśnięcie obu klawiszy Volume UP oraz Volume Down.
    Ramki danych z kierownicy rozgłaszane są pod adresem 21F

    https://autowp.github.io/#21F

    Tak więc cały program sprowadza się do tych dwóch linijek

    Kod: c
    Zaloguj się, aby zobaczyć kod

    1
  • #17 20 Kwi 2017 17:40
    rosak
    Poziom 24  

    Samuraj napisał:
    Dla potrzebujących informacji o budowie ramek odsyłam na stronę:
    https://autowp.github.io/


    Bardzo cenne repozytorium, świetne znalezisko. Dla mnie nic nowego odkąd zbudowałem swój sniffer na STM32 ale może coś dorzucę od siebie.
    Dzięki Samuraj.

    Edit- jednak bardzo mi się przyda, potrzebowałem informacji o obecności zmieniarki CD, swoją sprzedałem zanim skonstruowałem sniffera. W końcu będę mógł podłączyć BT do Input 1 i zwolnić Input 2 :)

    0
  • #18 20 Kwi 2017 17:53
    Samuraj
    Poziom 35  

    Symulowanie zmieniarki jest interesującą opcją.
    Sam szukałem takiego modułu który wyświetlał by informację o utworze i wykonawcy. Niestety wiele sprzedawanych na rynku modułów nie umożliwia takie funkcji.
    Sama informacja CD 1-9 i utwór 1-99 jest dość biedna.
    Sam osobiście korzystałem z tej strony szukając informacji w jaki sposób podłączyć kolorowy wyświetlacz z 207,508 do 3008.
    Wygląda on o wiele lepiej i pasuje praktycznie plug&play.
    Niestety producenci chyba aby uniemożliwić takie działanie pozmieniali niektóre ramki danych.
    Posiadając sniffer oraz oba wyświetlacze udało się połączyć jedno z drugim. Niestety zabrakło wytrwałości by projekt skończyć. Prototyp działa lecz do pełni satysfakcji potrzebna jest płytka na której zrobienie po prostu nie mam warunków oraz czasu.

    0
  • #19 20 Kwi 2017 18:12
    rosak
    Poziom 24  

    Samuraj napisał:
    Sam szukałem takiego modułu który wyświetlał by informację o utworze i wykonawcy. Niestety wiele sprzedawanych na rynku modułów nie umożliwia takie funkcji.


    Dodanie tej funkcjonalności też jest na mojej liście rzeczy do ogarnięcia, jednak już nie dla jakiegoś Yatour'a a dla modułu BT na CSR8645, chcę wyświetlać informację o utworze granym ze Spotify na telefonie. Na razie jednak nie mam na to czasu ale któregoś dnia na pewno zrobię.

    0
  • #20 26 Maj 2017 23:53
    thesilent
    Poziom 11  

    Caro3003 a jakie Ty masz auto? Ja mam grand c4 picasso 2007 z rt3 i navi. Też mam Philips nxt, ale wzmacniacz chyba też philips. Od jakiegoś czasu walczę z kompletnym zanikiem dźwięku. Zauważyłem, że może mieć to związek z temperaturą radia/wzmacniacza.

    Samo bluetooth rozwiązałem w ten sposób, że kupiłem sobie adapter, który podłączyłem pod AUX w radiu. Czyli jak ktoś dzwoni, to muszę SOURCE w radiu przełączyć na AUX/Audio In.

    Czy można zrobić tak, że przy dzwonieniu radio samo przechodzi na AUX?

    0
  • #21 27 Maj 2017 00:18
    rosak
    Poziom 24  

    thesilent napisał:
    Czy można zrobić tak, że przy dzwonieniu radio samo przechodzi na AUX?


    Na razie nie wiadomo czy da się to zrobić. Moim zdaniem nie, przycisk source tylko fizycznie na panelu radia, więc jedynie lutowanie. Próbowałem po 0x122 ale bez skutku.

    0
  • #22 27 Maj 2017 00:35
    Karaczan
    Poziom 39  

    Przepraszam że podepnę się pod temat.
    Czy ktoś z was zna stronę podobną do https://autowp.github.io/ ale odnośnie CAN we Fiatach?

    Grzebię sobie czasem Snifferem CAN, ale taka stronka bardzo by ułatwiła pracę, szczególnie że mój Punciak nie jest full opcją, by sobie np powciskać przyciski i popatrzeć na ramki ;)

    Jednak osobiście nie udało mi się wykopać jakiś sensownych informacji w Internetach.

    0
  • #24 30 Maj 2017 20:41
    Karaczan
    Poziom 39  

    Np informacje odnośnie wyświetlania różnych rzeczy na wyświetlaczu zegarów ComfortLine.
    Gdy posiadałem fabryczne radio mogłem podejrzeć ramki odnośnie RDS na zegarach.
    Więc mogłem wyświetlać swoje komunikaty symulując radio. Jednak jest to mocno ograniczone i trochę pomotane.
    Moje radio nie miało opcji MP3, więc ramek ID3taga nie obejrzę.

    Myślę że sensowniej było by "pisać" jako zestaw HF Blue&Me. Dzięki temu uzyskał bym możliwość dłuższych komunikatów jak i np polskie znaki ;)
    Niestety nie mam też fabrycznego HF, więc nici z podglądania...

    0