34373 Introduktion til mikrokontroller-programmering til IoT med embedded C

2025/2026

Kursusinformation
Introduction to microcontroller development for IoT using embedded C
Engelsk
5
Kandidat
Kurset udbydes som enkeltfag
Retningsspecifikt kursus (MSc), Communication Technologies and System Design
Retningsspecifikt kursus (MSc), Electrical Engineering
Tilvalgskursus (B Eng), Elektroteknologi
F3A (tirs 8-12)
Campus Lyngby
13-uger
Aftales med underviser
Bedømmelse af opgave(r)/rapport(er)
Evaluation of report
bestået/ikke bestået , intern bedømmelse
34315 / 34346 / 34365 / 34338 , C programming experience / Embedded systems / Electronics / Arduino / IoT
Maksimum: 40
Martin Nordal Petersen , Lyngby Campus, Bygning 343, Tlf. (+45) 4525 6381 , mnpe@dtu.dk
34 Institut for Elektroteknologi og Fotonik
I studieplanlæggeren
Kontakt underviseren for information om hvorvidt dette kursus giver den studerende mulighed for at lave eller forberede et projekt som kan deltage i DTUs studenterkonference om bæredygtighed, klimateknologi og miljø (GRØN DYST). Se mere på http://www.groendyst.dtu.dk
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 og forskellige seriel kommunikationsprotokoller. Der vil også være mulighed for at arbejde med trådløs kommunikationsteknologier 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, 2025