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

3 Likes

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.

1 Like

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).

There are microcontrollers that are arduino based and much better than the uno. And also boards with suppirt for Python. But when powet cuts out on the pi for a short time (because of a heavy motor for example) you will have to wait much longer until its booted up if the sd card isnt corrupted. But yeah, as soon as a camera comes to play,the pi is better. But i would still take a microcontroller to access the motors etc. And the pi to coordinate Everything.

Yup, the corrupt SD issue is a pain.

Which Arduino-based board is a good one?

Thanks drtitus,

I am very familiar with Python and have some knowledge of C. It would seem that Raspberry Pi would be better as I don’t want to be limited by libraries and I would like to be using cameras further on into the project.

Thanks again

Thanks unix_guru,

I’m planning on making a small humanoid type robot so would need motor control and basic sensors to begin with. Then I would like to develop it so it is more advanced with cameras and possibly motion sensors.

Is it difficult to have the Raspberry Pi as the main circuit and link/ control the Arduino with it? Or is it more efficient to have the Raspberry Pi control the whole robot?

Thanks again

So if I started on the Arduino then when I’m ready for advanced stuff, would it be easy to transfer the programming over? If also like to ask if it’s difficult to get them both to work together as a join circuit (Raspberry Pi for controlling andArduino for motion and outputs)?

from what i’ve seen, there are many tutorials online on how to make them work together so that would not be a problem.

Might not be what you’re looking for but I’ve loaded the main OS on my raspberry pi onto an USB flash drive, and left the bootloader on the SD card, and that helped with corrupt SD card issues immensely.

If you have never used or programmed either. Arduino is going to be easier to understand and learn. Once you have the basics though you can run the same sketches on a pi. Can go here to learn about that.

GitHub - me-no-dev/RasPiArduino: Arduino Framework for RaspberryPI

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.