Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2014-06-13 22:19:53

  milyges - inż.

milyges
inż.
Skąd: Gorlice/Kraków
Zarejestrowany: 2006-04-09
Serwis

CarPI czyli Raspberry Pi w Renault Megane

Witam.
Chciałbym przedstawić projekt, który jakiś czas temu zakończyłem i użytkuję codziennie. Jest to zamiennik standardowego wyświetlacza radia Update List występującego w samochodach marki Renault, rozszerzający funkcjonalność całego zestawu o funkcje takie jak:
- nawigacja GPS,
- zestaw głośnomówiący bluetooth,
- możliwość odtwarzania muzyki z dysku USB lub przez bluetooth,
- dodatkowe informacje odczytywane z OBD II.
Dodatkowym założeniem było wykorzystanie oryginalnego radia oraz instalacji, umożliwiające w każdej chwili powrót do oryginalnego wyświetlacza.

[b]Budowa[/b]
Układ oparty został o minikomputer Raspberry Pi, króry podłączany jest do głównej płyty urządzenia przez złącze GPIO oraz USB. Aby zminimalizować pobierany na postoju prąd, RPi nie jest cały czas włączone. Jego zasilaniem steruje mikroprocesor AVR, który w momencie wykrycia włączenia radia lub zapłonu włącza główne zasilanie 5V w układzie. Poza tym jego zadaniem jest:
- obsługa klawiatury matrycowej pilota przy kierownicy,
- odczyt stanów zapłonu, radia,
- sterowanie zasilaniem wyświetlacza.
RPi oraz AVR komunikują się za pomocą magistrali I2C. Po wyłączeniu zapłonu, AVR przesyła o tym informację do aplikacji działającej na RPi, która po godzinie na wyłączonym zapłonie zamyka system i wysyła do AVRa polecenie wyłączenia zasilania i przejścia w stan uśpienia.

[b]Komunikacja z radiem[/b]
Komunikacja z radiem samochodowym odbywa się trzema torami:
1. Szyna CAN - po tej szynie radio wysyła informację co ma pojawić się na wyświetlaczu a oryginalny wyświetlacz wysyła informacje o naciśniętych klawiszach na pilocie pod kierownicą. Niestety protokół komunikacji nie był nigdzie opisany, ale przy pomocy zbudowanego analizatora CAN oraz dużej ilości cierpliwości udało mi się go rozpracować, na tyle że moja aplikacja emuluje w pełni wszystkie funkcje które obsługiwane są przez standardowy wyświetlacz. Po więcej informacji zapraszam do kodu źródłowego:
https://github.com/milyges/CarPI/blob/master/src/rpi-app/displayemulator.h
https://github.com/milyges/CarPI/blob/master/src/rpi-app/displayemulator.cpp
2. UART - służy do emulacji zmieniarki płyt CD, którą moja aplikacja udaje. Dzięki temu przetwarzaniem cyfrowo-analogowym muzyki odtwarzanej z dysku USB zajmuje się radio (zmieniarka wysyła do radia sygnał audio za pomocą S/PDIF) a nie Raspberry PI, co wpływa na poprawę jakości dźwięku w stosunku do karty dźwiękowej zintegrowanej w RPi. Kod emulatora zmieniarki bazuje na dokumentacji dostępnej w internecie i znajduje się:
https://github.com/milyges/CarPI/blob/master/src/rpi-app/changeremulator.h
https://github.com/milyges/CarPI/blob/master/src/rpi-app/changeremulator.cpp
3. AUX - do analogowego wejścia radia podpięte zostało wyjście audio modułu bluetooth.

[b]Oprogramowanie[/b]
Raspberry Pi pracuje pod kontrolą systemu operacyjnego Raspian (bazującego na Debianie). Zainstalowany jest serwer X.Org, manager okien OpenBox i kilka innych, niezbędnych do prawidłowego działania programów. Główna aplikacja, sterująca wszystkich napisana została w języku C++, przy wykorzystaniu biblioteki Qt. Cały kod opublikowany został na GitHubie (link niżej).

[b]Nawigacja GPS[/b]
Do nawigacji GPS został wykorzystany program Navit. Jego kod źródłowy został delikatnie zmodyfikowany aby usunąć część funkcjonalności (np. podświetlanie możliwych znaków do wpisania w nazwie miejscowości), które nie działały zbyt dobrze. Zmodyfikowany został również plik konfiguracyjny, usunięte zostały wszystkie niepotrzebne warstwy oraz punkty POI aby mapy były jak najbardziej czytelne.

