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

State machines

In our introductory example of cooperative multitasking, we chose two tasks that are extremely small and that do the exact same thing each time they are executed. However, tasks can get much more complicated and might require us to execute several different steps each time they are called. In other words, we need to break a big chunk of code up into small pieces. A great way to implement these more complex tasks in the cooperative multitasking framework is by writing them as state machines.

A state machine is a piece of code that keeps track of the state of the task (hence the name). Certain conditions, such as timing checks, can trigger a transition between states, which causes a bit of code to be executed. The LED blink task from the last example can easily be implemented as a state machine. This adds a few lines of code, but it makes it much more readable. In the blink task state machine, the state is the state of the LED, which is either ON or OFF. The transition...