Book Image

Practical Arduino Robotics

By : Lukas Kaul
Book Image

Practical Arduino Robotics

By: Lukas Kaul

Overview of this book

Every robot needs a “brain,” and the Arduino platform provides an incredibly accessible way to bring your Arduino robot to life. Anyone can easily learn to build and program their own robots with Arduino for hobby and commercial uses, making Arduino-based robots the popular choice for school projects, college courses, and the rapid prototyping of industrial applications! Practical Arduino Robotics is a comprehensive guide that equips you with the necessary skills and techniques that can be applied to various projects and applications, from automating repetitive tasks in a laboratory to building engaging mobile robots. Building on basic knowledge of programming and electronics, this book teaches you how to choose the right components, such as Arduino boards, sensors, and motors, and write effective code for your robotics project, including the use of advanced third-party Arduino libraries and interfaces, such as Analog, SPI, I2C, PWM, and UART. You'll also learn different ways to command your robots wirelessly, such as over Wi-Fi. Finally, with basic to advanced project examples, this book illustrates how to build exciting autonomous robots like a self-balancing telepresence robot. By the end of this book, you'll be able to design and create your own custom robots for a wide variety of applications.
Table of Contents (21 chapters)
1
Part 1: Selecting the Right Components for Your Robots
6
Part 2: Writing Effective and Reliable Robot Programs for Arduino
10
Part 3: Building the Hardware, Electronics, and UI of Your Robot
15
Part 4: Advanced Example Projects to Put Your Robotic Skills into Action

Cooperative multitasking

Multitasking describes a mechanism that lets a single CPU core serve multiple tasks concurrently. There are multiple ways to implement multitasking. A key distinction can be made between preemptive multitasking and cooperative multitasking. In preemptive multitasking, a higher-level authority such as the OS decides how long a given task can use the system’s resources (such as the CPU) before they are given to another task. This is especially useful when a lot of different tasks run on a large system, and not all of them can be trusted to manage their resource consumption responsibly. However, it makes the system more complex by requiring a powerful task manager that can start and stop task executions.

In cooperative multitasking, tasks are split into small steps and then served sequentially—for example, in the Arduino loop() function. Each task only does a small amount of computation at once, requiring only a very short usage of the system...