Which micro-controller etc should I buy?

As some of you may be aware, I'm still very new to this pastime, both with regards to electronics and programming, but have built a couple of bots which have been reasonably successful, using an Axon II Microcontroller, shown here http://www.societyofrobots.com/axon2/.

I am finding it extremely difficult to get on with the C language (I'd never even heard of it until about 3 months ago), but I do seem to be able to "read" basic fairly easily.

I notice that a lot of people use various types of MC, including Picaxe and Arduino etc, but I know nothing about them.

I think I want to buy a Picaxe, which presumably uses Picbasic, but need some advice.

The Axon II is, as far as I am concerned, a very good MC with lots of facilities already built in, and an extensive library for various different sensors etc, so I really want a comparable Picaxe MC plus all the ancilliaries needed to be able to program it etc.

Can someone please tell me everything I need to buy (I'm not worried about cost, initially), that will allow me to have the same sort of functions as I have with the Axon II.

Please chip in with any suggestions you may have.

Thank you.

ok.

Well, right off the bat…

Picaxe speaks picaxe basic which is as close to “looking like english” that you are going to find. It is easy to pick up, the commands make sense and most, if not all of the “nuts and bolts code” is hidden from you. I.e. if you are using I2c communication, all the high/low clicking of the lines, the ack bits etc. you will never see or need to deal with --there is just 2 simple commands to set up your slave and then send it data. This is like a complicated engine in a modern car --which IS complicated, but had nice plastic covers over all the complicated stuff, and all you can/need to see is simply the dipstick and oil fill cap --the only stuff that is really important to the end user. Picaxe has the best, most clear and simple manuals as well. That being said, there are no libraries, and the chip itself is a bit limited in terms of raw “thinking power”.

Arduino would be next on the list. The code is not too hard to get a grasp of and is no harder or easier to learn than any new language to you. It has a TON of libraries, a TON of communites and a lot of “accesories” including all the shields available that simply snap right on top of your board. Also, Processing is coded in a language that is very, very similar to arduino so when you get to the point that you want your lappy to talk to your robot, you will have two languages that are quite happy talking together. --BTW I have had Picaxe talking to processing for a while now and it is not that bad… it is just that arduino/processing is a bit more “standard” than picaxe/processing. Off the shelf, a arduino thinks at twice the speed of a picaxe. I think the new UNO is pretty cheap now too.

I should throw into the mix, the propeller chip as well. This guy is in it’s own catagory in the fact that it is 5 times faster than the fastest arduino, has audio and video (video to a tv or monitor) out straight from the board, and contains (8) brains inside of one chip. This guy can literally do 8 things at once instead of one at a time like the rest of the chips. I have been using this chip for more than a month now and don’t think I will use anything else from now on.

 

.NET

As the .NET Micro Framework evangelist in here I feel I have to add FEZ Domino/Panda and Netduino to the list.

What really sets these devices apart from PICAXE and Arduino is the debugging capabilities. The debugger in PICAXE is rather useless as all it gives is the values of the 14 bytes of RAM and the state of the pins. There is no way of stepping through code and see what is going on. On the Arduino you have a serial.print to get some sort of output but if you’re doing work that needs the serial port you’re rather stuck. And cluttering up the program with print statements to get some feel of what is going on is rather tedious.

.NET Micro Framework on the other hand lets you debug directly on the chip as the program is running. You can set breakpoint wherever you like while the program is running and execute line step by step to see what is going on. Examine variables and arrays to get live data directly from the program.

Programming is done in Microsoft Visual Studio C# Express (free) and is by far the best programming environment out there.
Everyone seems scared of C# and will rather work with C++? But if you ever have worked with things like strings, arrays and pointers in unmanaged C++ you’ll love the high-level methods available in C# NETMF. C# isn’t all that different to C++  but more strict and robust.

Anyway, what I feel it really boils down to is what type of devices are you planning to build? If your ultimate goal is a small avoidance robot you can go a long way with a PICAXE, is it a maze solver then you have more freedom with Arduino or NETMF. If you see more complex systems in the future with things like GPS, multiple serial communications, XBee, data logging etc. I would go for a .NET system as that will allow you to grow in years to come.

There is really no ‘ultimate’ microcontroller. They all serves different purposes. I love NETMF but at the moment I’m working on a PICAXE / 555 timer project :slight_smile:

I would say stick at it and

I would say stick at it and continue trying to learn C if you are serious.  Some of it, especially all the funny brackets, can be intimidating, but it is a great foundation for learning almost any other language.

It may be an idea to buy an arduino though, since it keeps the robustness of C while abstracting some of the more frustrating parts for newbies (timers, ports, registers, etc).

BASIC is OK for hobbyists but is really only intended for beginners (they dont call it “Beginner’s All-purpose Symbolic Instruction Code” for nothing)

I was going to use axon to

I was going to use axon but the prices were a bit over my budget but check out this tutorial http://www.youtube.com/watch?v=51TgbvcNwCQ&feature=mfu_in_order&list=UL and this http://www.youtube.com/watch?v=Rgjo_33rH0Y&playnext=1&list=PLBABBEA23AECDA9A5&index=1 he has clear instructions it is pretty cool and good luck

Thank you all so much.

Taking the time to advise me so informatively, is much appreciated.

CtC, tell me about modern cars! I just shut the bonnet (hood) nowadays. Years ago, I used to know all about cars. I don’t think I’m ready to need the propeller just yet, but thanks for the advice - something to think on in the future.

Geir, thanks for the advice, but I actually think that if I’m going to have to learn C, I may as well stick to the Axon. I have looked at the FEZ boards, and think that maybe that again may be something for the future.

UltraMagnus, yes I understand what you are saying, but again, as I am so new to this, I need to learn more of the actual “mechanics” of robots, and C seems to be holding me up. I am quite comfortable with Basic, however.

robotmaster18, yep, seen all the tutorials, and have managed to implement some of the techniques, but I still find it daunting.

Anyway, after speaking to 'er indoors (who controls the purse strings), I’ve been given permission to spend a few bob.

As far as I can tell from using my experience from you guys and that picked up over the last few months, I actually think that the Axon is a very good board, which will enable me to control much more complicated robots in the future without the need for add-on boards etc. I think I may keep it on the back burner for now, and invest in something less complex.

So, as I feel comfortable with Basic, I’m going to buy a Picaxe, as I especially like the look of the programming interface, which will hopefully teach me more about the “programming structure” needed for these robots.

I am also going to buy a Uno, which although I may not be comfortable with the language, at least there is a massive following/support etc out there, to help me perhaps learn a bit more about C.

Thank you all very much for your help, and please, keep up the good work.  :slight_smile:

here is a design for a bot

here is a design for a bot drive using a AVR mega8 including code exampls, I prefer the AVRs and coding in C because they have a really good selection of cheap chips and C is very powerful.  I think the hardest thing to understand in C is pointers but there are some good books on it.

http://sites.google.com/site/angophora/projects/mobile-robot-motor-drive

Many thanks for that,

Many thanks for that, angophora, I’ll have a look at the link.

I have to say, I do find C quite intimidating, but I am learning :slight_smile:

updated bot motor drive

the site above has moved and I have updated the design.

http://sites.google.com/site/angophoraelectronics/projects/mobile-robot-motor-drive