Arduino for the Layman – Introduction
Introduction
Who should follow this tutorial?
This book is written for people just like you and me. My fascination with Arduino started with a magazine article describing how to build your first robot. A Robot? I was hooked immediately, but I soon found the article lacked depth: follow a series of steps, and voila! – you have created a robot. In reality I’d created a robotic paint-by-numbers and didn’t have a clue how or why my creation worked. Some of the principles were pretty complex, and could have been whole projects on their own. So I decided to start from the beginning again, and I began the journey to understand how I had reached my destination (the robot) the first time. This tutorial series is the result.
What makes this tutorial different?
This tutorial differs from many others on robotics, Arduino and microprocessors – primarily in way that the learning takes place. For a start, this isn’t a tutorial discussing a number of often-unrelated (but nevertheless very useful) topics. Instead, as we work together through this series, we are heading towards a clear goal – the creation of a sophisticated robot – and gaining knowledge along the way. We’ll take small steps to ensure that you have all the building blocks you need to be able to develop your own creations without having to rely on a book to get you there.
I won’t be overwhelming you with large theoretical sections that you need to absorb in order to give you a solid foundation and progress through the series – we’ll build our knowledge up as we go, in order to ensure that it has context and is therefore more easily learned.
Why build a Robot?
Quite simply, they are fun and rewarding. You’ll feel a great sense of achievement watching your creation move around autonomously, interacting with its environment. Our robot will be a wheeled robot, and will be able to move around a room avoiding obstacles, reacting to light and dark, and responding to any commands you might give it.
The topics that we’ll be covering will allow you to do a lot more than only build robots; a robot is the perfect project to pull together a host of extremely useful principles and technologies – sensing the physical environment through contact and non-contact means, sensing light, driving motors and servos, producing visual and audio output, understanding infrared remote control, and others. From here, the options are endless.
More on the Robot Design
To whet your appetite, let’s look at our ultimate goal in a little more detail.
We’ll be building a robot with 3 wheels – well, really 2 wheels and a free-moving castor. Robots like this are structurally simpler to build, as they steer simply by varying the relative speed of the 2 driving wheels. This allows us to focus on the electrical design of the robot without straying into mechanical complexities.
The robot will have two key ways to sense its environment and avoid obstacles – an ultrasonic sensor which can sense obstacles at a distance, and contact sensors that detect obstacles out of the ultrasonic sensor’s field of vision. Think of these as the eyes and the whiskers of the robot. There is a fair amount of logic that goes into these, along with the course of action that the robot takes to avoid the obstacles once they’ve been detected. In order to improve the robot’s field of vision, we’ll mount the ultrasonic sensor on a platform that scans left and right.
To give us more control, we’ll include an infrared module. This will allow us to override the obstacle avoidance system, and keep our robot safe while we test our obstacle avoidance logic. Once the basics are in place, we’ll add some bells and whistles to the robot. The robot will become more interactive by indicating its intentions through light and sound, as well as react to the light levels in which it operates.
Finally, once we’ve built all of this using the Arduino system, we’ll build our own controller board without relying on the Arduino board itself – essentially we’ll build our own Arduino. If we were developing a commercial product, this would be the end of the initial prototype phases and the start of building the beta product.
Getting going with the Tutorial
What skills do I need?
None! You need to be comfortable using your computer, and brave enough to experiment a little. In some sections we’ll be using soldering irons and basic tools, so you need to be comfortable wielding these. Otherwise, we’ll learn together as we move through the tutorial.
Please give feedback
I think you’ll agree this is an ambitious project. Rather than complete the entire tutorial before releasing it, I wanted to get it out faster as well as have the opportunity to tailor it to any feedback you may have as it develops.
Please share this tutorial and send me feedback either by e-mail andrewr(at)crash-bang(dot)com or on twitter.
Let the Adventure Begin!
As you explore your way through the tutorial I hope to give you the building blocks that you need, through a host of interesting and fun projects, to build the final robot with a full understanding of your creation. We’ll discover the how and why of what we’re doing, while remembering that neither you nor I are rocket scientists or have a master’s degree.