Getting started with Embedded Systems — 1: Introduction
Autonomous driving vehicles, sensor hub, smart locks, … The endless possibilities of embedded systems are truly incredible but can also make them surprisingly complex. It is a difficult subject to get started with as it encompasses a wide range of domains and therefore requires a strong set of skills. In this series of articles, I intend to go through the different components required to build an Embedded System.
The overall plan for this series will be as follow:
- Introduction to Embedded Systems
- Hardware: Microcontrollers
- Hardware: Schematic, PCB design, Manufacturing
- Networking: Bluetooth, Wifi, Zigbee
- Mechanical engineering: 3d printing, enclosure, thermal testing
- Software: Embedded specific software, RTOS, Linux
- Backend/Frontend: database, website, application
- Bonus: sensors, actuators
What is an Embedded system?
An embedded system is some combination of computer hardware and software, either fixed in capability or programmable, that is designed for a specific function or for specific functions within a larger system. (techtarget.com)
Example: Autonomous driving car
The following car is a good example of an embedded system that I designed as it includes some hardware such as Printed Circuit Boards (PCBs), mechanical enclosure (motors, servo, chassis), sensors but also some firmware to interface the different sensors and communicate between the two PCBs. An RTOS is running on both microcontrollers. It also has an RCB screen to display important information.
The autonomous driving car is made of two PCBs: a motor board and a sensor board. You can see them stacked on top of each other (red boards) on the image above. The sensor board collects data from the sensors such as the IR ones. It then transmits those data through the Controller Area Network (CAN) to the motor board. The motor board controls the motor along with the servos. A Real-Time Operating System (RTOS) runs on both boards and is in charge of scheduling the different tasks. A state machine runs on the motor board to decide the power of the motor along with the direction of the wheels. The microcontroller used for those two PCBs is the TI TM4C123.
The next article in this Getting Started with Embedded Systems series will be about microcontrollers. If you have any question or comment feel free to reach out to me on Twitter @cDugue.