Should I start with Arduino?

I am a 2nd year Mechanical Engineering student, and I'm interested in robotics.

I want to gain expertise in robotics, to be able to know robots and electronics inside out, and eventually design my own robots.

My concern with Arduino is that it's possibly too "amateurish" (according to the internet). People say that it takes care of the nitty gritty technical aspects from you and uses "black boxes" to simplify the process of building a robot, kinda like Lego Mindstorms. I don't want black boxes, I'm interested in learning how every little thing works, because this could be a major career path for me in the future.

So my question is, is Arduino simply a fancier version of Lego Mindstorms? Will I be able to develop advanced cutting edge knowledge of electrical engineering if I gain expertise in Arduino?

My concern with Arduino is that it's possibly too "amateurish"

You see a lot of rubbish.
The arduino makes starting easy but it can be as complex as you like. It is rather like saying that you don't want to buy capacitors but you want to make the yourself so you understand them.
Everything is Lego nowerdays, where do you stop? Do you buy a computer or do you make it? If you make it what do you make, do you make the CPU with logic gates? Do you make the logic gates with transistors? Do you make the transistors from sand?
You can not hope to understand everything. Have you come across the phrase Standing on the shoulders of giants.

There is nothing amateurish about it. For sure the Arduino project hosts a large API of code that does make things relatively easy for the beginner; however the Arduino boards are merely a dual role programmer / prototyping board. The workhorse of the boards are fully fledged CPU's.

The AVR ( Uno, Mega, most Arduino boards ) is a complex but easy to learn architecture.
The Arduino DUE uses an extremely complex architecture ( ARM ), where only the learned are able to utilize it maximum potential.

I would say the people claiming the Arduino as amateurish did not have the programming skill to utilize the CPU outside of the Arduino API, therefore relied upon higher-spec platforms to do the same job, but on a faster clock.

People say that it takes care of the nitty gritty technical aspects from you and uses “black boxes” to simplify the process of building a robot, kinda like Lego Mindstorms.

Not true. Arduino does provide many useful predefined software functions (like analogWrite() or digitalRead() ) but you are free to not use such functions and write your own functions utilizing any of the features that the underlying AVR microcontroller has available.

So while the arduino platform was designed for ease of use by beginners, it in no way forces you to use the arduino supplied functions and libraries, you are free to go as deep as you wish. You also have the full capabilities of the underlying AVR-gcc C++ compiler at your command. The only real limit is the memory size and clock speed of the underlining AVR chip used on a specific arduino board.


Sure, you can buy "black boxes" (shields) or build your own circuits. You can use the built in functions and libraries or you can program in assembly.
Complex or as simple as you want. That's what is cool about Arduino. My opinion is that only an amateur would think Arduino amateurish.

Hi guys, thanks for the replies.

I've considered your advices and decided to go ahead with Arduino.

I understand that Arduino is just a microcontroller, so I'll need to buy a lot of other components in order to make it do anything.
I'm not very familiar with electrical components, so I'm thinking about buying a starters kit.

So far, I'm considering the official Arduino Starters Kit, though it's a little expensive in canada ($140). I also found a bunch of custom kits from different stores, but I'm not sure of which one to buy. Can you recommend me a good starters kit?

Just to get your feet wet, you might be a lot better off going to "Active" (??) and buying several transistors (2N3904 or PN2222); some resistors, 220, 1K, 4.7K, several ea.; and some LEDs (you pick); a solderless breadboard; a spool of #24 solid-core wire, a nipper and a small pliers.

I'm considering the official Arduino Starters Kit

it is very expensive actually. i could not afford one actually hahaha. what i did was i just got the official arduino board. you can get a clone as well, but preferably get the official one as your first board. not to say that the things inside the started kit is useless, but there are cheaper ways of getting the parts. you can get an lcd shield with a 16 X 2 lcd for just 7 USD on eBay. components such as potentiometers jumper wires are easily available for an engineering student.

If you're a university student, I'm sure you can scrounge some bits from the Electronics Engineering dept. From my experience, they would be only too happy to assist. But in reality, depending on where you live, components are so much cheaper now that what I used to do years ago like salvaging bits from scrap electronics, is no longer viable. It's cheaper to buy a new one.

There is a nice article here:

"Why the Arduino won and why it is here to stay"

In some circles, the arduino is dissed quite a bit, but I really do not care.
(It could be a kind of "we are a band of select few experts, and we really do not like it to be too easy for the unworthy to take part in the fun")

After seeing an engineering friend, who started out by meaning that you should build it all from the bottom, be converted after playing with an Arduino for half a day was really fun. Now he uses it in his programming course.

You can get something working really quickly, and you can keep learning new things (and be amazed over how elegant the old experienced guys/guyesses can write sketches)

It is like a good board game: "quick to learn and a lifetime to master"

Buying components is really cheap nowadays..... but I still check out the electronics scrap for inspiration, cabinets and funny components. Re-purposing things is fun!

I've used the Parallax BASIC Stamp 2, The Propeller and the Arduino Uno and Mega 2560. I have found that although any of these will do most jobs that I really like the Arduino's the best. They are well supported, fast enough for most I/O tasks and easy to use. They are also easy to interface with a Full PC computer using the USB ports if I need a lot of computing power or GUI for controls. In the last two years I have built many projects with them including 5 robots, the Kinect sensor read by a PC to control 300 lb robots and their drive motors/motor controllers safely, interface for reading an analog variable resistor for the throttle on electric vehicles that used motor speed controllers designed for radio control pwm signals, a full touch screen PC based Bartending Machine with 10 different pressurized bottles/liquids and a robot to deliver the drinks, sound triggered color/light organs, Large Fire effects. Oh ya and a commercial product called the Power Pallet from All Power Labs that Gassifies bio mass and uses that Gas to run an engine and generator to produce 10, 20 or 100 KW of electricity. The Arduino reads many pressure and temperature sensors and controls the fuel feed, critical reaction temperatures and functions in the Gassifier and it controls the fuel/air mixture via feedback from an oxygen sensor on the engines exhaust. We have shipped those fully functioning systems all over the world. The Arduinos are a very nice reliable tool..