So I've LITERALLY just recently taken an interest in robotics. it seems like a fun, relatively cheap hobby. That being said i've been programming for 7 years. So Im used to C/C++.
SO would Arduino be a better pick for me? I pick up new languages very quickly (i've had to for college). But with Arduino being Based off C........I figure....it might be better? That being said any disadvantages/advantages to using one or the other?
second:
So we have picaxe and arduino. are there any others? or is that just what people mainly use?
third:
I know Arduino is "based" off C (i think). But....like hard coded language deep down to the core what is it? I know it's obviously not a C language. But deep down what exactly is it? Im not really that familiar with EE/Firmware languages. Is it just Assembly? or MIPS code.......i must admit Im a complete newb when it comes to that. I know some Assembly, but I more just wanna understand how the software works as well.
Thanks and sorry for the multiple questions hehe :)
There are many other types of microcontroller available, but most are more suited to industrial applications, whereas PICAXE and Arduino are designed for learning and prototyping. There’s a huuuge list of pros and cons between the two so I won’t go into that here, but there’s plenty of comparison available around the web and here at LMR.
At the machine-code level, everything runs on RISC/MIPS/Assembly/whatever. This coding is powerful and efficient, but it’s always device-specific and you have to know the exact details regarding the hardware you’re using. For many typical hobbyist applications code is slower to write than it would be in a higher language like C.
When you write Arduino C, or PICAXE BASIC, the compiler takes that code and converts it into RISC, which is then downloaded to the microcontroller as RISC hex code. As long as the compiler knows what device you’re programming it can take a lot of the work out of the coding for you.
My suggestion would be to pick up an Arduino board and go from there.
We’re a recent startup that has been developing and are starting to sell a similar product called the DyIO. We’ve taken a different approach then the Arduino and similar systems where you’re writing low-level C on a microcontroller. Those systems work very well with developers who are interested in the low-level details and want to work in that space, but for developers who are just starting or who are more interested in developing systems, it can be a little rough. With the system that we have, you can work with Python or Java and just tell the controller what to do; it handles the rest. We are even working to bring a Excel and Matlab version of the software out so that developers can focus on the higher level goals of the system.
1. As you are familiar with c you have quite a few options. Arduino would be a better choice if you feel comfortable enough with C. Since picaxe uses basic, you’ll be a bit more restricted, but it’s still powerful enough that it can be used for some pretty complex bots. I think a lot of people start with picaxe, then move on to the arduino.
2. There are quite a few others…just need to look around. This will give you a lot of options but there are quite a few more.
3.I think Telefox answered this question best so I refer to his posting…
Having been involved in programming the last 30 years (started with a Sinclair ZX80 back in 1981), and have been a full time programmer the last 15 years. I would like to point out that programming an imbedded devise is completely different form working with high level programming on regular computers. At some levels it’s extremely satisfying having a servo react on an input from a sensor, on the other hand the primitive programming language and memory limitations can be quit frustrating.
As the field of robotics expands, I feel that the question will come down to “What are you really trying to accomplish?” If you’re interested in low-level tasks then working at a microcontroller level is for you. If you’re looking to develop more of an application or integrate with higher level processing (i.e. openCV, matlab, etc…) then working at that low of a level may not make sense.
There is a lot of room to grow on all sides of the divide, but building from the ground up every time doesn’t always make for the best experiences or projects.
Texas Instruments just released their take on microcontrollers, the Launchpad. I don’t know about their programing language, but for less than $5 it seems like it’s worth a try…