I want to begin robotics.So as a beginner what micro-controller would be convenient?Arduino or PIC?what type of robots can be built with arduino or PIC? Should I start from just a line-following vehicle?

  • $\begingroup$ You may consider narrowing down the scope of your question. (It is too broad a premise, almost all possible answer will depend on personal opinion.) You may consider what you want to do in future by studying robotics and what resources you have at your disposal at the moment. $\endgroup$
    – metsburg
    Commented Feb 27, 2014 at 4:36
  • $\begingroup$ Is there a FAQ/Wiki to help start from scratch $\endgroup$ Commented Jan 30, 2015 at 1:22

1 Answer 1


Alright, this is my first question that I am answering. I'll try to throw as much light as possible to clarify your doubt. I guess, I'll open the door to many more answers.

Anyways, I am a 2nd Year Robotics Engineering student from Bristol, UK. I started out with an Arduino because when I entered Uni, I had no previous experience with electronics or even coding (zero knowledge infact). So, my uni had us start out with Arduino to get some coding experience with C. We did some coding on an Altera Development Board as well, that was to get us familiar with bit-wise operations for controlling hardware from the register level. Arduino is easier because you don't go into the territory of registers. You have pre-written functions for many operations like reading from sensors, writing to serial port, displaying strings etcetera. My first robot, my team named is Zeus was a helper robot, it's tasks were to follow wall, detect and avoid obstacles, identify and stop at the goal. The last task requires some algorithms to do it efficiently but hey, common, we just started out and so all we had to do was search the entire area, which was a fairly small one. We just had to connect sensors which were ready made and picked from the LEGO Kit and then just program them in Arduino using C. It was easy, the only thing that was difficult for us was we didn't have enough knowledge of C when coding, its easy now that I think back. Now, I am working on PIC Microcontroller, its a level above. Here you have to deal with registers and reading datasheets and configuring ports and yaada yaada yaada. I'd say start from scratch, learn how to use the Arduino first and when you successfully interface sensors with your motors on the Arduino platform which is again easy, then step up to do stuff like sending data wirelessly from a bluetooth back and forth between PC and Arduino. Then step up to do some small projects which will serve as foundation for the big stuff like line-follower robot. It's not as easy as the word sounds. It could be fairly easy on an Arduino but once you get into the discrete platforms like Atmel and PIC, you will deal with much more deeper levels of coding so to keep you strong for that, work on the Arduino a fair bit and then step up to the more complex MCUs like Atmel,PIC, Altera and so on.

I hope that answers your question a little atleast. I might have missed something, let me know, if you need more clarity on a specific issue.

  • $\begingroup$ thank you,it has helped me a lot as a beginner.Now,I am a computer science student.I've formed a group consists of an electronics student and a mechanical engg. student.So how can we distribute our works among ourselves as a beginner according to our areas of expertise? $\endgroup$ Commented Feb 27, 2014 at 8:41
  • $\begingroup$ Depends on the project actually and the capabilities of your team members. For example, I am currently doing a project and I have three Electronics students and myself, Robotics, so I divided based on the strength of each of the members. So my strength is alround but I use my brain a lot, so I took up coding and another guy as well. Now from the other two, I gave one partial coding and sensor and main board prototyping and the last guy PCB design and prototyping. $\endgroup$ Commented Feb 27, 2014 at 11:02
  • $\begingroup$ In your case you could have that your Mech friend good at Math and mechanical design or if he is adventurous then even some coding in C, your electronics guy might know some assembly, ofcourse electronic design and prototyping, and yourself some coding and if you are adventurous as well then you might be an allrounder. I don't know your friends, you should give work based on what they can do not their area of expertise, well expertise also plays a role but what they can do preceds expertise in priority. $\endgroup$ Commented Feb 27, 2014 at 11:07
  • $\begingroup$ Now I'm telling about us.The electronics or mechanical guy is not so good at coding.They are interested rather in hardware part.I am OK with the coding part and also interested in the hardware part.So now what should we do?Will they start learning the coding part? $\endgroup$ Commented Feb 27, 2014 at 13:10
  • $\begingroup$ I wouldn't know if they would put an effort into learning how to code. It's better to not do that, if you can code, then just take up the task and do it. If you can do hardware as well, take up a small share of hardware along with the others and do it. Obviously the Mech and Electronics guys would want to hardware because they are better at it. So let them be. Just make sure that you distribute based on strengths and one member's strength makes up for the other's weakness so that the team strength is balanced. :D $\endgroup$ Commented Feb 27, 2014 at 19:34

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