[b]Obługa OBDII[/b]
Główna aplikacja na RPi, komunikuje się po USB z adapterem OBD II, opartym o popularny układ ELM327. W chwili obecnej służy to do pokazania dodatkowych wskaźników:
- temperatury powietrza zasysanego
- ciśnienia doładowania
- ciśnienia paliwa w listwie Common Rail
- temperatury cieczy chłodzącej
- obliczonego obciążenia silnika
- napięcia w instalacji elektrycznej
Jest to tak na prawdę taki bajer, który nie był projektowany od początku a pojawił się pod wpływem chwilowego impulsu ;)

[b]Obudowa wyświetlacza, tzw. daszek[/b]
Wykonany został na bazie oryginalnego: wycięty został większy otwór, przygotowana ramka na nowy wyświetlacz. Następnie ramka została wklejona w otwór a wolna przestrzeń wypełniona matą oraz żywicą. Dalej wszystko zostało zaszpachlowane do równa, wyczyszczone papierem wodnym i pomalowane podkładem i farbą. Pierwszy raz robiłem coś takiego, było bardzo dużo poprawek, ale wydaje mi się że wyszło przyzwoicie.

[b]Obsługa[/b]
Całość dodatkowych funkcji obsługuje się wykorzystując pilot pod kierownicą, co pozwala na obsługę w trakcie jazdy bez odrywania rąk od kierownicy. Przycisk na dole pilota, służący normalnie do zmiany płyty w zmieniarce, wykorzystany został do wejścia w tryb menu. W tym trybie możemy albo zmienić ekran, albo wejść w menu nawigacji.
Po menu nawigacji poruszamy się wykorzystując przyciski: Vol+/Vol- jako góra dół, SRC+/SRC- jako prawo/lewo, przycisk Mute jako enter a przycisk Load (ten na dole) jako Escape. Na początku wprowadzanie nazw miejscowości i ulic wydaje się toporne, ale po kilku razach już wpisuje się w miarę szybko i sprawnie.

[b]Kosztorys i czas trwania[/b]
Projekt od analizy komunikatów CAN z radia do finalnej wersji powstawał około roku (głównie wieczorami po pracy). Dużą część elektroniki miałem, więc ciężko mi wycenić:
- Raspberry Pi: około 130zł
- Wyświetlacz: 100zł
- Moduł bluetooth: 80zł
- Moduł GPS: 50zł
- Pozostała elektronika: myślę że do 50zł
Razem około: 410zł

