Arduino and working with code libraries

When you start out with the Arduino microcontroller, you can get alot of actual robotic work done by simply loading in someone elses computer code (legally) and using it to move a robots arms and legs around.

So at first even if you know almost nothing about computer programming you can simply learn how to insert some code into the Arduino box which gets plugged into your home computer and away you go.

Perhaps for this reason alone that it is so easy to get work done, we have countless hardware engineers considering the Arduino as a non professional tool.

Many hardware designers say that the Arduino is great for fast protoyping of projects but definately limited in its software and also limited in its i/o ports and built in devices.

They say that the Arduino is not for any serious hardware design and that a better choice is to use boards like those from the ST company with boards like the STM32F4 Discovery or its bigger STM32 Nucleo 64 port brother.

Lets take a moment to explain why you would use an Arduino microcontroller versus when you would use a more powerful full computer like a Raspberry pi.

An Arduino is has more hardware plug ins than the Raspberry that allow you to control electronic components like motors, lights and sensors right away and build robots.

The Raspberry Pi has fewer built in ports to plug electonic parts into and is viewed more as a programming platform to develop code with. (code like Python, Java, Scratch, Node red)

It is usually set up to run the more professional coders operating system linux with either the version called Raspbian or Ubuntu.

Linux is more complicated than Windows but real programmers use it and then access code on places like Github where they can keep track of their code changes and share code with a team of programmers if it is a large project.

We will shortly define some of the terms here used like ….the program itself called a “sketch” (don’t ask me why)…and the Open source movement where people around the world write and modify software so others can use it free (for non commercial use).

The languages that get put into the arduino or the raspberry pi (which is more of a full blown computer than the less powerful Arduino)…C C++, Python etc.

Later you can learn how to access software up in the cloud or to work with specialized software environments that every major robotics company seems to create to control their own robots. You will see Hanson Robotics has their version of this as does Engineering Arts and even the widely known and exciting 3d printed Robot InMoov from France. There is also the Synthiam software and EZ Robot from the exciting company which once hailed from Canada.

Canada has had a long standing tradition of technology excellence especially at the University of Waterloo. A pioneer in the toy industry at Wowwee Mark Tilden created his exciting line of robots in the late 90s and is doing more exciting and amazing stuff today! Check out his 1990s Robosapiens and Roboraptors which were certainly the robots which created the most excitement in the robot toy industy back then and even today. People scan Ebay all the time to find a Wowwee toy expecially the Monkey head and the Elvis bust which is often stripped apart and made to move even better with newer servos and robotics controls inside!

A great site to learn more about working with the Arduino from both a hardware and software standpoint is the Arduino playground.

Tod Kurt has some amazingly clear explanations on his websites about the Arduino and also gives amazing tips about using IC12 devices like a WII remote control/nunchuck and how to plug them into your Arduino!

You will eventually come to a point in time where Arduino boards will not handle the advanced robotics task at hand.

This could come when you begin to get into object vision and perhaps want to use OpenCV with a camera.

Arduino does not perform as well with a camera as Raspberry Pi does with a Pi camera or some webcamera.

We must remember that a Raspberry Pi is a full blown computer and can run an operating system while Arduino is only a very powerful microcontroller that makes it easy to add sensors and motors and other electronic components.