Book Image

Hands-On Robotics Programming with C++

By : Dinesh Tavasalkar, Lentin Joseph
Book Image

Hands-On Robotics Programming with C++

By: Dinesh Tavasalkar, Lentin Joseph

Overview of this book

C++ is one of the most popular legacy programming languages for robotics, and a combination of C++ and robotics hardware is used in many leading industries. This book will bridge the gap between Raspberry Pi and C/C++ programming and enable you to develop applications for Raspberry Pi. You'll even be able to implement C programs in Raspberry Pi with the WiringPi library. The book will guide you through developing a fully functional car robot and writing programs to move it in different directions. You’ll then create an obstacle-avoiding robot using an ultrasonic sensor. In addition to this, you’ll find out how to control the robot wirelessly using your PC or Mac. This book will also help you work with object detection and tracking using OpenCV, and guide you through exploring face detection techniques. Finally, you will create an Android app and control the robot wirelessly with an Android smartphone. By the end of this book, you will have gained experience in developing a robot using Raspberry Pi and C/C++ programming.
Table of Contents (16 chapters)
Free Chapter
1
Section 1: Getting Started with wiringPi on a Raspberry Pi
4
Section 2: Raspberry Pi Robotics
8
Section 3: Face and Object Recognition Robot
12
Section 4: Smartphone-Controlled Robot

Working with H-bridge

The L298N motor driver IC can control two motors at a time. It consists of a dual H-bridge circuit. This means it consists of two circuits that look like the one shown in the following diagram, one for each motor:

The H-bridge circuit consists of four switches S1, S2, , and . These switches will open and close based on the input that we provide to the L298N IC.

Now, since we have two motors, there are four possible input combinations that we can provide to the L298N IC, as follows:

  • HIGH HIGH (1, 1)
  • HIGH LOW (1, 0)
  • LOW HIGH (0, 1)
  • LOW LOW (0, 0)

We will provide the HIGH (1) and LOW (0) signal to the S1 and S2 switches, as follows:

  1. First, when S1 = 1 and S2 =0, the S1 switch will be closed and the S2 switch will remain open. , or , will be 0, so the switch will be open. , or , will be 1, so the switch will be closed. Now, since the S1 and switches...