Go to homepage
6 / 14
Aug 2016

Hi all. I the near future I plan to construct a robot that I would like to start off simple, then add sensors and more functionality to develop it. The structure will be made from 3D printed ABS parts, but my main problem is what circuitry to use.

I hear that both Arduino and Raspberry Pi can be used for robotic projects, but I’m not sure which one would be best suited to what I’m looking to do.

From what I know the Arduino is for simple repetitive tasks, whereas Radpberry Pi is for complex work and software.

My aim is start of with basic mechanisms and movement then develop it into a complex machine. I don’t plan on a deadline as it may take a few years to get it right so would like to know what you guys think I should use. I’m willing to learn which ever is better as long as I know it is the best to use for my purpose. Each seems to have their own pros and cons but what would be best suited to this project? Any advise would be useful. If any further information about this project is needed for the correct decision I’d be happy to say.

Thanks in advance

  • created

    Aug '16
  • last reply

    Aug '16
  • 13

    replies

  • 4.9k

    views

  • 8

    users

I think that it would be best to have both to control your robot because the arduino can be used for motor driving, sensor reading, LED driving, etc while the raspberry pi can be handling the processing (e.g. 3d scanning). It’s fairly easy to program the arduino so it will enable an easy start and later when the time comes you can start working on the raspberry pi and adding new features.

A simple “line follower” can use just Arduino. If you want your robot to “do anything”, you would typically use the Raspberry Pi as high level processing/communications, with possibly Arduino for sensors and motor/servo control. What are you planning your bot to do?

I would suggest you to look into ARM microcontrollers, like the STM32F1 or arduino due. You will fill up the space on the uno fast, but accessing the gpio on the raspberry pi takes much Time.

It also depends on your level of programming experience - the Raspberry Pi allows you to use high level languages which make life easy for you (eg Python) and provide a lot of functionality (for instance you could have a camera and do basic image processing without reinventing the wheel). The Arduino is pretty much C only, and C is not a very forgiving language, especially for beginners. The Arduino also has limited space for libraries and a much slower processor than the Pi, so it’s immediately a much weaker choice. Also the Pi has HDMI and network capability built in, which means you can leave it on your network and program/run it remotely. Compare this with the Arduino which requires you to code/compile/upload/repeat over the USB - even if it takes 30 seconds to do this once, you will be doing it literally hundreds of times as you develop your robot’s “smarts”.

Both of them can blink an LED and turn things on and off. However, the Pi can do so much more. It’s downside would be that it uses more power, and can be unstable if the power drops below 5V (so not great on batteries).

OK, so get this, I saw a couple of youtube videos on the best Raspberry pi projects, and a couple of them were robots right? But all the extra effort went into making the raspberry pi do what Arduino is already optimized to do, which is robots. Raspberry pi is optimized for making things like portable stereos, homebrew playstation portables, and mini AI brains for your robots. They are not so good at moving arms and legs or sensing temperature and optical changes in the atmosphere while running pulse width modulation variables.

Arduino is good at simulating the nerves along the spinal cord, through your finger tips, optic nerves, ears, and controlling your muscles. Raspberry pi is good for making your robot knowledgeable in calculus simulations, storing medical procedures, reading aloud in a robotic voice the works of Shakespeare, or playing the latest mp3 sound track while it sends dance commands to the arduino shield, so that the arduino can order the servos to make your robot do the cha cha.