Sto dni w kolorze

Interfejsy CAN i OBD

Dziś ponownie będziemy zajmować się przygotowaniem niezbędnego sprzętu. Tym razem jednak będzie to już część stanowiska testowego, a pierwszy fragment urządzenia. Zapewnienie komunikacji przez magistralę CAN oraz złącze diagnostyczne OBD jest jedną z najistotniejszych kwestii – dlatego tak wcześnie podejmujemy ten temat. Magistrala CAN Wybrany mikrokontroler STM32F407 posiada wbudowany kontroler magistrali CAN. Brakuje więc nam […]

Karta SD

Jedną z funkcjonalności uwzględnionych w założeniach projektu była obsługa kart SD/microSD. Najczęściej w systemach wbudowanych stosuje się montowane na stałe pamięci Flash, w postaci osobnego układu scalonego. To rozwiązanie ma jednak wiele wad, zwłaszcza w przypadku kiedy tworzymy prototyp. Zmiana czegokolwiek w kości pamięci Flash wymagałaby użycia programatora. Kartę SD można natomiast bardzo szybko wyciągnąć […]

Świat w kolorze – LCD cz 1.

Dziś nareszcie zajmiemy się najistotniejszym elementem układanki – kolorowym wyświetlaczem LCD 🙂 Na początek przyjrzyjmy się możliwościom naszego STM32F407 w zakresie sterowania taką matrycą. Metody sterowania wyświetlaczem Istnieje cała gama przeróżnych, dedykowanych interfejsów dla wyświetlaczy LCD. Najogólniej można je podzielić na dwie grupy: szeregowe oraz równoległe. Pierwsze z nich do przesyłu obrazu wykorzystują zaledwie kilka […]

Świat w kolorze – LCD cz.2

Biblioteka graficzna Istotnym elementem systemu posiadającego GUI jest biblioteka graficzna. Nie sposób bowiem wymagać od każdej aplikacji, każdego komponentu aby samodzielnie “sięgał” do wyświetlacza i mozolnie rysował na nim piksel po pikselu. Absolutnie podstawową funkcjonalność stanowią tzw. prymitywy graficzne – punkty, linie czy okręgi. Kolejnym krokiem są figury składające się z linii: prostokąty, trójkąty – […]

Świat w kolorze – LCD cz.3

Dzisiejszy wpis będzie nieco inny niż dotychczasowe. Zamiast rozważań, przedstawię po prostu krótką relację z tego, co udało mi się dziś zrobić. Tego typu wpisy będą pojawiać się na naszym blogu coraz częściej, w miarę postępów projektu. Co u mnie? Kontynuowałem przede wszystkim pracę nad biblioteką graficzną – skupiając się zwłaszcza nad rysowaniem grafiki z […]

Diagnostyka OBD – cz.1

Zdecydowana większość samochodów, które interesują nas w ramach projektu, posiada interfejs diagnostyczny w standardzie OBD. Umożliwia on połączenie z każdym istotnym sterownikiem wchodzącym w skład instalacji elektrycznej, odczyt podstawowych wartości pomiarowych, zarejestrowanych kodów usterek, itp. Komunikacja odbywa się za pomocą protokołu KWP1281 lub KWP2000. Są one charakterystyczne dla pojazdów grupy VAG. Nie będę w tym […]

Diagnostyka OBD – cz.2

Rozważania na temat zastosowania gotowej obsługi protokołu diagnostycznego sięgają początków projektu HypeFIS. W Sieci dostępnych jest co najmniej kilkanaście różnych implementacji protokołu KWP1281/2000 – mniej lub bardziej zaawansowanych. Na wstępie odrzuciłem wszystkie związane z platformą Arduino, które ze względu na specyficzną strukturę API tego środowiska są zupełnie nieprzydatne w przyjętym przez nas sposobie strukturyzacji kodu. […]

Diagnostyka OBD – cz.3

Dziś udało się uruchomić połączenie diagnostyczne z zestawem wskaźników. Oczywiście wszystko zostało podłączone do przygotowanego wcześniej stanowiska testowego, z wykorzystaniem odpowiedniego interfejsu. Aby móc śledzić stan połączenia “na żywo”, przygotowałem proste okno debugowe – korzysta ono oczywiście naszej z biblioteki graficznej. Osoby zaznajomione z wcześniejszym projektem HypeFIS zapewne zauważą pewne podobieństwa 🙂 Połączenie zostało nawiązane […]

Interfejs CAN – cz. 1

Zgodnie z zapowiedziami, dziś zajmiemy się uruchomieniem interfejsu CAN. Oczywiście na początek musimy połączyć magistralę sterownika silnika z zestawem wskaźników za pomocą skrętki. Wykorzystamy jedno ze złącz DB-9 zainstalowanych w naszym stanowisku testowym. W kontroler magistrali CAN w naszym procesorze STM32F407 został skonfigurowany w trybie “listen only” – może on jedynie odbierać wiadomości nadawane przez […]

Rysować czy być rysowanym? Czyli kilka słów o widgetach.

Każdy, kto miał styczność z tworzeniem oprogramowania zna zapewne zasadę DRY (ang. Don’t Repeat Yourself). W zabawny sposób opisuję ona pewną regułę, mówiącą, iż powtarzające się fragmenty kodu, należy wyodrębniać jako funkcje. Innymi słowy – pożądane jest tworzenie aplikacji z pewnych elementarnych “klocków”. Tak jak biblioteka graficzna stanowi odzwierciedlenie tej reguły w świecie grafiki, tak […]