Systemy wbudowane 2025

Jest to przedmiot składający się z dwóch form dydaktycznych: wykładu oraz laboratoriów

Zasady zaliczenia są następujące:
  • obowiązkowe zaliczenie 1. części laboratorium ("Autka 1"), plus ew. projekt laboratoryjny ("Autka 2")
  • kolokwium (termin TBA)
  • oddany projekt (omówienie na wykładzie)
Z w/w form są wystawiane punkty, odpowiednio:
  • L (laboratorium - 2.0 do 5.5)
  • K (kolokwium - 0 - 5.0, przy braku podejścia przyjmuję 2.0)
  • P (projekt - 2.0 do 5.5)
Ocena ostateczna wyliczna jest jako średnia ważona: aL + bK + cP; (a,b,c - ustalone w terminie późniejszym); wynik zaokrąglany jest w górę.

Wykład

Wykład odbywa się w środy o godz. 9.15 w sali 29/D1. Slajdy do wykładów:

  • 0. Wprowadzenie o systemach wbudowanych, omówienie projektu
  • 1. Wymagania i specyfikacja systemów wbudowanych

W ramach wykładu studenci realizują zadanie projektowe. Kolejne listy będą publikowane poniżej. W terminie zapadalności listy prowadzący wybierze losowo 5 grup do sprawdzenia.

  • Lista 1. (do 22 marca) -- analiza, opis słowny, podstawowe wymagania
Uwaga. Gotowe listy proszę przesyłać we wskazanym terminie na mój adres e-mail. W temacie proszę podać nazwę systemu, poprzedzając ją przedrostkiem "[Projekt]".

Laboratoria

Prowadzący:

  • Marcin Słowik - ŚR 7-9 (D1/317.2)
  • Przemysław Błaśkiewicz - ŚR 13-15, 15-17 (D1/317.2), CZW 7-9, 9-11 (D1/317.2)
Ogólne zasady zaliczenia laboratoriów. Poniżej, dla każdego tygodnia (lub dwóch) będą pojawiać się zadania/listy. Wszystkie te listy będą zawierać zestaw poleceń i kod do rozbudowania wraz z instrukcjami lub wprowadzeniem teoretycznym. List będzie 6-8, ich zaliczenie skutkuje zdobyciem punktów 4 z laboratoriów. Osoby chcące zdobyć większą liczbę punktów, po zaliczeniu list podstawowych muszą samodzielnie rozbudować autko (na podstawie listy dodatkowej, która zostanie opublikowana w maju), lub zrobić niezależny od niego projekt - po konsultacji z prowadzącym. Szczególne zasady dotyczące zaliczenia list ustala każdy prowadzący laboratoria.

  1. Obejrzyj dokładnie płytkę Arduino UNO oraz dostępne Ci inne podzespoły pojazdu. Wykorzystaj opis płytki w sieci, aby zidentyfikować: główny mikrokontroler, piny we/wy (jakie mają funkcje?), diodę LED (ile ich jest? do czego służą?), zasilanie, reset.
  2. Uruchom środowisko programistyczne Arduino (możesz uruchomić na swoim laptopie). Połącz płytkę arduino przewodem USB z komputerem. Upewnij się, że w menu Narzędzia/Płytka oraz Narzędzia/Port wybrane są, odpowiednio, "Arduino/Genuino Uno" oraz port w stylu /dev/ttyACM0. Możesz sprawdzić, czy wszystko działa za pomocą Narzędzia/Pobierz informacje o płytce.
  3. Uruchom przykład Przykłady/Basics/Blink i zapoznaj się z kodem oraz samouczkiem. Zajrzyj też do odnośników z rozdziału "Learn more".
  4. Skompiluj kod (znaczek "ptaszka" z lewej strony belki menu). Sprawdź, jakie informacje o skompilowanym kodzie otrzymasz. Przeanalizuj je. Następnie wgraj (przycisk obok) kod na płytkę przyglądając się temu, co się z nią w tym czasie dzieje (wgrywanie możesz powtórzyć, żeby się upewnić). Sprawdź, czy Twoje domysły na temat kodu i faktyczne jego działanie są zbieżne. Jeśli nie - rozwiąż konflikt :)
  5. Pobierz ten kod i otwórz w środowisku. Ponownie przeanalizuj kod, postaw tezę co do tego, co on robi. Skompiluj i wgraj na płytkę. Wybierz Narzędzia/Monitor portu szeregowego (Ctrl+Shift+M), ustaw odpowiedni baudrate i zweryfikuj swoje domysły co do programu.
  6. Korzystając z dwóch przedstawionych programów, napisz swój, który:
    1. pobierze literę przez port szeregowy,
    2. wymruga ją za pomocą diody w kodzie Morse'a.
  1. Pojawiło się zasilanie bateryjne, podłączone do silników. Mogą one obracać kołami, w związku z tym, aby nie spowodować niekontrolowanego ruszenia pojazdu stojącego na biurku, przed włączeniem zasilania należy ustawić pojazd na podstawie z gąbki! Dostępny jest wyłącznik główny, odcinający zasilanie bateryjne. Jeśli Arduino podłączone jest przez kabel USB, to nadal będzie zasilane (ale tylko płytka).
