RTO Lab 5

Projekty!

Chciałem to zrobić za tydzień, ale nagle zmieniłem zdanie


1. Wprowadzenie

To są nasze pierwsze zajęcia projektowe. Przypomnę, że ten projekt wart jest 20% oceny. Deadline realizacji: 21.11. Na ocenę wpływają:

  • Kompletność projektu
  • prawidłowość logiki działania
  • zgodność z założeniami

2. Wymagania ogólne

  • Każdy projekcik powinien zawierać minimum 4 taski.
  • Wykorzystanie co najmniej 3 mechanizmów FreeRTOS: kolejki, semafory, mutexy, task notifications, ISR.
  • Jeden lub więcej czujników / wejść.
  • Dokumentacja architektury systemu.

Co do zasady pozostawiam wam wolną rękę co do tematyki projektu oraz wykorzystanych narzędzi. Przed podjęciem prac implementacyjnych proszę o wypełnienie dokumentu założeń projektowych - dostępny tutaj i skonsultowanie z prowadzącym.

Poniżej znajdują się przykładowe projekty, można zrealizować jeden z nich, lub wymyślić coś zupełnie innego.

3. Przykładowe projekty ze szczegółowymi rolami tasków

3.1 Projekt: Inteligentny system domowy

TaskSensorTemp

  • Odczyt temperatury co 1 sekundę.
  • Wysyłanie danych do kolejki xQueueSensors.
  • Wynik wysyłany jako struct z timestampem, wynikiem pomiaru i ID sensora

TaskSensorLight

  • Pomiar światła co 500 ms.
  • Przesyłanie wyników do xQueueSensors.
  • Wynik wysyłany jako struct z timestampem, wynikiem pomiaru i ID sensora

TaskLogic

  • Odbieranie pomiarów z kolejki.
  • Przetwarzanie danych i podejmowanie decyzji dot. sygnalizacji stanów
  • Wysyłanie komend do xQueueActuator.

TaskActuator

  • Sterowanie diodami/buzzerem.
  • Priorytet wysoki.

TaskLogger

  • Logowanie działania systemu.
  • Wykorzystanie mutexu na UART.

3.2 Projekt: Mini-stacja pogodowa

TaskSensorTemp/Humidity/Pressure

  • Odczyty z różnych czujników co różne interwały
  • Interwały regulowane potencjometrem (lewo = rzadko, prawo = często)
  • Wysyłanie pomiarów do kolejki.

TaskAggregator

  • Uśrednianie wyników.
  • Przechowywanie statystyk.

TaskScheduler

  • Wyzwalanie raportów co 60 sekund.
  • Powiadamianie loggera przez task notification.

TaskLogger

  • Generowanie raportów i drukowanie przez UART.

4. Dobre praktyki w projektach RTOS

  • Zadania należy projektować z jasnym podziałem realizowanych zadań.
  • Priorytety powinny wynikać z krytyczności zadania.
  • Unikać opóźnień blokujących w ISR.
  • Komunikacja przez kolejki do danych, semafory/notify do sygnałów.