project 11
STM32- & Arduino-embeddedsystemen
Laagniveau embedded software rond synchrone sensordata-verzameling, uitvoer met lage latentie naar lokale displays en een betrouwbare communicatiestandaard tussen microcontrollers.
- Categorie
- Embedded & Robotica
- Rol
- Embedded softwareontwikkelaar
- Jaar
- 2025 – 2026
gebruikte technologieën
- C
- C++
- STM32
- ARM Cortex-M
- Arduino
- I2C/SPI/UART
probleem
Probleem
Op hardwareniveau moesten sensordata zoals temperatuur, versnelling en afstand synchroon worden verzameld, met lage latentie naar lokale displays worden geschreven, en moest er een betrouwbare communicatiestandaard tussen microcontrollers komen.
oplossing
Oplossing
Met C en C++ heb ik op STM32 met de HAL/LL-bibliotheken en op de Arduino Uno op register- en driverniveau geprogrammeerd. Via I2C, SPI en UART heb ik communicatiedrivers ontwikkeld voor SSD1306 OLED-displays en diverse sensormodules, en de leeslus opgebouwd op interrupts en timers.
resultaat
Resultaat
Het resultaat is een reeks stabiele hardwareprototypes zonder vastlopers, aangestuurd door interrupts en in staat tot realtime data-uitlezing en visualisatie.
belangrijkste functies
- 01Register- en driverniveau programmeren op STM32 met de HAL/LL-bibliotheken.
- 02Communicatiedrivers voor SSD1306 OLED-displays en sensormodules via I2C, SPI en UART.
- 03Realtime leesarchitectuur aangestuurd door interrupts en timers, bestand tegen vastlopers.
- 04Geheugen- en codeoptimalisatie voor laag verbruik en realtime responstijden.
waarom deze keuzes
Waarom interrupt-gestuurd lezen in plaats van polling?
Een continue pollinglus houdt de CPU van de microcontroller voor niets bezig, en elk signaal dat tussen twee pollings valt, gaat verloren. De overstap naar hardware-interrupts en timergebaseerd periodiek lezen ontlastte de CPU en ving signalen zonder verlies op.
Waarom code op HAL/LL-niveau?
Kant-en-klare bibliotheken leveren snel resultaat maar verbergen wat de hardware daadwerkelijk doet. Werken op registerniveau maakte timing- en verbruiksgedrag direct stuurbaar en liet problemen oplossen door meten in plaats van gissen.