Ta lista poświęcona jest sterowaniu silnikami. Pojazd wyposażony jest w cztery silniki połączone parami tak, że każda para napędza dwa koła po każdej stronie (a zatem koła obracają się jak w czołgu -- koła po jednej stronie mogą obracać się tylko w tą samą stronę). W jaki sposób sterować silnikiem? Oczywiście przez podanie napięcia na jego dwa bieguny (są też inne silniki, posiadające więcej wejść, ale o tych innym razem). Chcielibyśmy, aby to Arduino sterowało silnikiem, podobnie jak w poprzednim tygodniu sterowało diodą (włącz/wyłącz). Jednakże nie można podłączyć silnika bezpośrednio do któregoś z pinów Arduino: mikrokontroler nie jest w stanie dostarczyć wystarczająco dużo prądu, by poruszyć silnikiem.. Dlatego też w autku zamontowany jest moduł z układem L298, który będzie pośredniczył pomiędzy Arduino a silnikiem i odpowiednio włączał/wyłączał zasilanie pobierane bezpośrednio z baterii przez stabilizator napięcia, utrzymujący stałe napięcie 6V (dwa akumulatory połączone szeregowo dają maksymalnie ok. 8.4V -- to nieco za dużo dla silnika).
  1. Układ N298. Pobierz specyfikację układu. Przeanalizuj schemat na pierwszej stronie. Potraktuj obecne tam tranzystory NPN jako elektronicznie włączniki: jeśli na bazie (B) jest „HIGH”, to tranzystor przewodzi między emiterem (E) a kolektorem (C). Przeanalizuj, co się stanie, jeśli na „In1”, „In2”, „EnA” pojawią się różne kombinacje stanów LOW i HIGH. (W tym schemacie zasilanie z baterii podłączane jest do „+Vs” (na środku u góry) i do wspólnej „ziemi” -- symbol krótkiej, grubej, poziomej kreski np. na dole schematu). Silnik podłączany jest do wyjść „OUT1” i „OUT2”. Spróbuj wyobrazić sobie, jak za pomocą tego układu można sterować kierunkiem obracania się kół.
  2. Programowanie ruchu. Na autku znajdziesz taśmę 6 przewodów, które „pod pokładem” są połączone jak na powyższej fotografii. Uwaga. Autka w wersji 2.0 mogą mieć odwrócone kolory taśmy! Korzystając z dotychczas osiągniętych wyników, spróbuj podłączyć te przewody do pinów 2-13 na Arduino tak, by móc sterować jazdą w przód i do tyłu silnikami po prawej i lewej stronie. (Podpowiedź: przewody biały i żółty [wejścia „EnA” i „EnB” układu N298] podłącz do pinów zasilania „+5V” w okolicach baterii. Po podłączeniu pozostałych przewodów możesz na nich ustawiać stany „HIGH” i „LOW” tak, jak w przypadku świecenia diodą LED.)
  3. Sterowanie prędkością. Odłącz teraz przewody żółty i biały od zasilania „+5V” i podłącz je do pinów Arduino oznaczonych falką (~), są to: 3, 5, 6, 9, 10, 11. Są to piny, na których można wykonać operację analogWrite(), co spowoduje, że średnie napięcie na tym pinie można zmieniać pomiędzy 0V („LOW”) a 5V („HIGH”). [Więcej o tej technice, zwanej PWM - Pulse Coded Modulation na wykładzie.] Przetestuj, jak kręcą się koła dla różnych wartości zapisywanych do pinów En1 i En2 (zapisanie za niskich wartości może sprawić, że koła nie będą się poruszać).
  4. Rozbudowa biblioteki. Pobierz archiwum, rozpakuj i otwórz w środowisku Arduino. Przeanalizuj kod i uruchom go ustawiwszy uprzednio autko na podstawce! Dopisz do klasy Wheels metodę goForward(int cm) oraz goBack(int cm), której wywołanie spowoduje, że autko przemieści się o liczbę centymetrów podaną jako parametr.


Lista części składowych autka. Linki prowadzą do przykładów w jednym ze sklepów internetowych. (pokaż)

Lista dodatkowych komponentów, które można użyć do zbudowania swojego własnego projektu (pokaż)
(linki prowadzą do strony jednego ze sklepów, znajdują się tam podstawowe opisy modułów)
Możliwe jest użycie własnych komponentów. Jeśli będzie potrzebne lutowanie, proszę o kontakt.

Materiały pomocnicze w sieci i na papierze