Programowanie systemów wbudowanych
Informacje ogólne
Kod przedmiotu: | 0800-PROSWBUD |
Kod Erasmus / ISCED: |
(brak danych)
/
(0613) Tworzenie i analiza oprogramowania i aplikacji
|
Nazwa przedmiotu: | Programowanie systemów wbudowanych |
Jednostka: | Wydział Fizyki, Astronomii i Informatyki Stosowanej |
Grupy: |
Informatyka Stosowana s2. Przedmioty do wyboru specjalistyczne (wszystkie) |
Punkty ECTS i inne: |
(brak)
|
Język prowadzenia: | polski |
Wymagania wstępne: | W celu przyswojenia treści zajęć wymagane jest podstawowa wiedza dotycząca mikroprocesorów i techniki mikroprocesorowej, podstaw programowania (ANSI C). |
Rodzaj przedmiotu: | przedmiot obowiązkowy |
Całkowity nakład pracy studenta: | Godziny realizowane z udziałem nauczycieli ( 70 godz.): - udział w wykładach - 15 - udział w laboratoriach – 45 - konsultacje z nauczycielem akademickim- 10 Czas poświęcony na pracę indywidualną studenta ( 80 godz.): - przygotowanie do wykładu - 10 - przygotowanie do laboratoriów – 30 - czytanie literatury - 10 - przygotowanie do egzaminu - 10 - czas poświęcony na projekt zaliczeniowy laboratorium - 20 Razem: 150 h (5 ECTS) |
Efekty uczenia się - wiedza: | W1: Ma wiedzę z programowania systemów wbudowanych (zna metody, techniki, narzędzia, biblioteki i bazę elementową do rozwiązywania zadań inżynierskich). Zna specyfikę programowania w języku C dla mikrokontrolerów. Posiada rozszerzoną wiedzę w zakresie zaawansowanej konstrukcji i analizy algorytmów, metod optymalizacji dla systemów wbudowanych – K_W02, K_W04, K_W05 W2: Zna podstawowe klasy sprzętu stosowanego w systemach wbudowanych - K_W09 W3: Umie programować systemy wbudowane z uwzględnieniem pozatechnicznych uwarunkowań działalności inżynierskiej (aspekty społeczne, ekonomiczne i prawne) – K_W08 |
Efekty uczenia się - umiejętności: | U1: Wykorzystuje dokumentację systemów wbudowanych do uzyskania wiedzy niezbędnej do samodzielnej realizacji postawionych zadań (używając języka ojczystego oraz języka angielskiego) – K_U01, K_U02 U2: Programuje układy wbudowane z wykorzystaniem specjalistycznego oprogramowania. Umie wykorzystać opracowany algorytm działania systemu wbudowanego i przetwarzać je na kod programu wykonawczego, który umie optymalizować - K_U04, K_U09, K_U10, U3: Potrafi sporządzić dokumentację opracowanego systemu wbudowanego - K_U06, U4: Potrafi przy realizacji projektów systemów wbudowanych: dostrzegać aspekty systemowe i pozatechniczne, dokonać wstępnej analizy ekonomicznej, umie komunikować się na tematy specjalistyczne ze zróżnicowanymi kręgami odbiorców, współdziałać z innymi osobami w ramach prac zespołowych, umie samodzielnie planować i realizować własne uczenie się przez całe życie i ukierunkowywać innych w tym zakresie - K_U11, K_U08, K_U05. |
Efekty uczenia się - kompetencje społeczne: | K1: Pozsiada umiejętność rozwiązywania problemów, których rozwiązanie prowadzi do realizacji postawionego zadania. Zna ograniczenia własnej wiedzy i umiejętności z zakresu wiedzy dotyczącej układów programowania – wie jak ją rozszerzyć (np. zasięgnąć opinii ekspertów w przypadku trudności z samodzielnym rozwiązaniem problemu programowania systemów wbudowanych.) - K_K01. K2: Posiada kompetencje w zakresie twórczego udziału w projektach zespołowych (w tym roli lidera) oraz ma świadomość odpowiedzialności za wspólnie realizowane zadania dotyczących zagadnień programowania systemów wbudowanych - K_K02, K_K03. |
Metody dydaktyczne eksponujące: | - pokaz |
Metody dydaktyczne podające: | - opis |
Metody dydaktyczne poszukujące: | - laboratoryjna |
Skrócony opis: |
Wykład i pracownia poświęcone systemom wbudowanym i systemom czasu rzeczywistego przeznaczonych dla systemów wbudowanych. |
Pełny opis: |
Celem zajęć jest zaznajomienie uczestników z systemami wbudowanymi (ang. embedded systems). Omówione zostaną standardowe peryferia wykorzystywane w systemach wbudowanych (mikrokontrolerach) oraz zastosowania systemu czasu rzeczywistego na przykładzie FreeRTOS. Ćwiczenia będą realizowane z wykorzystaniem zestawów NUCLEO board firm ST. Studenci podczas zajęć zaznajomią się z zagadnieniami sterowania ruchem (ang. motion control), obsługi wyświetlacza LCD TFT, obsługą czujników środowiskowych (czujnik temperatury, ciśnienia, wilgotności względnej), czujników ruchu (akcelerometry i żyroskopy), komunikacją Bluetooth, NFC, Wi-Fi oraz sterowania innymi urządzeniami przemysłowymi zgodnie z koncepcją Przemysłu 4.0. Plan wykładu (15 godzin): 1) Wprowadzenie do systemów wbudowanych, przykłady zastosowań systemów wbudowanych, klasyfikacja. 2) Rodziny mikrokontrolerów. Omówienie rodziny mikroprocesorów ARM – Cortex M. 3) Organizacja oprogramowania. 4) Omówienie zestawu STM NUCLEO-F767ZI wraz z obsługą API standardowych peryferii mikrokontrolera (GPIO, UART, ADC, I2C, SPI). 5) Omówienie zasobów płytek elektronicznych NUCLEO firmy STM oraz : a) SparkFun Wi-Fi Shield - ESP8266 (sterownik interfejsu Wi-Fi), b) X-NUCLEO-IKS01A3 (czujniki ruchu i parametrów otoczenia), c) X-NUCLEO-IDB05A1(sterownik interfejsu Bluetooth), d) X-NUCLEO-IHM02A1(sterownik silnika skokowego), e) X-NUCLEO-NFC06A1(sterownik interfejsu NFC), f) X-NUCLEO-PLC01A1(sterownik cyfrowych wejść i wyjść). 6) Systemy czasu rzeczywistego (RTOS) w systemach wbudowanych: wymagania, model budowy systemu, stany, zadania, synchronizacja i komunikacja zadań, przegląd systemów. - System FreeRTOS: a) Wprowadzenie do systemu FreeRTOS b) „Zadanie” (Task): - Tworzenie „Zadania” - Priorytet „Zadań” - „Stany” (State) „Zadań” - usuwanie „Zadań” - „Dyspozytor” (Scheduler) „Zadań” c) Pojęcie „Kolejki” (Queue): - Tworzenie „Kolejki” - Praktyczne wykorzystanie „Kolejki” d) „Obsługa przerwań” (Interrupt Management): - Pojęcie „Semafora” (Semaphor) - „Zliczanie semaforów” (CountingSemaphores) - „Kolejkowanie” wraz z „układem zarządzania przerwań”(Interrupt Service Routine) - „Przerwania zagnieżdżone” (InterruptNesting) e) Zarządzanie zasobami mikrokontrolera w systemie FreeRTOS: - „Sekcje krytyczne” (Critical Sections) programu - Pojęcie „Wzajemnego Wykluczania” (Mutexes) f) Zarządzanie pamięcią w systemie FreeRTOS: - „Stos programowy” (Stack) w systemie FreeRTOS g) Częste problemy w programach z wykorzystaniem systemu FreeRTOS h) Debugowanie programów z wykorzystaniem systemu FreeRTOS 7) Omówienie zagadnień związanych z obsługą zewnętrznej pamięci SDRAM oraz wyświetlacza LCD TFT. 8) Omówienie zasobów płytki ewaluacyjnej firmy MASTERS z wyświetlaczem 4.3”TFT+RTP Powertip. Laboratorium (45 godzin): 1) Środowisko programistyczne: a) Konfiguracja zestawu deweloperskiego STM NUCLEO-F767ZI. b) Prezentacja obsługi aplikacji STM32CubeMX firmy STM. c) Prezentacja obsługi środowiska programistycznego STM32CubeIDE firmy STM. d) Omówienie pozostałych narzędzi programistycznych firmy STM. 2) Przykłady obsługi podstawowych peryferii mikrokontrolera STM32F7 z wykorzystaniem API HAL: a) GPIO (obsługa przycisku monostabilnego, diody LED), b) ADC (pomiar temperatury układu STM32), c) UART (Virtual COM), 3) Przykłady obsługi elementów elektronicznych z płytki SparkFun Wi-Fi Shield - ESP8266 - sterownik interfejsu Wi-Fi z wykorzystaniem magistrali UART: a) ESP8266 (UART) - moduł komunikacyjny Wi-Fi. 4) Przykłady obsługi elementów elektronicznych z płytki NUCLEO X-NUCLEO-IKS01A3 – czujniki ruchu i parametrów otoczenia z wykorzystaniem magistrali I2C: a) LSM6DSO MEMS 3D - akcelerometr (±2/±4/±8/±16 g) i 3D żyroskop (±125/±245/±500/±1000/±2000 dps), b) LIS2MDL MEMS - wykrywacz metali (±50 gauss), c) LPS22HH MEMS – czujnik ciśnienia, 260-1260 hPa, d) HTS221 - czujnik wilgotności względnej i temperatury. 5) Przykłady obsługi elementów elektronicznych z płytki NUCLEO X-NUCLEO-IHM02A1– sterownik silnika skokowego z wykorzystaniem magistrali SPI: a) L6470s (SPI) – sterownik silnika skokowego. 6) Przykłady obsługi elementów elektronicznych z płytki NUCLEO X-NUCLEO-IDB05A1– sterownik interfejsu Bluetooth z wykorzystaniem magistrali SPI: a) SPBTLE-RF (SPI) – moduł komunikacyjny Bluetooth v.4.1. 7) Przykłady obsługi elementów elektronicznych z płytki NUCLEO X-NUCLEO-NFC06A1– sterownik interfejsu NFC: a) ST25R3916 – moduł komunikacyjny NFC. 8) Przykłady obsługi elementów elektronicznych z płytki X-NUCLEO-PLC01A1– sterownik cyfrowych wejść i wyjść: a) CLT01-38SQ7 – sterownik 8 cyfrowych wejść, b) VNI8200XP – sterownik 8 cyfrowych wyjść. 9) Konfiguracja systemy czasu rzeczywistego FreeRTOS z poziomu aplikacji STM32CubeMX. 10) Przykłady użycia struktur systemu FreeRTOS: a) „Zadania” (Task): - Tworzenie „Zadania” - Priorytet „Zadań” - „Stany” (State) „Zadań” - usuwanie „Zadań” - „Dyspozytor” (Scheduler) „Zadań” b) „Kolejki” (Queue): - Tworzenie „Kolejki” - Praktyczne wykorzystanie „Kolejki” c) „Obsługa przerwań” (Interrupt Management): - Pojęcie „Semafora” (Semaphor) - „Zliczanie semaforów” (CountingSemaphores) - „Kolejkowanie” wraz z „układem zarządzania przerwań”(Interrupt Service Routine) - „Przerwania zagnieżdżone” (InterruptNesting) d) Zarządzanie zasobami mikrokontrolera w systemie FreeRTOS: - „Sekcje krytyczne” (Critical Sections) programu - Pojęcie „Wzajemnego Wykluczania” (Mutexes) e) Zarządzanie pamięcią w systemie FreeRTOS: - „Stos programowy” (Stack) w systemie FreeRTOS f) Częste problemy w programach z wykorzystaniem systemu FreeRTOS g) Debugowanie programów z wykorzystaniem systemu FreeRTOS 11) Przykłady obsługi elementów elektronicznych płytki ewaluacyjnej firmy MASTERS z wyświetlaczem 4.3”TFT+RTP Powertip: a) SDRAM, b) Wyświetlacz LCD TFT, 12) Omówienie środowiska programistycznego TouchGFX wraz z przykładami realizowanymi na płytce ewaluacyjnej firmy MASTERS z wyświetlaczem 4.3”TFT+RTP Powertip. |
Literatura: |
1. "Mikrokontrolery STM32 dla początkujących", Aleksander Kurczyk, 2019, ISBN: 978-83-64702-16-7, Wydawnictwo BTC, Legionowo, 2. "STM32: aplikacje i ćwiczenia w języku C z biblioteką HAL", Marek Galewski, 2019, ISBN: 978-83-64702-17-4, Wydawnictwo BTC, Legionowo, 3. "Using the FreeRTOS Real Time Kernel - a Practical Guide - Cortex M3 Edition (FreeRTOS Tutorial Books)", Richard Barry, 2010, ISBN-10: 1446170306, ISBN-13: 978-1446170304 4. "STM32. Aplikacje i ćwiczenia w języku C", Marek Galewski, 2011, Wydawnictwo BTC Legionowo, ISBN 978-83-60233-82-5 5. "Mikrokontrolery STM32 w praktyce", Krzysztof Paprocki, 2009, Legionowo, ISBN: 978-83-60233-52-8 6. "Mikrokontrolery STM32 w sieci Ethernet w przykładach", Marcin Peczarski, 2011, Legionowo, ISBN: 978-83-60233-68-9 |
Metody i kryteria oceniania: |
Metody oceniania: Egzamin – W1, W2, W3 Projekt zaliczeniowy z laboratorium – U1, U2, U3, U4, K1, K2 Kryteria oceniania: Wykład: Zaliczenie na ocenę na podstawie pisemnego testu zaliczeniowego obejmującego wiedzę przekazaną na wykładzie. Pytania w formie otwartej (omówienie danego zagadnienia), zamkniętej (wielokrotnego wyboru). Ocena w zależności od procentowej ilości uzyskanych punktów z testu: ndst – poniżej 50% dst – 50% dst plus – 60% db – 70% db plus – 80% bdb – 90% Laboratorium: Zaliczenie na ocenę na podstawie projektu opracowania i oprogramowania systemu wbudowanego. Projekt realizowany w grupach wieloosobowych. Ocena pracy zespołu uzależniona jest od sprawności w realizacji zadania, efektu końcowego zrealizowanego projektu. |
Praktyki zawodowe: |
„nie dotyczy” |
Właścicielem praw autorskich jest Uniwersytet Mikołaja Kopernika w Toruniu.