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

Komputer samochodowy - dalsze prace

Myrek1 17 Sty 2007 17:22 20542 83
  • #1 17 Sty 2007 17:22
    Myrek1
    Poziom 23  

    Witam.
    Chce nauczyć się mikrokontrolerów. Umiem coś robić na PICach czy AVRach. Ale to coś w rodzaju zapalania diod, obsługi taimerów itp., same podstawy. Chce nauczyć się AVRów (PICe czy ARMy raczej odpadają), a że jestem ambitny ;), obrazu rzucam się na głęboką wodę :) Postawiłem sobie za zadanie zrobienie komputera do samochodu.
    Zadania komputera:
    - obsługa LCD graficznego 192x64 pix
    - obsługa 2 termometrów
    - pokazywanie aktualnych obrotów i prędkości
    - zużycia paliwa
    - kontroli wewnętrznego oświetlenia (coś w rodzaju neonów)
    - wyświetlanie na LCD wszystkich wskazań, łącznie z wykresem momentu i mocy, na którym w czasie rzeczywistym pokazywane są aktualne obroty na krzywej

    Na razie tyle, w przyszłości jak nabiorę doświadczenia chce uzyskać:
    - obsługa RS-232 i pokazywanie/zapisywanie danych w czasie rzeczywistym na programie w komputerze (program napisany w C)
    - dodanie menu graficznego / animowanego do urządzenia
    - może jakieś animacje.

    Wiem, że to dużo i złożony projekt, ale pomału chciałbym go zrealizować. Jeśli chodzi o hardware (układy wejściowe i wyjściowe) to nie ma problemu, mam kilka rozwiązań i pomysłów. Jednak na samym początku muszę wybrać procek, który będzie tym starował. Na razie nie mam takiej wiedzy, żeby dobrze go wybrać. Jak już wybiorę powoli będę robił sobie co tam chce.
    Myślałem o Atmedze 128 + jakiś eeprom. Czy uważacie, że ten procek pociągnie to co chce zrobić? Szczególnie chodzi mi o animacje na LCD. Chciałbym kiedyś uzyskać podobne do takich jakie są w radyjkach samochodowych.
    Poza prockiem, jak myślicie, w czym to napisać? Bascom, C czy coś innego?

    Wiem, że może to za trudne jak na początek, ale ja mam tak, że najlepiej uczę się czegoś, co zmusza mnie do bardzo dużego wysiłku :)

    Dzięki za wszelkie rady.

    0 29
  • Szkolenia elektronika Udemy
  • #2 17 Sty 2007 18:07
    mirekk36
    Poziom 42  

    Witam,

    wybrałeś procka z najwyższej półki - pewnie, że sprosta twoim zadaniom i to z nadmiarem ;) ... zależy oczywiście jeszcze w czym programujesz i jak programujesz. Jednakże tak czy inaczej napewno się nauczysz - szczególnie mając tak jasno postawiony cel - wtedy jest o wiele łatwiej się uczyć niż tylko przy testowaniu - więc popieram absolutnie takie ambitne stawianie sobie celów ;) ....

    myślę, że nie będziesz nawet potrzebował żadnego dodatkowego EEPROMA - nie wystarczy ci na twoje pomysły ten, który jest w procku? ;) ale oczywiście nic nie stoi na przeszkodzie aby go użyć albo nawet zwykłych epromów czy innych pamięci w przypadku akurat tego , zresztą fajnego, procka

    uważam, że główny nacisk powinienes położyć najpierw na dobre zaprojektowanie do tego Hardware ;) .... nawet zakładając, że czegoś na dzisiaj jeszcze nie umiesz oprogramować. A później spokojnie i po kolei - pisać oprogramowanie i opanowywać użytkowanie programowe kolejnych modułów procka - to czysta i największa - przynajmniej dla mnie przyjemność ;)

    pozdr

    0
  • #3 17 Sty 2007 18:22
    megao
    Poziom 23  

    Ciekawe czy ten procek pociągnie tyle różnych funkcji i do tego z animacjami na wyświetlaczu graficznym?
    Jeżeli będziesz pisał to wszystko np. w Bascomie.

    Warto byłoby się zastanowić czy nie lepiej pisać w asemblerze.
    Program będzie się składał raczej z funkcji sterujących, arytmetyki będzie w tym niewiele, a więc w asemblerze spokojnie to się da zrobić.
    Na pewno będzie działać szybciej. Warto się nad tym zastanowić.

    0
  • Szkolenia elektronika Udemy
  • #4 17 Sty 2007 18:52
    Myrek1
    Poziom 23  

    Dzięki za odpowiedzi.
    Czyli widze, że niedroga Atmega128 da rade. EEPROM chciałem dać do możliwej w przyszłości rejestracji danych z jazdy takich jak prędkość. Ale to kiedyś tam zrobie, bo pozostaje w tym problem próbkowania a co za tym idzie dużej ilosci danych. No ale miejsce na płytce zawsze można zrobić pod opcjonalną pamięć.
    W moim aucie do prędkościomierza czy obrotomierza idą sygnały elektryczne, więc nie powinno być problemu z układami wejściowymi. Muszę tylko zbadać przebieg na tych elementach.

    Jeśli chodzi o języki programowania, to fakt z tym Bascomem, dlatego bardziej kierowałem się ku C. Z asm nie jestem najmocniejszy, ale fakt faktem, że najlepiej w nim byłoby napisać (jak zawsze).
    Muszę to jeszcze przemyśleć.

    Czyli fajnie, będę powoli projektował sprzęcik i kompletował części. Jak uda mi się wszystko jakoś poskładać to przedstawię to w DIY na elece, ciekaw jestem czy dam rade do wakacji :)

    Dzięki.

    0
  • #5 17 Sty 2007 20:27
    viki
    Poziom 16  

    Przy tylu bajerach zapomnij o asmie. Najlepiej c ze wstawkami. Czarno widzę pomiar zużycia paliwa. Odnośnie animacji to 192x64/8 = 1536 bajtów na klatke (full screen), czyli 36k bajtów na 1 sekundę animacji.(bez komresji) To tyle na razie.

    0
  • #6 17 Sty 2007 21:01
    mirekk36
    Poziom 42  

    .... jescze więcej bajerków i to na mniejszym procku w asemblerze można byłoby zrobić ;) takie jest moje zdanie, trzeba tylko dobrze umieć posługiwać się tym językiem. Co nie oznacza, że w C nie można tego zrobić albo i na upartego w Bascomie przy takiej ilości pamięci ;)

    też polecam jeśli masz wybierać i asemblera i/lub C bardziej do tego celu

    pozdr

    0
  • #7 17 Sty 2007 22:08
    Myrek1
    Poziom 23  

    Pomiar paliwa chce zrobić w trochę niekonwencjonalny sposób. Mianowicie mam LPG. Leje do pełna i po tym odpalam ręcznie funkcję w komputerku. Os sobie tam zlicza wszystko, analizuje itp. Po skończeniu całej butli znów uruchamiam pewną opcję kończącą zliczanie. Komp wtedy wypluwa dane. Można też nie wyjeżdżać butli do końca. W tedy w menu można by wpisać ilość gazu, która została zatankowana. Wtedy musiała by być klawiatura numeryczna. Ale atmega ma tyle portów i linii, że powniio dać się to zrobić.

    Program napisze w C z wstawkami w asm. Jednak czysty asm to najwyższa szkoła jazdy, na którą jest za wcześnie. Jak by mi się udało to mógłbym wtedy napisać program od nowa w asm. Wszystko zależy ile będę miał czasu na to.

    Z animacjami to taki bajer, więc nie wiem co z tego będzie. Na razie mam ważniejsze "priorytety" :) W radyjkach dali rade to zrobić, to ja też mogę ;)

    0
  • #8 17 Sty 2007 22:37
    mirekk36
    Poziom 42  

    ... pewnie, a dlaczego patrzeć na animacje jak na jakiegoś potwora??? ;) poza tym nie trzeba się nastawiać na to, że wszystkie operacje w tym te animacje mają być wykonywane w jednym czasie ;) trzeba sobie dobrze zaprojektować algorytm i po kolei sukcesywnie go realizować .... a animacje mógłbym zaliczyć akurat do prostszych procedur, to z innymi możemy spędzić więcej czasu ;) .... a animacja? to tylko dobrze zoptymalizowana procedurka również do zrobienia w C, która przerzuca kawałki pamięci ram, eeprom czy flash do pamięci ekranu. Więc spokojnie zajmiejsz się tym jesli chcesz na końcu i powoli to zrobisz - a praca przy takich procedurkach jest o tyle przyjemna , że bardzo szybko widzi się efekty pracy a co gorsze im więcej się tego robi totym więcej kolejnych pomysłów na bajery przychodzi do głowy ;) ..... jak zwykle powtórzę - im bardziej ambitny i jasno określony cel do wykonania tym szybciej można się nauczyć programowania i z tym stwierdzeniem chyba każdy się zgodzi ;)

    pozdr

    0
  • #9 17 Sty 2007 23:45
    mgradzki
    Poziom 16  

    Procek fajny, tyle, że słyszałem opinie, że AVRy są dosyć czułe na zakłócenia zewnętrzne (w tym idące po zasilaniu), a takich w samochodzie nie brakuje (z układu zapłonu, czy choćby z alternatora)
    Należałoby dokładnie przemyśleć temat porządnego filtrowania zasilania - jakie i gdzie zastosować dławiki diody Zenera, kondensatory, itp.
    Na forum jest sporo informacji na ten temat tyle, że trzeba się trochę naszukać.

    Jeśli chodzi o łączenie tego po RS232 z komputerem to nie wiem, czy nie byłoby zasadne zastosowanie jakiejś optoizolacji na wypadek gdyby okazało się, że masa samochodu nie jest jednocześnie masą w komputerze.

    0
  • #10 17 Sty 2007 23:53
    mirekk36
    Poziom 42  

    co do takiego generalizowania, że AVRy są dosyć czułe na zakłócenia zewn to się nie zgadzam .... AVRy są tak samo wrażliwe jak każde inne układy i procki... trzeba tylko w każdym przypadku i tu się zgadzam ;) ... umieć pomyśleć o chociażby typowych zabezbpieczeniach, które często wystarczają.

    pozdr

    0
  • #11 18 Sty 2007 00:46
    megao
    Poziom 23  

    mgradzki napisał:
    AVRy są dosyć czułe na zakłócenia zewnętrzne (w tym idące po zasilaniu), a takich w samochodzie nie brakuje (z układu zapłonu, czy choćby z alternatora)

    Bez przesady, zakłócenia są, to sprawa bezsprzeczna. Jednak co jak co, ale AVR-y i PIC-e można znaleźć w urządzeniach komercyjnych w motoryzacji i jakoś się one sprawdzają.

    mgradzki napisał:
    Jeśli chodzi o łączenie tego po RS232 z komputerem to nie wiem, czy nie byłoby zasadne zastosowanie jakiejś optoizolacji na wypadek gdyby okazało się, że masa samochodu nie jest jednocześnie masą w komputerze.

    Jak to jesz możliwe? To chyba oczywiste, że masa samochodu i PC-ta musi być połączona jeśli chcemy cokolwiek przesyłać. Można oczywiście zastosować optoizolację.

    0
  • #12 18 Sty 2007 00:54
    mirekk36
    Poziom 42  

    ... no właśnie - optoizolację można zawsze zastosować tylko po co zawsze? .... w przypadku autka, układ będzie zasilany z akumulatorka, i tak jak napisał kolega wyżej, to chyba normalne założenie, że masa musi być wręcz połaczona z masą PCta .... (w tym przypadku nie powinno dochodzić do zbyt groźnych sytuacji aby koniecznie stosować optoizolację - tak mi się wydaje)

    ... problemy o jakie chodziło koledze mgradzki jak już? to pojawiają się przy tego typu podłączeniach urządzeń bez optoizolacji gdy są zasilane w szczególności z 220V ale z np z różnych faz czy różnych obwodów przy niezbyt dobrze wykonanej sieci elektrycznej a szczególnie gdy łączymy - no może nie RS232 ale np RS485 dwa różne budynki ze sobą. W takich przypadkach jeśli wystąpią różnice potencjałów przy źle uziemionych zasilaczach w PCtach to może dojść do wyrównania tychże potencjałów po kablach sygnałowych co najczęściej prowadzi do bum lub swądu plastiku ;)

    pozdrawiam

    0
  • #13 03 Mar 2007 19:47
    Myrek1
    Poziom 23  

    Witam.
    Mam pytanko dotyczące wyświetlaczy 192x64. Jak jest z ich szybkością i podtrzymaniem? Chodzi mi tu o sterowniki KS0108B (HD61202/3). Chce kupi coś takiego: http://allegro.pl/item170611668_nowe_lcd_192x64_czarne_zn_biale_tlo_led_fstn_.html ale czytałem, że zawartość niektórych LCD trzeba podtrzymywać i dodatkowo ich cale zapełnienie może trochę potrwać (wtedy lipa z animacjami).

    0
  • #14 03 Mar 2007 20:43
    redart
    Poziom 23  

    Myrek1 napisał:
    Witam.
    Mam pytanko dotyczące wyświetlaczy 192x64. Jak jest z ich szybkością i podtrzymaniem? Chodzi mi tu o sterowniki KS0108B (HD61202/3).


    Też wątpiłem w ich prędkość, ale po korekcie czasu oczekiwania przy sterowaniu ENA (zatrzaskiwanie danych) mogę z czystym sumieniem polecić KS'a. Niestety zaczynając pisać procedury do obsługi podobnego LCD (128x64) wrzuciłem bezmyślnie DELAY... to tak ok. 1ms! Teraz mam 50us i to jeszcze nie jest ostatnie słowo :D.

    Jeśli masz wtrysk w autku (wielopunktowy) to pomiar zużycia LPG (o benzynie nie piszę, bo metodę pomiaru chyba znasz?) można zrealizować na dwa sposoby (zasilanie gazem w fazie lotnej):
    1. Dalej mierzysz zużycie benzynki i dodajesz to tej wartości określony (doświadczalnie) procent zmierzonej wartości.
    2. Jeśli masz zamontowany czujnik podciśnienia w kolektorze dolotowym, to jest super. Mierząc podciśnienie obliczasz na jego podstawie zużycie LPG w jednostce czasu/chwilowe. Należy doświadczalnie (zależnie od autka) dobrać algorytm. Jeśli na przewodzie gazowym masz aktuator (silnik krokowy) to sprawa się nieco komplikuje, bo zmiana ilości zassanego gazu będzie zależna od podciśnienia jak i od pozycji tego zaworu.
    Pzdr.

    0
  • #15 04 Mar 2007 10:54
    pmmisiek
    Poziom 15  

    Witam.
    Masz zamiar robić jakąś obudowę do tego komputerka, czy lcd będzie wmontowany gdzieś w jakąś lukę w desce? Klawiaturki do komunikacji z systemem robi się dość łatwo, ale wydaje mi się że ciężko je estetycznie zabudować, więc myślę że dobrym pomysłem będzie wykorzystanie odbiornika podczerwieni i komunikacja z komputerkiem za pomocą pilota nadającego w określonym standardzie. Można też zastosować panel dotykowy montowany na LCD.

    Pozdrawiam

    0
  • #16 05 Mar 2007 15:09
    Myrek1
    Poziom 23  

    Na razie nie myślę o obudowie, jestem po sesji więc kompletuje sprzęt i zabieram się do roboty. Zresztą chyba zmienie auto, więc zmienią mi się układy wejściowe z obrotomierza i prędkościomierza. Na razie zrobię tak, żeby chodziło dobrze z jakimś przetwornikiem AC. Jak to będzie dobrze chodziło to dopasowanie sygnałów wejściowych z obrotomierza i prędkościomierza nie powinno sprawić problemów.

    @redart, o co chodzi z tą korektą przy ENA? Ile ten wyświetlacz potrafi wypełnić ekranów w ciągu 1s? Mi marzy się obraz 25 klatek, czyli szybkość musi być na poziomie 37KB/s

    A co powiecie o kontrolerze Toshiba T6963: http://allegro.pl/item170708552_wyswietlacz_graficzny_dmf5005nyly_led_t6963_new_.html

    Myślę, że to będzie najlepszy LCD, ale znowu nie wiem nic o tym sterowniku. Do ks jest trochę po polsku w necie oraz jest kurs w EP. Czy sterowanie T6963 jest podobne do ks..?
    Interesują mnie też jakieś rozwiązania sterowania Toshiba pod C dla AVRów. Dla ks jest ładnie to opisane tu: http://radzio.dxp.pl/ks0108/
    z aplikacji producenta ciężko mi coś wyciągnąć, dla początkującego to nie takie łatwe...

    0
  • #17 05 Mar 2007 20:57
    redart
    Poziom 23  

    Z tym ENA sprawa rozbija się o czas stanu niskiego tej szyny przy wpisie danych. U mnie wygląda to tak:
    RW ustawione na zapis
    ENA = H (stan wysoki)
    1. wybieram CS'a (połówkę wyświetlacza)
    2. ustawiam rejestr RS (dane/sterowanie)
    3. odczytuję dane z tablicy i wystawiam na port (D0-D7)
    4. zatwierdzam wpis zmianą linii ENA :
    - ENA = L
    - oczekiwanie (aktualnie 50us)
    - ENA = H

    Niestety LCD nie łapie danych jeśli nie wprowadzę minimalnego opóźnienia pomiędzy zmianą poziomu na ENA. Jutro sprawdzę, jaki jest minimalny czas niezbędny do zatrzaśnięcia danych tym sygnałem. Sądzę, że da się szybciej. Spróbóję też napisać procedurkę do kilkukrotnego odświeżania całego wyświetlacza i sprawdzę ile razy da się to zrobić w ciągu 1 sec. Bascom to nie najszybsze środowisko... więc pewnie pisząc w assemblerze dało by się to jeszcze przyspieszyć.
    Pzdr.

    0
  • #18 06 Mar 2007 10:41
    redart
    Poziom 23  

    Sprawdziłem swój wyświetlacz (128x64) i wyszło mi, że jest w stanie bez problemu wyświetlić (zapełnić) i wyczyścić cały ekran 25 razy w czasie 0.8sec. Zapełnianie odbywa się poprzez wpisywanie do LCD danych pobieranych z tablic stałych, zaś czyszczenie to również zapis do wyświetlacz, ale stałej (zero) w celu wygaszenia pixeli. Teoretycznie więc zapełniam cały LCD 50 razy w ciągu niecałej sekundy. To powinno Ci wystarczyć. I to pomimo faktu, że LCD 192x64 zawiera 3 KSy (u mnie dwa) więc zajmie to trochę więcej czasu. Zresztą to nie kino, więc 25 klatek/sec nie jest konieczne. Przy 20 też będzie płynny obraz.
    Pzdr.

    PS
    Czas oczekiwania pomiędzy zmianą stanu linii ENA z L na H to aktualnie 5us.

    0
  • #19 06 Mar 2007 12:46
    Myrek1
    Poziom 23  

    Wielkie dzięki @redart za informacje. Jasne, że 20 klatek też wystarczy, to i tak ekstra rezultat.
    Zaglądnę do Styczniowego i Lutowego wydania EP, gdzie dokładnie jest opisana obsługa KS w C i chyba na niego się zdecyduję. Choć większy LCD (link podałem wyżej) z potencjalnie lepszym T6963 kusi. Ale czuję, że będę miał problem z jego wysterowaniem.
    Pomyśle nad tym - to zawsze jakieś nowe wyzwanie :D
    Jeszcze raz dzięki.

    P.S. Czy ktoś wie czym różni się T6963 od T6963C?

    0
  • #21 08 Mar 2007 19:47
    MAREK74
    Poziom 20  

    cześć
    na odstawie samego podciśnienia w kolektorze dolotowym nie obliczysz spalania , zobaczymy jaki będziesz miał samochód

    0
  • #22 08 Mar 2007 20:53
    Myrek1
    Poziom 23  

    Spokojnie, spalanie i inne dodatkowe moduły będę dołączał stopniowo. Właśnie jestem na końcowym etapie kompletowania sprzętu. Wyświetlacz wezmę na T6963C i nauczę się jego obsługi. Wtedy zadbam o moduły dodatkowe.

    Thx.

    0
  • #23 08 Mar 2007 21:36
    the_one
    Poziom 12  

    podlacze sie do tematu. jak nalezy podlczyc procesor w samochodzie zeby uniknac resetowania sie procka? narazie zaplanowalem stabilizator i kondensatory 1000uF 100nf i moze jeszcze jakis jak znajde ;) no i oczywiscie reset podciagniety do plusa

    0
  • #24 08 Mar 2007 23:36
    Myrek1
    Poziom 23  

    @the_one, myślisz, że wystarczą kondensatory 1000uF?
    Ten temat też będę przerabiał.
    Wydaje mi się, że jak zastosuje się stabilizatory LM7805 oraz kilka kondziołków 1000uF to będzie ok, bo przy rozruchu silnika, gdzie występują największe spadki napięcia na akumulatorze, napięcie chyba nie spada poniżej 8-9V, a tyle stabilizatory potrzebują do pracy.
    Podobne tematy już były, trzeba będzie się rozejrzeć za rozwiązaniami.

    0
  • #25 09 Mar 2007 20:00
    MAREK74
    Poziom 20  

    ja mam 2200uF i nie mam problemu układem ,a chodzi już kupe czasu na M16

    Komputer samochodowy - dalsze prace

    0
  • #26 09 Mar 2007 21:11
    Dar.El
    Poziom 40  

    Witam
    Jeśli chcesz zapisywać w eepromie dane przebytej trasy itp. to zastosuj pamięć zewnętrzną FRAM, tylko w ten sposób rozwiążesz problem zapisu ponad 100k razy. Ja dodałbym ekran dotykowy, można już kupić, wtedy nie potrzeba klawiszy bo pojawiają się na ekranie wg potrzeb.

    0
  • #27 09 Mar 2007 21:26
    ksz
    Poziom 15  

    Dar.El napisał:
    Witam
    Ja dodałbym ekran dotykowy, można już kupić, wtedy nie potrzeba klawiszy bo pojawiają się na ekranie wg potrzeb.


    Tak z ciekawości:
    1. I da się tym sterować megą?
    2. Gdzie i za ile można kupić?

    0
  • #28 09 Mar 2007 22:55
    Dar.El
    Poziom 40  

    Ekran dotykowy zrobiłem na ATmega8535 a jak sobie przypomnę w którym sklepie można kupić, to napiszę.

    0
  • #29 10 Mar 2007 08:08
    seba_x
    Poziom 31  

    viki napisał:
    Czarno widzę pomiar zużycia paliwa.


    pomiar zużycia paliwa można wykonać na : PRZ-1800/L , jest w tme

    0
  • #30 10 Mar 2007 11:28
    Skubik
    Poziom 15  

    seba_x napisał:

    pomiar zużycia paliwa można wykonać na : PRZ-1800/L , jest w tme


    Zakres pomiarowy tego czujnika jest : od 0,06 l do 0,6 l/min. Przy małych prędkościach bedzie niedokładny.
    0,06 l/min to 3,6l/h zakładając ze samochód spala 7l na 100km to przy prędkości poniżej 50km/h wynik pomiaru będzie błędny. Oczywiście to teoretyczne rozważania.

    0