In previous pages I have explained how to build the essential parts of “Rino il robottino”, the mechanical platform, the hardware and the software needed to guide the robot at a desired speed, in a desired direction, knowing were it is at any moment relatively to a reference system.
Now Rino has to grow, becoming conscious about the surrounding environment. He needs the senses to participate to one competition such as RTC (already described) or explorer, where it has to navigate in an unknown field avoiding obstacles and finding some specific targets.
The first step is to select the right controller. I already had experiences with sensors controlled by PIC, so it is useless to spend boring time repeating the same steps, It is better to have something quick but not dirty, intriguing enough without too much effort on programming. An eight bit MCU is more than enough to drive the sensors normally used in amateur robotics. These sensors usually have a response time measured in terms of several milliseconds or more.
The Arduino standard specifications also include the way the expansion boards must be done, they are called “shields”. I didn’t follow the standard, using a perfboard to build a very personal version of a shield.
On the perfboard there are the sockets to interface Arduino with the rest of the components and boards. Among theme some signaling LEDs, switches and a Maxim MAX127 "Data Acquisition System", i.e. an 8 analog to digital channels with I2C interface.
During the experience with Processing on developing the remote console described in the previous articles, I learned something more about Arduino hardware and software platform. It’s intriguing enough, it’s cheap, it’s powerful and… it’s developed in Italy (apologize my patriotism), but the best thing is that it’s growing more and more with the contribution of a lot of people all over the world. Being completely open both in hardware and software it’s easy to find any kind of hardware interface or software library you need. You have the option to use an off-the-shelf piece of software or build your own library using C programming and even controlling every single bit of Atmel MCU. This time the learning period was very short and the programming was very “relaxing”, also because it uses the same basic concepts of Processing IDE.
Using an Arduino Diecimila board the so-called ArduRino was born.
This is useful to expand Arduino analog ports also for future applications. Using Wire library for Arduino it’s very easy to use I2C bus with just few lines of code. Also some sample code is available on line to control MAX127.
A couple of low dropout voltage regulators take place too on this board to supply Arduino and Figaro gas sensors.