Défis firmware embarqué
Des exercices de C embarqué regroupés par thème. Chaque défi tourne dans le navigateur sur une carte STM32, nRF52 ou ESP32 émulée et est vérifié par des tests matériels. Beaucoup incluent une solution écrite et une vidéo.
17 défis
Advanced Peripherals
Applied Integration
- Quiz Buzzer LockoutOn an Arduino Nano 33 BLE, run a three-team quiz buzzer: the first team to press lights its lamp, everyone else is locked out, and the quizmaster's reset opens the next round, even when a button is still held down.FacileNano 33 BLE · ArduinoSolution écrite
- Two-Hand Press ControlOn an Arduino Nano 33 BLE, start a stamping press only when both palm buttons are pressed within 500 ms of each other, stop it the moment either is released, and require both hands off before the next stroke.FacileNano 33 BLE · ArduinoSolution écrite
- Battery Module Cell Voltage CAN BroadcastRead four cell voltages from a UART bench harness, broadcast them and a computed pack summary on CAN1, and latch a fault output until a reset command arrives. Graded on the CAN frames a trusted node sees and the fault pin.MoyenSTM32 · HAL
- Garage Door ControllerOn an Arduino Nano 33 BLE, run a garage door from one remote button, stop it at the limit switches, send a closing door back up when the photo-eye beam breaks, and raise a fault when the door jams.MoyenNano 33 BLE · ArduinoSolution écrite
- Rocket Dual-Deploy Flight Computer (I2C)Wire an LIS2DS12 accelerometer over I2C and drive two pyro channels from it: payload separation at apogee, then a timed parachute deploy. Accelerometer telemetry and both output pins are checked.DifficileSTM32 · HAL
- Water Tank Pump ControlOn an Arduino Nano 33 BLE, fill a water tank between two float switches: filter out sloshing, keep the pump off between the floats, catch impossible float readings as a fault, and latch a dry-run fault if no water arrives within ten seconds.DifficileNano 33 BLE · ArduinoGratuit
Data Handling & Algorithms
- Rotary Encoder Position CounterOn an Arduino Nano 33 BLE, decode a mechanical quadrature handwheel so that each full click counts once in the right direction, while contact chatter, rocking and invalid transitions never count, and a push button zeroes the position.MoyenNano 33 BLE · ArduinoSolution écrite
- Machine Event Log Ring BufferOn an Arduino Nano 33 BLE, build a black-box recorder for a packaging machine: debounce jam and guard-door events, keep the 8 newest in a ring buffer with timestamps, dump them oldest first on request, and clear the log with a long press.MoyenNano 33 BLE · ArduinoSolution écrite
- Simon Memory GameOn an Arduino Nano 33 BLE, build the classic Simon game: a colour sequence that grows by one random colour per round, played back on three LEDs with exact timing, checked against debounced button presses, with a timeout and a score.DifficileNano 33 BLE · ArduinoGratuit
GPIO & Digital Outputs
Interfaçage des capteurs
Sensors
Timing & Program Flow
- Seatbelt Reminder LampOn an Arduino Nano 33 BLE, flash a belt warning lamp when the ignition is on and the belt stays unlatched for two seconds, and start the grace period over every time the situation begins again.FacileNano 33 BLE · ArduinoGratuitSolution écrite
- Traffic Light With Night ModeOn an Arduino Nano 33 BLE, run a junction traffic light (red, red + yellow, green, yellow) on exact millis() timing that never drifts, and add a button that switches to a blinking-yellow night mode and back.MoyenNano 33 BLE · ArduinoGratuit
- Three-Floor Elevator ControllerOn an Arduino Nano 33 BLE, control a small three-floor lift: remember floor calls, keep the car's direction and stop at called floors on the way, time the travel and the door, and drive the indicator panel lamps correctly.DifficileNano 33 BLE · ArduinoSolution écrite
UART Communication
Débutant en embarqué ? Commencez par la feuille de route : Apprendre les systèmes embarqués (en anglais)