From automobile assembly and PCB fabrication, to consumer electronics, robotics is home to some of the most exciting engineering taking place today. Learning about robotics, whether you are an experienced engineer or complete beginner, has never been easier thanks to the application notes, software examples and tutorials available online today. Mike Powell, Technical Development Manager for Farnell element14, explores further in this ES Desdign magazine article.
The element14 Community, managed by electronics distributor Premier Farnell, is an encyclopaedic library of information for electronics design engineers and robotics is one of its key technologies. Whatever your preferred embedded platform, be it AVR, PIC or 32-bit ARM, element14 supports a wide range of development boards. Here’s an overview into some of the most popular boards for motor control and robotics applications.
The Sitara AM3359 ARM Cortex-A8 processor in the newly released BeagleBone Black provides a 1GHz platform ideal for robotics development. Although the BeagleBone is a ‘bare bones’ version of the BeagleBoard, it features dual 46-pin headers and plenty of industrial communications capability, along with a new addition of HDMI. The BeagleBone Black is much cheaper than the original version and includes Ångström Linux as standard, making it perfect for high-end robotics applications. It even has 512Mbyte of DDR3 RAM to support the most demanding programs.
The BeagleBone Black is capable of not just interfacing to all robotics motor drivers, location or pressure sensors and 2D or 3D cameras, but also running OpenCV, OpenNI and other image collection and analysis software to recognise the objects around robots and the gestures made to control it. BeagleBone Black is supported with a strong community and is fully open-source, meaning you can utilise its design – if you can get to grips with laying out a BGA package.
While not quite as fast as the BeagleBone Black and featuring an older ARM1176JZ-F Applications Processor, the Raspberry Pi can be used to control a robot or even use a GPS module and USB camera to build an intelligent guidance system for it. With the wide range of expansion boards available for the Raspberry Pi, it’s possible to offload many low level tasks to smaller controllers, leaving the main control unit free to focus purely on data processing and task delegation.
In the one year that Raspberry Pi has been available there has been a large number of robotics applications from around the world, including using the Raspberry Pi to control drones. The Raspberry Pi is also great as a learning tool and boards such as the Gertboard and PiFace Digital are designed to teach motor control and basic robotics. For teaching in schools, the Raspbian operating system makes robotics accessible, whilst the hardware on the Raspberry Pi provides enough GPIO access to make it useful for all but the most demanding robotics projects.
If your robotics project does not require high end Cortex-A series applications processors, and let’s face it, that is probably the case, there are several other options. The Freescale Kinetis Freedom Platform, including the FRDM-KL05Z, FRDM-KL25Z and FRDM-K20D50S boards provide a Cortex-M0+ / Cortex-M4 solution for robotics. You need two PWM channels to run two motors at different speeds, two to three channels to send 10µs trigger pulses for ultrasonic sensors and three to five channels to capture the return pulses.
Freescale's Robot Kit that operates with the Tower System Mechatronics Board is an easy-to-use mechatronics development and demonstration platform. This toolset allows for the science of combining mechanics, electronics and software into an integrated system.
The Microchip PIC16F684 can be used to create an inverted pendulum robot. By implementing positional Proportional-Integral-Derivative (PID) feedback control, the PIC16F684 can be used in an inherently unstable system. An inverted pendulum is used to demonstrate this type of control, consisting of three main parts; the base platform, the pendulum and the controller board. Although this demonstrates the capabilities of PIC MCUs in simple control systems, PIC32 MCUs are capable of delivering complex robotics control systems. Microchip provide a wide range of software support which is extremely useful in robotics development.
Finally, for a great introduction to the world of robotics, Arduino provides a wide range of boards. From the 8-bit Atmega328 on the Arduino Uno to the 32-bit SAM3X8E Cortex-M3 on the Due, Arduino provides a massive selection of software examples and an accessible IDE in an open-source model. The Arduino approach of good design and simplicity has led to its popularity in robotics. The challenge of utilising 8-bit AVR MCUs for tasks which you might ordinarily turn to a 32-bit processor for can be rewarding and enlightening.
Some of the development boards for the above robot designs can be designed and created using CadSoft EAGLE. CadSoft recently brought out a new version of its design software EAGLE 6.4 featuring new interoperability features and improved design simulation.