Overordnede kursusmål
Dette kursus fokuserer på embedded programmering og udvikling af
mikrocontrollere til low-power Internet of Things (IoT) enheder.
Dette gøres ved hjælp af embedded C firmwareprogrammering på en
STM32 mikrokontroller. Formålet med dette kursus er at introducere
den studerende til avancerede metoder til udvikling af firmware på
ARM-Cortex mikrocontrollere (MCU'er), specielt til IoT-formål,
som for eksempel interfacing med digitale og analoge sensorer og
trådløs kommunikationsmoduler. Den studerende skal arbejde med
lav-niveau MCU-konfigurering og firmwareudvikling for at
konfigurere og anvende timere, interrupts,
analog-til-digital-konvertering, forskellige seriel
kommunikationsprotokoller samt trådløs kommunikation med
IoT-relevante teknologier såsom eksempelvis Lora/LoraWAN, BLE og
NBIoT/LTE-M. Arduino IDE vil ikke blive brugt i dette kursus.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- Beskrive essensen af - og udfordringerne i Internet of
Things.
- Analysere og planlægge ifht. en optimal implementering af
kommunikationsteknologi
- Implementere embedded C kode i en ARM Cortex-baseret MCU
- Konfigurere MCU clock'en samt peripherals (interfaces) på
et STM32 evalueringsboard
- Konfigurere GPIOs til seriel kommunikation i en ARM-baseret
mikrocontroller (UART, I2C, SPI)
- Konfigurere GPIOs og anvende ADC/DAC i en ARM Cortex-baseret
MCU
- Udvikle embedded firmware der kan sende/modtage data
- Implementere UART/SPI/I2C kommunikation i MCU firmware.
- Beskrive koncepterne bag RTOS og multi-threading
- Selvstændig analysere og implementere embedded firmware der
løser en IoT udfordring
- Færdiggøre og showcase et selv-udviklet IoT projekt
- Dokumentere projektarbejde i rapport
Kursusindhold
Formålet med dette kursus er at introducere den studerende til
avancerede metoder til udvikling af firmware på ARM-Cortex
MCU'er til IoT-formål. Der vil især være fokus på opsætning af
MCU'en, for eksempel konfiguration af GPIO'er, UART,
interrupts og timere, SPI og I2C kommunikation og analog-digital
(ADC/DAC) funktionalitet.
Der vil være en, Arduino-fri, embedded-tilgang til udvikling af
mikrocontrollers firmware og det vil give den studerende en
forståelse af mulighederne i et embedded system i relation til
Internet of Things. Den studerende vil berøre emnet Real-time
operating system (RTOS) og kort blive introduceret til hvordan man
afvikler flere tråde i ARM-processoren.
Kurset er bygget op omkring forelæsninger og øvelser, hvor den
studerende får praktisk erfaring inden for MCU firmware
programmering, primært ved brug af STMCubeIDE og STMCubeMX. I løbet
af øvelserne vil den studerende lære at konfigurere UART/SPI eller
I2C seriel interfaces for at kommunikere med digitale
sensorer/moduler. Den studerende vil også lære at konfigurere og
anvende den interne analoge-til-digitale konverter (ADC) for at
aflæse og digitalisere analoge sensor data.
Kurset vil have fokus på IoT således, at low-power kommunikation,
f.eks. LPWAN kommunikationsteknologier (eksempelvis Lora/LoraWAN,
SigFox eller NBIoT/LTE-M) og/eller BLE vil blive brugt til trådløs
datatransmission under kurset og projektarbejdet.
Den studerende forventes at have forudgående viden om C/C++.
I løbet af kurset vil de studerende planlægge og udvikle deres egne
projekter i grupper og evalueret ud fra en præsentation og/eller
rapport.
Kursus nøgleord: Embedded systemer, Low-power embedded firmware
udvikling til IoT, bare-metal programmering, STM32, Nucleo,
Bluepill, CubeIDE, CubeMX, FreeRTOS, tasks and semaphores,
no-Arduino.
Sidst opdateret
02. maj, 2024