Samochód na biurku czyli jak testować – cz. 2
Dziś powrócimy na moment do kwestii testowania naszego urządzenia “na biurku”. Dotychczas skupialiśmy się jedynie na symulowaniu prostych czujników podłączonych bezpośrednio do zestawu wskaźników, które można było zastąpić potencjometrem lub zwykłym przełącznikiem. Teraz przyszedł czas, aby zmierzyć się z nieco bardziej złożonymi, czyli z impulsatorem skrzyni biegów oraz czujnikiem poziomu/temperatury oleju. Oba podłączone są bezpośrednio […]
Samochód na biurku czyli jak testować – cz. 3
Kontynuujemy prace nad symulatorem impulsatora skrzyni biegów oraz czujnika poziomu/temperatury oleju. Sercem naszego urządzenia jest moduł Arduino Pro Mini, zbudowany w oparciu o 8-bitowy mikrokontroler Atmega328. Potencjometr RV1 służy do zmiany symulowanej prędkości samochodu, zaś RV2 oraz RV3 modyfikują odpowiednio temperaturę oraz poziom oleju. Ich położenie odczytywane jest przez analogowe wejścia ADC0, ADC1 oraz ADC2 […]
Widgety – cz. 1
Dziś pierwsze starcie z tematem widgetów 🙂 Zastanowimy się, jakie widgety mogą nam się przydać przy tworzeniu interfejsu graficznego naszego urządzenia. Statyczny tekstPodstawowy widget, zawierający statyczny tekst o określonej czcionce, kolorze i rozmiarze Statyczny obrazOt, wyświetla bitmapę… AnimacjaKilka, cyklicznie zmieniających się obrazów Pomiar w formie tekstuPodstawowa reprezentacja wartości pomiaru Pomiar w formie paska postępu/bargrafuGraficzna reprezentacja […]
Widgety – cz. 2
Dziś miało być bardziej kolorowo… Ale czasami zadziała tzw. złośliwość rzeczy martwych i spowoduje, że pozostajemy bez sprawnego sprzętu 🙁 Tak więc mała zmiana planów: zamiast bawić się w pisanie widgetów, spróbujemy zastanowić się nad rozsądnym zaprojektowaniem ich struktury. Do dzieła! Widget jako abstrakcja Słowo “widget” samo w sobie definiuje jedynie ogólnie zbiór obiektów graficznych […]
Widgety – cz. 3
Po wczorajszych przygodach z niedziałającym sprzętem, dziś udało się go ożywić i wrócić do tematu widgetów. Tworzenie rozpocząłem od najprostszych widgetów tekstowych – stanowią one swego rodzaju “poligon testowy”, na którym staram się wypracować najlepszą architekturę oraz interfejsy. Statyczny tekst To chyba najbardziej trywialny z widgetów. Jego zadaniem jest po prostu narysowanie tekstu o określonym […]
Widgety – cz. 4
Kontynuujemy temat widgetów. Dziś przyszedł czas na dwa kolejne: menu oraz obraz/bitmapę. W porównaniu do wczorajszych widgetów tekstowych są one znacznie bardziej złożone. Dodatkowo menu jako pierwszy z widgetów musi zapewnić interakcję z użytkownikiem i reagować na polecenia manetki. Nie ma na co czekać – do dzieła! Obraz/bitmapa na pierwszy rzut oka widget ten nie […]
Widgety – cz. 5
Dziś nieco luźniejszy, wiosenny dzień – warto więc sięgnąć po jakiś pasujący doń temat 🙂 Dlatego też postanowiłem oderwać się na chwilę od tworzenia co raz to nowych widgetów i napisać kilka słów o przydatnych narzędziach jakie stworzyłem w czasie pisania podsystemu graficznego. Screenshot Dotychczas jedynym sposobem na zaprezentowanie efektów mojej pracy było zrobienie zdjęcia […]
Widgety – cz. 6
Dziś wracamy do tworzenia nowych widgetów 🙂 Status box W momencie wykrycia mniej lub bardziej poważnej usterki (poziom płynu chłodniczego poniżej minimum, zbyt niskie ciśnienie oleju, brak płynu do spryskiwaczy, zużyte klocki hamulcowe) fabryczny FIS wyświetla odpowiedni komunikat, informujący kierowcę o statusie samochodu. W przypadku braku wyświetlacza, rolę tą pełnią standardowe kontrolki. Zadaniem widgetu typu […]
Alokacja pamięci w systemach wbudowanych
Dzisiejszy temat to próba powrotu do stylu pierwszych artykułów, nieco bardziej teoretycznych i przegadanych 🙂 Tym razem chciałbym poruszyć temat szeroko pojętego zarządzania pamięcią w systemach wbudowanych. Harward czy von Neumann? Te dwie nazwy brzmią znajomo dla czytelników zaznajomionych nieco z działaniem procesorów. Architektura von Neumanna zakłada, że zarówno program jak i przetwarzane dane umieszczone […]
Okna – cz. 1
Dziś przyszedł czas na opakowanie widgetów w strukturę nadrzędną – okno. Dotychczas widgety, które tworzyliśmy żyły własnym życiem, zawieszone “gdzieś w przestrzeni”. Ot rysowaliśmy je na ekranie i tyle. Należy jednak pamiętać, iż tworzone przez nas urządzenie musi udostępniać kilkadziesiąt różnych widoków – okien. Ponieważ przy tej skali “ręczna” obsługa widgetów jest mało efektywna i […]