34373 Introduktion til mikrokontroller-programmering til IoT med embedded C

2024/2025

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
Teknologisk specialisering (MSc), Communication Technologies and System Design
Teknologisk specialisering (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: 15
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, 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