This textbook introduces the concept of embedded systems with exercises using Arduino Uno. It is intended for advanced undergraduate
and graduate students in computer science, computer engineering, and electrical engineering programs. It contains a balanced
discussion on both hardware and software related to embedded systems, with a focus on co-design aspects. Embedded systems
have applications in Internet-of-Things (IoT), wearables, self-driving cars, smart devices, cyberphysical systems, drones,
and robotics. The hardware chapter discusses various microcontrollers (including popular microcontroller hardware examples),
sensors, amplifiers, filters, actuators, wired and wireless communication topologies, schematic and PCB designs, and much
more. The software chapter describes OS-less programming, bitmath, polling, interrupt, timer, sleep modes, direct memory access,
shared memory, mutex, and smart algorithms, with lots of C-code examples for Arduino Uno. Other topics discussed are prototyping,
testing, verification, reliability, optimization, and regulations. Appropriate for courses on embedded systems, microcontrollers,
and instrumentation, this textbook teaches budding embedded system programmers practical skills with fun projects to prepare
them for industry products.
Introduces embedded systems for wearables, Internet-of-Things
(IoT), robotics, and other smart devices;
Offers a balanced focus on both hardware and software co-design of embedded
Includes exercises, tutorials, and assignments.