I’ve been thinking about coming up with a decent project that involves RTOS (along with queues/messages, and synchornization techniques)…preferably based on a real-life example.
I feel I’m fascinated by the idea that revolves around a producer-consumer problem where the user requests something be it sensor data, and the system services the request.
One thing that came to mind is a smart watch which has multiple features including, say, an alarm clock, different sensors, real-time clock along with a display itself.
I wouldn’t be surprised if RTOS is being used for such a device; my understanding is at least from a high level (implementation-specific but that’s how I see it): there would be a separate task for each functionality be it:
- for an LCD display that’s responsible for reading the desired data from different other tasks, and showing it in a nice way
- for a sensor (assuming there’s one) that’s being constantly read
- perhaps BLE that’s responsible for sending desired data over to an app over BLE
- for a real-time clock for updating the time on a display
- Perhaps a push-button that, say, wakes up the screen or maybe get an
“average” of the sensor readings till the point the button was pressed. (If not an average, just the point at which the button was pressed so the sensor task would be blocked till the flag is set in a push-button ISR for instance)
Does the idea sound doable/good enough and a legit reason to use RTOS? Is there anything else I could add to it that you could think? (my main motivation is learning but also to put something on my resume).
Since I don’t have enough hardware, I’d probably just be replicate the functionality using a breadboard for connections.
Any ideas are greatly appreciated