Jakiś czas temu zacząłem grzebać w sieci CAN Pandy i mając zegary Emotion od klekota ze sporym przebiegiem - postanowiłem się chwilę nimi pobawić.
W pierwszej kolejności - poszedłem do Pandy uzbrojony w Arduino + nakładkę CAN + laptopa i wytargałem zegary, do których następnie się podpiąłem (pomiędzy zegary, a auto) i zrobiłem loga z szyby CAN na postoju, w czasie jazdy, ze światłami itd. Następnie poskładałem Pandę do kupy
Już w domu wykonałem trochę magii w Excelu i wrzuciłem część wiadomości do Arduino, tym razem w formie do wysłania. Podłączyłem zegary i jazda! Zegary ożyły.
Po kilku godzinach walki - rozgryzłem większość sygnałów, które dochodzą do zegarów, a nawet więcej (metodą prób i błędów).
Mi dopiero w zeszłym tygodniu przyszedł CAN shield, więc jeszcze zabawy nie zacząłem. Interesowały by mnie najbardziej ramki dla CD-info, sam nie mam fabrycznego radia więc nie mam jak podejrzeć. Można by wysyłać wtedy dowolne komunikaty na licznik, a to już mogło by się dosyć przydać. Czekam na więcej detali
JargoV pisze:Interesowały by mnie najbardziej ramki dla CD-info, sam nie mam fabrycznego radia więc nie mam jak podejrzeć.
Mnie też to interesuje, ale - fabryczne radio nie wysyła ani CD-tekstu, ani nazwy MP3 do zegarów. Wyświetla się "CD Trk 01" itd. Ale za to wbiłem się w radio, co udowodnię filmem, który później pokażę. Niestaty - jak jest radio to musi być częstotliwość, ale mam plan, żeby wykorzystać ją na wyświetlanie dystansu do celu podróży
Więcej detali - będzie przede wszystkim tutaj (wraz z kodem źródłowym do aplikacji i dll'ką do ETS2): http://techplayground.blog.pl/
Deaacon pisze:Zaraz zaraz - znaczy podpiąłeś zegary do kompa i działają razem z tymi w grze? Jak tak to wypas
To pacz
To, co na tą chwilę udało mi się uruchomić: - prędkość, - obroty, - paliwo, - kontrolka rezerwy, - temperatura płynu, - uruchamianie/gaszenie silnika, - światła, - podświetlenie, - długie światła, - kierunkowskazy, - awaryjne, - kontrolka tempomatu (zapala się ikonka CITY, bo w Pandzie nie ma kontrolki tempomatu), - nie świeci się błąd poduszki, - gasną wszystkie kontrolki, których nie powinno normalnie być, - przebieg nie miga, - wyświetlają się kolejno napisy na wyświetlaczu po uruchomieniu gry: " WELCOME " -> " TO " -> " ETS2 " i zegary robią tzw. staging - kontrolka zaciągniętego ręcznego,
To, co jeszcze zostało do ogarnięcia na tą chwilę to: - sterowanie komputerem pokładowym (zmiana funkcji z poziomu arduino działa, ale muszę tam jakoś dane wpychać), - ciekawe, że gaśnie kontrolka od rezerwy po zaciągnięciu ręcznego, - kierunkowskazy czasem gubią synchronizację z grą, - większość kontrolek błędów (ABS, poziom płynu hamulcowego, check engine, itd) nie została jeszcze oprogramowana.
[EDIT] Udało się dorobić kontrolkę zaciągniętego ręcznego
Dzięki za info. Odkryłem to wczoraj wieczorem, ale nie odkryłem jeszcze jak ją włączyć przez CAN. Niewykluczone, że trzeba będzie wyosiować zegary w aucie z włączeniem opcji tempomatu, bo mogą być niezakodowane pod obsługę tej kontrolki. Nie wiem tylko czy FES ma na liście opcji tempomat...
FES ma tylko test kontrolki. Z tego co się orientuję to na rynek europejski nie była przewidziana opcja tempomatu podobnie jak czujnika deszczu. Dlatego nigdzie nie ma też schematów od tempomatu.
To trochę update'u po kolejnym dniu zmagań. Poprawiłem program pod kątem startu zegarów (do tej pory się świeciły cały czas, dopóki program nie dostał wiadomości z gry, że silnik jest wyłączony). Aktualnie - zegary się usypiają od razu po podłączeniu do Arduino tak, jakby nie było kluczyka w stacyjce. Do tego dodałem obsługę hamulca ręcznego i zachowuje się on tak, jak w Pandzie tzn. kontrolka się zapala po zaciągnięciu ręcznego, a jeśli zaciągniemy w czasie, gdy auto jeszcze jedzie - zacznie piszczeć alarm.
Do tego - popracowałem nad hardware'm i w efekcie - wywaliłem ten cały CAN shield itd, złożyłem własny wraz z wyprowadzeniem goldpinów pod wtyczki do zasilania 12V i zegarów. Działa to tak, że samo Arduino i CAN drover są zasilane z USB, ale mają wspólną masę z zegarami i zegary, oraz dodatkowy przekaźnik - są zasilane z 12V.
Ten dodatkowy przekaźnik jest sterowany przez tranzystor, który z kolei sterowany jest przez Arduino na pinie D3. Założenie jego użycia jest takie, żeby zasilanie +30 zawsze dochodziło do mojego "shield'a", a włączenie silnika powodowało by imitowanie +15, dzięki czemu zdecydowanie zmiejszam użycie prądu gdy nie gram, a poza tym - odłączenie Arduino od USB - sprawi, że zegary nadal będą uśpione
Mój roboczy bajzel
Testy CAN shield'a własnej roboty na płytce stykowej:
I się zaczęło składanie...
Kilka godzin później wyszedł taki frankenstein:
Filmik na górze postu jest nakręcony właśnie przy użyciu tego potwora
Pogrzebałem trochę na pewnym niemieckim forum dla takich... zapaleńców (?) jak ja i znalazłem jaka wiadomość odpowiada za kontrolkę tempomatu. Przetestowałem. Nie działa.
Rozebrałem zegary. Okazuje się, że nie ma diody wlutowanej w płytkę Co najciekawsze - po teoretycznym włączeniu kontrolki CAN'em - na diodzie pojawia się zasilanie Jutro będzie zabawa lutownicą
BTW - podłączyłem zwykłe zegary od wersji bieda i co? Świeci się ABS i błąd EBD (czerwony wykrzyknik). Wychodzi na to, że zegary bieda edyszyn nie wszystko ciągną z CAN'a, a część informacji idzie analogowo...
Przy okazji - zrobiłem rozpiskę pinów licznika (co do czego):
Może komuś się przyda...
Ciekawostka: w mojej wiązce zegarów, wytarganej z anglika (2010r.) jest przewód czerwono-zielony 0,35mm na pinie 15 wtyczki, którego nie ma w żadnym schemacie, opisie itd. W tej samej wtyczce jest przewód o tym samym kolorze, ale 0,5mm i to jest zasilanie z akumulatora. Ciekawe co w tym angliku było na tym kablu
Jeśli jeszcze ktoś nie ignoruje tego tematu, to wrzucam info co udało się poczynić:
Napisałem klasę dla Arduino, która przyjmuje 8. znakowy string i konwertuje go na 6 bajtów dla zegarów + przelicza wartości 0.0 -> 999.9 na dwa bajty i wysyła je jako częstotliwość.
Przy okazji - udało mi się wprowadzić zegary w tryb "No MP3 Card" co oznacza, że jest szansa na wyświetlanie nazw utworów/innych wiadomości bez irytującej częstotliwości.
W zegarach fizycznie nie ma diody od tempomatu, ale nie jest ona w ogóle softowo obsługiwana. Dlatego przerobiłem diodę od City tak, że świeci się teraz jako tempomat. Z przycisków regulacji wysokości świateł wyprowadziłem dodatkowe dwa przewody do mojej nakładki i teraz funkcje komputera pokładowego nie przełączają się automatycznie, a dopiero po naciśnięciu dolnego przycisku. Górny mam jeszcze wolny.
Szukam informacji na temat uruchomienia BCM z Punto II w Pandzie, które powinno obsługiwać tempomat. Tylko niestety - ilość dostępnych informacji jest znikoma...
Dodatkowo - ale to już bez jakiejkolwoek nadziei - uderzyłem do Fiaciarzy z Brazylii, żeby mi zrobili dump eepromu z BCM Pandy z tempomatem.
P.s. Prawdopodobnie bez przeróbek do P2 można zamontować zewnętrzny tempomat dedykowany do Doblo/Ducato.