
Rejestrator napięć na ARM + dotykowy LCD. Diagnostyka
Urządzenie jest przyrządem diagnostycznym typu handheld. Głównym przeznaczeniem przyrządu jest diagnostyka układów mechatronicznych pojazdów samochodowych poprzez przedstawiane sygnałów elektrycznych w formie oscylogramów na wyświetlaczu graficznym. Urządzenie oparte jest o mikrokontroler ARM7 zaprogramowany w języku C, oraz kolorowy wyświetlacz LCD z panelem dotykowym. Urządzenie zostało w całości wykonane metodami "domowymi". Urządznie jest wynikiem pracy wykonywanej w trakcie studiów gdzie postanowiłem zbudować urządzenie diagnostyczne przeznaczone dla pojazdów samochodowych, które miało stać się połączeniem hobby związanym z motoryzacją i elektroniką.

<
Funkcje:
- Pomiar sygnałów elektrycznych oraz wyświetlanie oscylogramów na wyświetlaczu
- 2 kanały pomiarowe, częstotliwość próbkowania 400 kHz, rozdzielczość 10 bit
- napięcia wejściowe od 10 mV do 380V
- skala osi X od 5 s/działkę do 125 us/działkę
- zmienne sposoby wyzwalania pomiaru
- kolorowy czytelny wyświtlacz LCD z podświetlaniem i rozdzielczością 320x240
- obsługa przez panel dotykowy na wyświetlaczu
- zapis do 100 pomiarów na karcie SD oraz ich odtwarzanie/usuwanie
- działanie niezależne od komputera, zwarta obudowa, wewnętrzne źródło zasilania - handheld
- komunikacja z komputerem PC przez interfejs USB 2.0
- prosty interfejs użytkownika
- regulacja natężenia podświetlania wyświetlacza
-możliwość podłączenia dodatkowych modułów np. akcelerometr
Pracą urządzenia steruje mikrokontroler jednoukładowy LPC2148 oparty o rdzeń ARM7. Układ pracuje z częstotliwością taktowania 60 MHz. Program w całości napisany został w języku C w darmowym środowisku programistycznym.
W ramach projektu napisano cały kod dla urządzenia: procedury obsługi wyświetlacza graficznego, panelu dotykowego, karty SD oraz układów peryferyjnych mikrokontrolera. Interfejs użytkownika i inne procedury napisano od podstaw dla potrzeb urządzenia. Podczas programowania nie korzystałem z żadnych bibliotek graficznych, przykładów i itp... wszystko własna praca. Jedynie do USB wykorzystano darmowe biblioteki LPCUSB do komunikacji USB ( z którymi był wielki problem aby zaczęły jakotako działać ale sie udało).
Zastosowany wyświetlacz KWH028Q02-F05 wykonany w technologii LCD TFT o przekątnej 2,8" wyposażony jest w cyfrowy sterownik ILI9325. Wyświetlacz komunikuje się z wyświetlaczem LCD przez równoległy interfejs 8 bit. Wyświetlacz ma bardzo dobre parametry: rozdzielczość 320x240 !, 18 bitowa głębia kolorów, wysoki kontrast, jasne podświetlenie.
Panel dotykowy dzięki zaawansowanym procedurom obsługi działa precyzyjnie i umożliwia np. korzystanie z wirtualnej klawiatury ekranowej w układzie ABCDEF. Do jego obsługi wykorzystano przetwornik ADC i dosyć skomplikowane procedury aby wyeliminować błędy.
Układ napięć wejściowych - układ kondycjonowania wyposażono w scalone wzmacniacze pomiarowe Analog Devices AD8231 (NAPRAWDE DOBRE TE WZMACNIACZE). Są to układy Rail-to-Rail cechujące się niskimi szumami i cyfrowo sterowanym wzmocnieniem w zakresie od 1 do 128 V/V


Największe problemy i ich rozwiązania
- Poskładanie środowiska programistycznego dla mikrokontrolerów ARM okazało sie nie być łatwym zajęciem. Wielkie podziękowania dla forumowicza Freddie Chopin. Dla wszystkich zaczynających przygodę z ARM polecam https://www.elektroda.pl/rtvforum/topic1313509.html






Płytki zaprojektowałem w Eagle 5, mają nieco dziwny układ i są niezoptymalizowane aby urządzenie dało się rozbudować i podłączyć cokolwiek innego do wyprowadzeń mikrokontrolera.

Urządzenie zailane jest z 4 "paluszków" (niestety trzeba rozkręcać obudowe aby je wydobyć). Baterie starczają spokojnie na 7 godzin pracy (pobierany prąd 130 mA)
Obudowa to obudowa uniwersalna Gainta G503. Wycinanie zajeło pilnikiem 2 dni


Płytki wykonane metodą termotransferu (żelazko + papier kredowy 90g/m^2, bez udziwnień, spokojnie udało się wykonać ścieżki pod uC)


Cena?











Ile czasu mi to wszystko zajęło?
Na początku napisze że na studiach nie uczyłem sie o mikrokontrolerów tylko programowania w Delphi. Kiedy zacząłem interesować sie elektroniką dzięki wykładom na Politechnice postanowiłem zacząć zabawe z mikrokontrolerami w roku 2008. Uczyłem się wszystkiego od podstaw, głównie AVR i ATmega8. 11 miesięcy temu postanowiłem opanować mikrokontrolery które mają większe zastosowanie w pojazdach ich diagnostyce czyli ARM7. Urządzenie zacząłem projektować w okolicach listopada 2009 i zakończyłem w maju 2010, na projekt poświęcałem przeciętnie 20 godzin tygodniowo. Najwięcej czasu poszło na opanowanie mikrokontrolera, wyświetlacza i pisanie kodu, szczególnie interfejsu. 2 lata temu nie nie miałem w planach takich wynalazków kiedy moim osiągnięciem był "migacz diody led" więc zachęcam forumowiczów do pracy:!: Oczywiście nie twierdze że urządzenie idealne i bezbłędne...
Proszę o pytania, pewnie wiele rzeczy nie napisałem. Postaram sie na wszystkie odpowiedzieć.
Jeśli chodzi o kod to nie udostępniam go tutaj w całości z kilku powodów a) jest go zbyt dużo, b) jest nie poukładny z bałaganem i bez opisu, c) przykre doświadczenia z przeszłości. Ale z chęcią wyśle fragmenty osobą zainteresowanym oraz pomogę przy budowie podobnego urządzenia, kontakt mejlowy i forum petros@op.pl .
Wyniki Pomiarowe i zrzuty ekranu



pomiary napięcia sinus 50 Hz, czujnika magnetoinukcyjnego w samochodzie i spadek napięcia na zaciskach akumulatora w trakcie rozruchu silnika

ekran pomiarowy

wirtualna klawiaturka ekranowa
Obecnie zastanawiam sie co dalej z projektem? Chce go rozbudować, jest specjalne złącze gdzie chce podłączyć akcelerometr od pomiaru przyspiesznia pojazdu. Obecnie jako absolwent szukam pracy związanej z elektroniką/programowaniem/mikrokontrolery/samochody na terenie Śląska, ewentualnie jakieś współpracy z tego tematu.
inne moje projekty na www.petros.project.prv.pl
Pozdrawiam. Pytać/oceniać/bluzgać/pisać śmiało