[b]Zdjęcia[/b]
[url=http://imgur.com/VUNZK2G][img]http://i.imgur.com/VUNZK2Gl.jpg[/img][/url] [url=http://imgur.com/ywrvALD][img]http://i.imgur.com/ywrvALDl.jpg[/img][/url] [url=http://imgur.com/d97bTO3][img]http://i.imgur.com/d97bTO3l.jpg[/img][/url]  [url=http://imgur.com/88FiPg5][img]http://i.imgur.com/88FiPg5l.jpg[/img][/url] [url=http://imgur.com/5twVOTc][img]http://i.imgur.com/5twVOTcl.jpg[/img][/url] [url=http://imgur.com/OAXIMA8][img]http://i.imgur.com/OAXIMA8l.jpg[/img][/url]
Co do ostatniego zdjęcia, wiem że w środku jest plątanina przewodów. Tak się dzieje jak projekt zmienia się bo okazuje się że coś jednak trzeba zrobić inaczej, jak to w prototypach bywa.

[b]Filmy[/b]
https://www.youtube.com/watch?v=GfTva5EosAM
https://www.youtube.com/watch?v=pR0zv12ZQ60
https://www.youtube.com/watch?v=wPurTqf-2mQ

[b]Źródła, schemat, itp[/b]
Wszystko zostało opublikowane w repozytorium na stronie github.com pod adresem https://github.com/milyges/CarPI

Mam nadzieję że komuś się to na coś przyda. Na wszelkie pytania postaram się odpowiedzieć.
Pozdrawiam


[url=http://mhroczny.net][b]strona domowa[/b][/url] || [url=http://dug.net.pl][b]polski portal debiana[/b][/url]

Offline

 

#2  2014-06-13 23:39:40

  diabolic - Użytkownik

diabolic
Użytkownik
Skąd: okolice Leżajska
Zarejestrowany: 2007-10-08

Re: CarPI czyli Raspberry Pi w Renault Megane

To tak na szybko. Projekt bardzo fajny ;). Gdzie dostałeś taki wyświetlacz w takiej cenie? I czym wycinałeś ramkę? Jaki moduł gps zastosowałeś?

Ostatnio edytowany przez diabolic (2014-06-13 23:46:10)


I am the one who chose my path

Offline

 

#3  2014-06-14 10:52:27

  milyges - inż.

milyges
inż.
Skąd: Gorlice/Kraków
Zarejestrowany: 2006-04-09
Serwis

Re: CarPI czyli Raspberry Pi w Renault Megane

Wyświetlacz - eBay.
Ramka - z pudełka po płycie CD (tym grubym, jeden wymiar pasował idealnie), tapeciak, potem duużo pilnika i szpachli, wuglądało to tak:
[url=http://imgur.com/Mb07nyl][img]http://i.imgur.com/Mb07nyll.jpg[/img][/url]
[url=http://imgur.com/pebzeoT][img]http://i.imgur.com/pebzeoTl.jpg[/img][/url]
[url=http://imgur.com/sq4PfId][img]http://i.imgur.com/sq4PfIdl.jpg[/img][/url]

GPS - GPS02 z Seguro: https://www.seguro.pl/sklep/?zobacz=5108&producent= przy czym kupowany był ze 4 lata temu ;)


[url=http://mhroczny.net][b]strona domowa[/b][/url] || [url=http://dug.net.pl][b]polski portal debiana[/b][/url]

Offline

 

#4  2014-06-14 16:05:33

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: CarPI czyli Raspberry Pi w Renault Megane

Zapomniałeś najpierw to opatentować.

Konkurencja zareagowała [url=http://www.benchmark.pl/aktualnosci/intel-motoryzacja-przyszlosc-strategia-integracja.html]błyskawicznie[/url].
xD


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2014-06-16 22:16:06

  Red_Fedora - Użytkownik

Red_Fedora
Użytkownik
Skąd: Piękna kraina nad Sierpienic
Zarejestrowany: 2013-06-03

Re: CarPI czyli Raspberry Pi w Renault Megane

Jak ciężkie może być przystosowanie całego tego majdanu do innego pojazdu? Projekt całkiem fajny, choć UI trochę średnio estetyczne.


[img]http://static1.wikia.nocookie.net/__cb20130812121419/nonsensopedia/images/2/2b/Pinkie_pie.gif[/img]
Po co myśleć racjonalnie? Najważniejsze jest to by było zabawnie!

Offline

 

#6  2014-06-16 23:35:36

  milyges - inż.

milyges
inż.
Skąd: Gorlice/Kraków
Zarejestrowany: 2006-04-09
Serwis

Re: CarPI czyli Raspberry Pi w Renault Megane

Bardzo ciężkie, trzeba by przepisać:
- emulator wyświetlacza
- emulator zmieniarki
- interfejs pilota pod kierownicą

czyli główne elementy aplikacji.


[url=http://mhroczny.net][b]strona domowa[/b][/url] || [url=http://dug.net.pl][b]polski portal debiana[/b][/url]

Offline

 

#7  2014-06-24 08:33:18

  qluk - Pan inż. Cyc

qluk
Pan inż. Cyc
Skąd: Katowice
Zarejestrowany: 2006-05-22

Re: CarPI czyli Raspberry Pi w Renault Megane

Poproszę coś takiego do Foki w rozmiarze 2DIN bo tak to mam radio bez USB :(

Offline

 

#8  2014-06-27 08:13:08

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: CarPI czyli Raspberry Pi w Renault Megane

@milyges:

Czy ten wyświetlacz zakupiłeś jako okazyjną używkę, czy też to da się gdzieś dostać nówkę w ilościach większych? Pytam bo na alledrogo coś znaleźć nie potrafię takiego urządzenia, a przydało by się. Nie wiem czy trzeba szukać jakiejś specjalnej frazy?

Offline

 

#9  2015-06-26 02:28:00

  wikingagressor - Użytkownik

wikingagressor
Użytkownik
Skąd: Józefów k.Błonia, mazowieck
Zarejestrowany: 2015-02-03

Re: CarPI czyli Raspberry Pi w Renault Megane

Siemak, myslalem zeby zrobic cos podobnego zeby zastapic wogole cale radio w moim kangurze. Mam kilka pytan:
1. Co jest odpowiedzialne za dostarczenie dzwieku do glosnikow?
2. Czy mozna wykorzystac Pi do wyrzucenia 4 kanalow dzwieku przez GPIO?


Peace, Love and Debian for the World!!!

Offline

 

#10  2015-06-27 19:52:32

  skullman - Użytkownik

skullman
Użytkownik
Zarejestrowany: 2010-04-08

Re: CarPI czyli Raspberry Pi w Renault Megane

A można pod RPI podpiąć jakiś samochodowy (albo uniwersalny) czujnik deszczu? Bo takie RPI byłoby świetne do zamykania inspektu jak zaczyna padać...

Offline

 

#11  2015-06-28 08:40:50

  diabolic - Użytkownik

diabolic
Użytkownik
Skąd: okolice Leżajska
Zarejestrowany: 2007-10-08

Re: CarPI czyli Raspberry Pi w Renault Megane

Można. [url]https://www.raspberrypi.org/school-weather-station-project/[/url] [url]http://lifehacker.com/build-your-own-raspberry-pi-powered-weather-station-1697061082[/url]


I am the one who chose my path

Offline

 

#12  2015-06-28 09:50:31

  milyges - inż.

milyges
inż.
Skąd: Gorlice/Kraków
Zarejestrowany: 2006-04-09
Serwis

Re: CarPI czyli Raspberry Pi w Renault Megane

[quote=wikingagressor]Mam kilka pytan:
1. Co jest odpowiedzialne za dostarczenie dzwieku do glosnikow?[/quote]
Tak jak napisałem oryginalne radio Renault
[quote=wikingagressor]2. Czy mozna wykorzystac Pi do wyrzucenia 4 kanalow dzwieku przez GPIO?[/quote]
Tak po prostu? - nie.


[url=http://mhroczny.net][b]strona domowa[/b][/url] || [url=http://dug.net.pl][b]polski portal debiana[/b][/url]

Offline

 

#13  2015-06-29 05:19:34

  wikingagressor - Użytkownik

wikingagressor
Użytkownik
Skąd: Józefów k.Błonia, mazowieck
Zarejestrowany: 2015-02-03

Re: CarPI czyli Raspberry Pi w Renault Megane

Dzieki za odpowiedz. Moj pomysl polega raczej na zastapieniu oryginalnego radia (lub najwiekszej czesci komponentow) przez Pi co zwiekszy nam funkcjonalnosc. Myslalem zeby Pi sluzylo jako selektor wejscia i obrobka cyfrowa dzwieku, a wyjscie wypusczalo jako 4 lub wiecej kanalow dzwieku do wzmacniacza typu A, AB lub D.


Peace, Love and Debian for the World!!!

Offline

 

#14  2015-06-30 02:23:56

  rychu - elektryk dyżurny

rychu
elektryk dyżurny
Skąd: gdańsk
Zarejestrowany: 2004-12-28

Re: CarPI czyli Raspberry Pi w Renault Megane

zajebisty projekt, +1 do szacunu :)


linux regd. user #248790

Offline

 

#15  2015-07-23 13:50:36

  mAg - Członek DUG

mAg
Członek DUG
Skąd: Mrągowo
Zarejestrowany: 2004-12-23
Serwis

Re: CarPI czyli Raspberry Pi w Renault Megane

Bardzo fajne - gratuluję.


.:: Linux connecting people :D ::.  Linux Registered User #358097 Debian GNU/Linux

[img]https://linuxcounter.net/cert/358097.png[/img]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.014 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00014 SET CHARSET latin2
0.00007 SET NAMES latin2
0.00128 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.138.200.66' WHERE u.id=1
0.00083 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.138.200.66', 1714161766)
0.00068 SELECT * FROM punbb_online WHERE logged<1714161466
0.00098 SELECT topic_id FROM punbb_posts WHERE id=289129
0.00309 SELECT id FROM punbb_posts WHERE topic_id=25972 ORDER BY posted
0.00078 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=25972 AND t.moved_to IS NULL
0.00010 SELECT search_for, replace_with FROM punbb_censoring
0.00130 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=25972 ORDER BY p.id LIMIT 0,25
0.00098 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=25972
Total query time: 0.01023 s