I want my robot to contain about 20 MB of data or a little more, this will be mostly in text, some pictures so that it can recognize one or two particular objects.

So obviously, I want a camera connected to it and I want it to be able to save images (no need to display them, just save, I would access them through a PC later. However, I do want it to have an output text screen, i.e.: I want it to be able to display text on a screen, just plain text.)

I also want it to be controlled by speech recognition, so it has to be able to accept voice input. Also, iI want it to be capable of producing voice output, but only one or two prerecorded sounds.

Lastly, an infrared sensor will be used for distance gauging and a push button one for contact.

Summary of needs:

Microcontroller and parts required to:

  • store at least 20 MB of data, text (the microcontroller needs to be able to access this text and run algorithms on it, GET data only, not change it), and images (images only for image recognition)
  • allow saving images taken by the camera
  • speech recognition as input
  • output audio (only one or two prerecorded sounds)
  • output plain text on a screen
  • equip an infrared sensor for measuring distance and contact push buttons for detecting contact

If relevant, I am using tracked wheels, two DC motors, the robot will move upon detecting an object using the camera. I will decide what motor controller to use when one of you good fellows let me know what microcontroller would be adept for my wants.

Note: for speech recognition input, I will use an advanced sound sensor, and for the infrared and push button sensors I obviously know what I'm using, same with the camera.

I only mentioned these ones so you would know what I need the microcontroller to be capable of to use. But as for the data storage and saving photos and screen, I have no idea what I can use as I have never used anything similar in a robot before.

  • $\begingroup$ Have you considered using a Raspberry Pi? $\endgroup$ Sep 29, 2016 at 20:51
  • $\begingroup$ Welcome to Robotics @modernholmes, but I'm afraid that Unbounded Design Questions are off-topic because there are many ways to solve any given design problem. We prefer practical, answerable questions based on actual problems that you face, so questions which ask for a list of approaches or a subjective recommendation on a method (for how to build something, how to accomplish something, what something is capable of, etc.) are off-topic. Please take a look at How to Ask & tour for more information on how stack exchange works. $\endgroup$
    – Ben
    Oct 1, 2016 at 0:42

2 Answers 2


I would consider using a Raspberry Pi. It certainly has the required memory, already has audio output and enough performance to perform image processing with. You can easily interface a simple 2x16 character LCD with it and the camera would not be a problem either. To control the motors you will need PWM, which is available on the PI, for example using this kernel modul from Adafruit.

One thing you will require is an external ADC so you can interface an analog infra red sensor and it is needed for the audio inout too. Or for the audio input you can use its I2S interface as well.

As for the microcontrollers.

For 20 MB of memory an SD card would be the easiest way here, which you already have at the PI. Regarding the audio, there are some with I2S interface but you would certainly need additional hardware to play audio or receive audio signals. An LCD, IR sensor and push button won't be a problem to any currently available MCU. Adventage is that the ADC is already built in.

All in all I would go with the PI.

  • $\begingroup$ Thank you so much. As for the 20 mb, if i was to use a microcontroller i meant the 20 mb+ would be provided by an external data storage unit. $\endgroup$
    – Rakan
    Sep 29, 2016 at 21:26
  • $\begingroup$ but if the raspberry pi fits all my needs and can be connected to a motor controller just like a micro controller, then im definitely going with that. but just one problem, you mentioned a 2x16 character LCD screen, i actually want the text screen to be able to display much more than that, i was hoping for something the size of an ipad mini or ipad screen. So i just want to make sure if i can i use a bigger LCD display screen, perhaps something like this robotshop.com/en/28-tft-lcd-display-module-raspberry-pi.html ? $\endgroup$
    – Rakan
    Sep 29, 2016 at 21:34
  • $\begingroup$ Yes, if you have the budget you can definetely go with the LCD you linked. $\endgroup$ Sep 30, 2016 at 8:38
  • 1
    $\begingroup$ I would not use Raspberry PI, since it has problems with real time operation. I'd rather use BeagleBone, that should be more suitable for your project. Check this out here. $\endgroup$
    – Szczepan
    Oct 4, 2016 at 1:15
  • $\begingroup$ Also, that is the main reason why Your question should be marked as off-topic. There is no correct answer and your problem may be solved in thousand ways, as @Ben mentioned under your question. Consider more precise questions. $\endgroup$
    – Szczepan
    Oct 4, 2016 at 1:19

From a practical perspective, usage of Beaglebone Black is amazing (although you may end up with image capture issues). It has two PRUs and quite a lot of GPIOs if hardwares are to be interfaced. If image recognition can be done with costly cameras which support h264 compression format (like Logitech c920), Beaglebone black is the clear 'winner'. Else, according to what I have heard, dual-board systems like UDOO are amazing if ease of programming is the main concern. Raspberry Pi is extraordinary if image processing is the sole focus.

Reference: Comparison of embedded systems

(Note: I have ignored some of the nice boards which do not have huge communities. Odroid, PCduino etc are in that list)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.