Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Beginning robotics with Raspberry Pi and Arduino : using Python and OpenCV
Cicolani J., Apress, New York, NY, 2018. 363 pp. Type: Book (978-1-484234-61-7)
Date Reviewed: Mar 14 2019

The language used in this book is very close to beginner level. It includes many examples, with code, images, and details of the materials needed to assemble the presented robot. The book’s ten chapters cover five key aspects related to low-cost robots: the robot controller based on Raspberry Pi and Arduino, the robot programming language, which in this case is Python, together with open-source libraries to work with artificial vision (OpenCV), the sensory system, and the acting system. It is a good book to promote the use of robotics in science, technology, engineering and mathematics (STEM) disciplines.

The book provides readers with step-by-step instructions for configuring the hardware to be able to program the robot, installing the Raspbian operating system, and setting up remote access to Raspberry Pi to program or configure it. The book covers aspects of object-oriented programming in general and imperative programming in particular, using the Python language as support. Raspberry Pi’s input/output (I/O) interface is studied and extended using Arduino, and then applied to the control of a DC motor, making use of a special board due to the current requirements of the motor and showing the basic principles for conducting electronic welding. As examples of sensors, an infrared sensor and a vision camera are analyzed. Finally, the fundamentals of the proportional–integral–derivative (PID) control algorithm are presented.

As mentioned, the book is a step-by-step guide, including a detailed list of materials to build a low-cost robot based on the principles discussed above (chapter 1). Chapters 2 and 3 propose different ways (from the most basic to the most advanced) to install and configure Raspbian and remote access to Raspberry Pi, and continue with the steps to install the programming environment for Python and to write and execute the typical “Hello, World!” program. The concepts of variable and data type are introduced, showing the most common and presenting the basic control structures, the user-defined functions and the library functions. The concept of class in object-oriented programming is also introduced. The concepts presented are very basic and may be sufficient as a first introduction to programming robots.

Chapter 4 analyzes Raspberry Pi’s I/O interface, identifying its limitations and justifying the use of a board dedicated to I/O, that is, Arduino. Python examples of I/O using the Raspberry Pi general-purpose I/O (GPIO) are presented for basic digital I/O, that is, an ultrasonic sensor input and a pulse width modulation (PWM) output. Chapter 5 justifies the convenience of working with Arduino for real-time applications. It describes a step-by-step procedure for working with Arduino from hardware and software points of view (with a simplified variant of the programming language C). Digital and analog I/O and the interconnection between Arduino and Raspberry Pi are also analyzed.

Chapter 6 is dedicated to actuators, specifically DC motors. It describes the different types of motors and the problems they present in the demand for current peaks under certain conditions, justifying the use of a motor control board. Python examples are shown to spin one or two engines. Chapter 7 presents a step-by-step procedure for assembling the robot from all the components presented in the previous chapters.

Chapter 8, “Working with Infrared Sensors,” explains the principle of operation and different uses and introduces programming examples to obtain readings from Arduino. Using the problem of tracking a line as an example, the concept of proportional control is presented in a very intuitive way, to justify the use of a PID controller to avoid zigzag movement of the robot. The fundamentals of PID control are presented, but obviously in a very basic way, and the algorithm implemented using Python is shown. Finally, in chapter 9, the author introduces the basic problem of computer vision and explains how it can be solved using OpenCV and Raspberry Pi. The book ends with chapter 10, “Conclusion.”

In summary, I think it is a very suitable introductory book to mobile robotics, mainly for pre-university courses.

More reviews about this item: Amazon

Reviewer:  Jose Carlos Moreno Ubeda Review #: CR146470 (1905-0148)
Bookmark and Share
 
Microprocessors And Microcomputers (B.7.1 ... )
 
 
Python (D.3.2 ... )
 
 
Robotics (I.2.9 )
 
Would you recommend this review?
yes
no
Other reviews under "Microprocessors And Microcomputers": Date
Microprocessors and programmed logic (2nd ed.)
Short K., Prentice-Hall, Inc., Upper Saddle River, NJ, 1987. Type: Book (9789780135806067)
Nov 1 1987
The Motorola 68020
Zoch C., McGraw-Hill, Inc., New York, NY, 1986. Type: Book (9789780070425859)
Sep 1 1988
Digital electronics with microprocessor applications
Dixon A., Antonakos J., John Wiley & Sons, Inc., New York, NY, 1987. Type: Book (9789780471890188)
Dec 1 1988
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy