The Essence of Embedded Systems - Fundamentals (Embedded Systems Essentials)
An introductory course that lets you experience the entire embedded development process at once—from installing Linux to controlling a robot When you want to get started with embedded systems, it can be overwhelming to know where to begin. This course is designed for those people to experience the entire process at once, starting with a single PC and ending with making a robot move. It covers everything from Linux installation and basic configuration, and preparing a Raspberry Pi, to reading circuit diagrams and datasheets, and practicing basic communication interfaces. Rather than focusing on depth, it focuses on understanding the overall structure.
121 learners
Level Basic
Course period Unlimited


[Development Story] Are Sensor Readings Always Accurate?
Hello.
This is Hochu Dad from the Coding Beginner Rescue Team.
This time, based on what we learned in the course, I’d like to discuss something worth considering at least once during the actual development process.
In the course, we learn how to detect obstacles using an IR sensor and control the motor based on the results.
However, in real-world environments, sensors do not always behave as expected.
It may be momentarily detected even when there is no obstacle, or
Even when there is an obstacle, it may temporarily go undetected.
Depending on the surrounding environment, sensor readings may become unstable.
What would happen if the motor were controlled immediately after reading the sensor value?
The robot might stop unnecessarily, or the motors might repeatedly operate.
So how can this be improved?
One of the simplest ways is to check the sensor value multiple times instead of just once.
For example, rather than stopping immediately when an obstacle is detected, you can stop only after it has been detected three times in a row.
In Python, this can be expressed as follows.
count = count + 1 if detected else 0if count >= 3: stop_motor()
※ This is a simplified example for ease of understanding; detected represents the obstacle detection result, and stop_motor() represents the motor stop function.
Of course, in an actual implementation, you also need to consider the sensor's measurement interval and the robot's response speed.
These small improvement processes are precisely an important part of real-world embedded software development.
This Week's Small Challenge!
How about making a few modifications to the obstacle detection feature implemented in the lecture?
Compare how the motor responds when an obstacle is detected consecutively 1, 3, and 5 times.
Rather than simply writing code that works, we hope you develop the habit of considering why it works this way and how it can operate more reliably.
Thank you.
From the “Korin-i Rescue Team”




