I am planning to produce and release a robot to the market and also worked with different platforms for development such as arduino,pic,micropython/python. But now I want to do this professional. I just want to know what will be the best microcontroller to produce a bot for the market. Language will not be a great matter but it's better if python/js is a choice.
-
2$\begingroup$ an automatic coffee maker is a robot $\endgroup$– jsotolaOct 10, 2020 at 22:33
-
$\begingroup$ @Iresh Madhusankha, it depends on what do you mean by "the market". Yesterday I visited a local electronics hobbyist shop and surprisingly found that they have a new shop window showing things I never saw in the last couple of years. They used to promote Arduino and give seminars on Arduino related shields etc. But now they seem to forgot Arduino altogether and only promote BBC MicroBit and Rpi (both can do python). They also sell things very new, such serial bus servos (a small version of RS485). Perhaps too many poor kids are being locked down and could not go to school's electronics club. $\endgroup$– tlfong01Oct 11, 2020 at 2:10
-
1$\begingroup$ Welcome to Robotics Iresh Madhusankha, but I'm afraid that opinion polls are discouraged on stack exchange. We prefer practical, answerable questions based on actual problems that you face, so questions which ask for a list of advantages & disadvantages for different options are off-topic. Please take a look at How to Ask & tour for more information on how stack exchange works. $\endgroup$– ChuckOct 13, 2020 at 17:43
-
1$\begingroup$ Do you want people to reverse-engineer your robot? Are you going to expose an API for them to use? Is this open- or closed-source? The "best" product in an engineering sense is the one that best optimizes your needs - cost, durability, footprint, interface, etc. You have to define what you need from a processor before anyone can tell you what's best, but really you just go to Digikey, tick the options that are important to you, then sort by price. $\endgroup$– ChuckOct 13, 2020 at 17:44
4 Answers
Some "robots" can be implemented without any micro-controller at all. When I was a child, I created "robots" by just gluing empty cigarette packs together.
There are other robots which are so complex, that a single micro-controller is not enough at all. So the choice depends highly on the product you want to develop.
For any project, when choosing the micro-controller, at least the following have to taken into consideration:
- computational power (including number of cores);
- code flash memory;
- data flash memory;
- volatile / RAM memory;
- communication lines (RS232, SPI, CAN, LIN, ...);
- other peripherals (ADC, DAC, PWM, timers / counters ...);
- price;
while keeping in mind:
- the specifics of the project / product;
- the price of implementing the same features with external components (price of component + cost of implementation);
- others.
So what is the best? The best price, the best computing speed, the easiest development...
Try with the old Raspberry Pi 2, ARM A7 900MHz first. If it is too slow, then you can check ARM R or M microprocessor. If you want to deploy your Python code you need an OS for it. Using Ubuntu on ARM M will be difficult.
There are quite a few ways to go, and opinions vary both by person and by application.
Check out these links to see some examples of this:
https://electronics.stackexchange.com/questions/1199/what-are-good-microcontrollers-available-today
What type of application is your robot release? Industrial? Educational? Smaller home-based? Large non-backdrivable? Developer friendly? Stationary or mobile?
Most large scale, non-backdriveable industrial robots that are mobile use more PCLs and other large Motion Driver power supplies so they aren't always packaged nicely for mobility.
If you're going for a developer friendly robot for your consumer, then a package that uses a raspberry pi or Arduino would be ideal.
C seems to be the go to if you're going for microcontroller programming for embedded systems, so Python and Javascript applications are not very common. If you decide on a microcontroller, learning C will be the best.
Any choice you pick will also depend on how many input/output pins you might need, power supply choices, and speed/memory etc. virolino mentioned some of these above.
In the end familiarizing yourself well with the documentation manual/data sheet associated for your embedded microcontroller of choice, is always an absolute must.
In recommend, some version of a raspberry pi. It is based on a Linux interface, and this allows you to program in any language you please