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

Tuning and testing

There are a few parameters that we need to tune in order for the robot to function as expected. We can start with the directions in which the wheels turn. Our code assumes that if we pass a positive value to a motor’s SetPwm() function, the associated wheel spins forward. You can test this out by pressing the up arrow in the control pad on your phone and checking whether the wheels turn forward. If they spin the wrong way, you can either swap the order of the way the motor cables are plugged into the motor controller, or you can swap the values of the motor_dir_pin_A and motor_dir_pin_B variables for that motor.

The value of the button_increment variable determines how much the pmw value is increased for every button pressed on the control pad. The best value depends on the battery and the motors that you use. One press should be just enough to get the motors spinning reliably. You can do some testing and adjust the value accordingly.

The value of line_follow_pwm_offset...