Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Symulacja deski samochodu

Bieli 28 Jan 2014 14:56 12279 15
  • Symulacja deski samochodu

    Korzystając z odrobiny wolnego czasu postanowiłem stworzyć GUI/Layout/Interface, lub jak kto woli międzymordzie, deski samochodu. Głównym elementem jest wyświetlacz DMT80480C070_02WT 800x480 7" z modułem sterującym DGUS. Ponieważ jest to tylko demo to dane sterujące są wysyłane z prostego programu napisanego w Visual Basic poprzez konwerter USB<>UART (HDL662).
    Do stworzenia takiego projektu wykorzystane są trzy elementy środowiska DGUS:
    - Varable Ikon - odpowiedzialny za wyświetlanie poszczególnych ikon i obrotościomierz
    - Icon Rotation - odpowiedzialny za wskazówki
    - Incremental Adjustment - Tutaj odpowiada za przycisk na ikonie zapięcia pasów. Wysyła dane na UART i jednocześnie zmienia wyświetlaną ikonę

    Program napisany w VB wysyła tylko kolejne ramki z danymi jakie mają być wpisane do poszczególnych zmiennych. Np dana odpowiedzialna za wskazówkę prędkościomierza przyjmuje wartości od 0 do 130 i jest zapisana pod adresem 0x0011. Więc aby ustawić wskazówkę na zadanej wartości wysyłamy:
    5AA5 05 82 0011 xxxx
    5AA5 - nagłówek ramki
    05 - wysłane będzie 5 bajtów
    82 - komenda - zapis do pamięci zmiennych
    0011 - adres zmiennej
    xxxx - liczba jaka ma być zapisana do zmiennej



    Obraz odświeżany jest co 80ms, jednak dane odbierane są na bieżąco. W tym projekcie prędkość transmisji to 115200.

    Zdecydowanie najwięcej czasu, jak zwykle, zajęło zrobienie grafiki. Najbardziej złożony "obiekt" to obrotościomierz który składa się z 60 obrazków prezentujących kolejne poziomy wskazania. Jeszcze trochę pracy nad tłem i ikonami.
    Projekcik wygląda następujaco:
    Symulacja deski samochodu

    A efekt przedstawia się następująco:


    Dorabiając do tego moduł OBD2 można by fajnie odwzorowywać wszelkie parametry pracy silnika.

    Oczywiście jeśli ktoś będzie zainteresowany to umieszczę pliki źródłowe zarówno dla SDK jak i VB.

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    Bieli
    Level 12  
    Offline 
    Has specialization in: maszyny cnc/teletransmisyja i telezabezpieczenia
    Bieli wrote 81 posts with rating 94, helped 0 times. Live in city Bydgoszcz. Been with us since 2003 year.
  • #2
    Karaczan
    Level 41  
    Projekt ciekawy, ale trzeba by zbudować interface OBD2 pracujący w odpowiednim standardzie dla programu, albo przebudować program.
    W dobie tanich tabletów i interfaceów pokroju ELM z BT nie wiem czy jest sens budowy tego.
    Programów na Androida robiących to samo jest od groma, również bezpłatnych.
    Szczególnie że cena tego wyświetlacza przynajmniej tego który jest na allegro trochę zwala z nóg, za te prawie 500zł to masz dobry tablet.
    A najtańszy tablet który sobie z tym poradzi kosztuje z 200, do tego ELM z BT ok 60 ;)
    Do tego w takim np TorquePro masz nie tylko dashboardy, do wyboru do koloru, ale możesz i fuchy robić jako profesjonalny kasowacz Check Engine ;)
  • #3
    Dj.Kisiel
    Level 11  
    Czy mógłbyś coś jaśniej o podłączeniu tabletu do samochodu ?
    Bardzo mnie zainteresowało to co mówisz ;)
  • #4
    Karaczan
    Level 41  
    Tablet z BT na Androidzie, lub smartfon, interface ELM 327 bluetooth, odpowiedni program z Google Play, np ogólnie polecany płatny TorquePro i to wszystko ;)
    Oczywiście mówimy tu o prostej diagnozie i odczytów parametrów silnika przez OBD2, protokół ma swoje ograniczenia i diagnozuje tylko silnik, i to dość ogólnie, i tylko w pojazdach wspierających OBD2.
    Kalibracji, adaptacji, kodowań, opcji specyficznych dla danego producenta brak.
    Ale małe co nie co jest w stanie powiedzieć, jak i zgasić check, jeśli to błąd chwilowy, lub właśnie naprawiony.
  • #5
    Tommy82
    Level 41  
    Projekt fajny i ciekawy ale od modułu OBD2 to ja bym zaczął.
    Nadało by to temu głębszy sens. Na razie to tylko demonstrator możliwości a nie gotowy użyteczny produkt. Wartość dydaktyczna niezaprzeczalna. Użyteczność póki co niska.
  • #6
    glapsson
    Electronics specialist
    Program PSMSCAN juz dawno dla ELM ma taka funkcje ..... tylko nie za bardzo wiem czemu to ma służyć ... to takie wodotryski zabawki.
    Sam ELM jest dość słaby ..... w dosłownym tego słowa znaczeniu.
    Koszty poniesione na ELM i tablet i czas są bez sensu do wartości użytkowych.
    Może projekt sam w sobie jako projekt w kwestii poznania komunikacji z ECU jest OK.

    Bardziej zainteresowałbym się projektem który pozwoliłby na odzwierciedlenie w druga stronę.
    Grając w grę samochodowa fajnie by było mieć możliwość podłączenia do PC oryginalnych zegarów samochodowych --- fajny bajer oglądałem kiedyś na jakimś forum lub YouTube
  • #7
    rekinisko
    Level 22  
    Czyli jak dobrze rozumiem żeby obracać wskazówką trzeba zrobić 60 obrazków z kolejnymi ustawieniami wskazówki?
  • #8
    Bieli
    Level 12  
    rekinisko - Nie. Do wyświetlania wskazówki zastosowany jest obiekt Icon Rotation. W którym umieszcza się wzór wskazówki w którym zaznacza się oś obrotu.
    Symulacja deski samochodu
    Następnie deklaruje się zakres wartości jakie ma przyjmować obrót wskazówki (w tym przypadku 0-130), oraz zakres kątów w jakim ma się poruszać wskazówka (jednostką jest pół stopnia więc zakres 0-720 a w tym przypadku 60-650).
    Symulacja deski samochodu
    Następnie zmieniamy już tylko wartość zmiennej która odpowiada nam za obrót wskazówki. Całe przeliczanie położenia wskazówki oraz grafiki jest wykonywane przez sterownik wyświetlacza. Sterownik zastępuje też jednolite tło na przeźroczystość.
    Wspomniana wcześniej konieczność wykonania 60 grafik dotyczyła jedynie "obrotościomierza". Chciałem uzyskać efekt zmiany koloru wraz ze wzrostem wartości dlatego tak to zostało zrealizowane. Choć wymaga to trochę pracy na etapie projektu później do minimum ogranicza obciążenie procesora sterującego.

    Projekt ten, o ile można go tak nazwać, ma wyłącznie walor demonstracyjny. Wybrałem odwzorowanie deski rozdzielczej samochodu, ponieważ każdy się z tym spotkał. Przewagą tego wyświetlacza w stosunku do tabletu jest czas startu, który właściwie jest natychmiastowy. Ale zgadzam się tablet jest tańszy i ma niemal nieograniczone możliwości. Jednak jeśli mamy do stworzenia np sterownik przemysłowy to dostępne tu funkcje są w zupełności wystarczające a obsługę uciągnie każdy uP ze sprzętowym lub softwarowym UARTem. Jutro postaram się wrzucić projekt płytki 4 wejścia, 4 wyjścia binarne na jednym z najtańszych PICów (4-5zł).
  • #9
    rekinisko
    Level 22  
    Dzięki za wyjaśnienia bo tego mi brakowało, wyświetlacz już mam :)
  • #11
    Bieli
    Level 12  
    Bardzo fajnie to zrobili. Tylko wykorzystali tutaj typowe GPU (Mali), a do tego procesor też pewnie ma co robić podając dane do przeliczania. Także nie bardzo widzę zastosowanie czegoś takiego w świecie typowych 8 bitowych uP. Pomijając nakład pracy jaki każdy z nas musiałby włożyć aby uzyskać taki efekt. W moim przypadku jeden dzień dłubania w GIMPie i jakaś godzinka w C na procek i w VB.
  • #12
    deus.ex.machina
    Level 32  
    Grafika wektorowa ma wiele zalet, niekoniecznie tez trzeba mieć akcelerator - gry wektorowe były na 8 bitowcach a zegary i prędkości były wtedy 10 - 40 razy mniejsze niż obecnie. jak rozwiążesz problem np niekwadratowego piksela?
    Poza tym w dzisiejszych czasach antyaliasing czy http://en.wikipedia.org/wiki/Subpixel_rendering to chyba konieczność.

    http://www.youtube.com/watch?v=vPZ5ByIxiFM
  • #13
    rekinisko
    Level 22  
    Bieli czy jeszcze możesz mi łopatologicznie wyjaśnić jak sprawić by w polu "ICON File" cokolwiek się pojawiło? Mam ikonę wskazówki w postaci pliku BMP ...
  • #14
    Bieli
    Level 12  
    Plik BMP/JPG... musisz przerobić na plik ICO. w katalogu z SDK powinieneś mieć DW_ICON.exe. Potem zapisujesz plik ICO w folderze DWIN_SET pod nazwa xx.ico, xx tekst.ico, xx - jest liczbą z przedziału 23-127, (ja zaczynam numerację od 30). Wtedy pojawi ci się twój plik na liście wyboru.
    Przy większej ilości plików ICO należy pamiętać, że są one zapisywane po 256kB więc jeśli twój plik miałby rozmiar np 280kB i miał nazwę 30.ico to następny musi mieć 32.ico bo zajmujesz dwa adresy w pamięci LCD.
  • #15
    rekinisko
    Level 22  
    No git, coś tam działa. A jest jakaś kalibracja panelu dotykowego? Średnio mi się to zgadza z obrazkiem.
  • #16
    Bieli
    Level 12  
    W SDK w System Configuration możesz odznaczyć "Enable touch configuration" wtedy po załadowaniu konfiguracji uruchomi się procedura kalibrowania TP.