Let's Make Robots!

Arduino vs Picaxe

Should I go for Arduino or Picaxe for my next robot?

(EDIT: Please note that this is a very old post, things have changed :)


Let´s compare:

Scalability:
******************
Picaxe run on many different chips, all from the company called Microchip.
They range from 8 to 40 pins, and is available in surface mount as well as ordinary housing
Many different pre-made project boards are available, and not only those made by "The Picaxe-people"; Control 3 servos and some ins- and outs on something smaller than a machbox, at a very small price, and up to large 40 pins projects.
******************
Arduino is possible to do in many stange ways, quite diverse, even add it on a T-shirt etc. But for robots the most applicable would most likely be the 28 pin Diecimila with ATmega168. Only this has no motor driver on it, so you are basicly stuck, unless you buy the komplete motor kit, but then..

******************
The proto board for the picaxe is valued high, it actually makes the difference - you can build a robot just by adding motors and sensors, it is robot-ready!

Picaxe: 2 points
Arduino:0points

==================


Speed:
******************
Picaxe can run from 4 to 16 Mhz, but if you plan to use Picaxe Basic, you are best off using 4 Mhz
******************
Arduino runs on 16 Mhz
******************
Although not many robotic projects will have a processor- speed-issue (or they should use co-processors if speed really did matter), and although the Picaxe can run at the same speed, Arduino wins the speed-contest

Picaxe: 0 points
Arduino:1 points

==================



Programming language, posibilities, scalability

******************
The Picaxe language is easy, yet it is quite powerful, and plenty for most robotic useage, and has a wide area of actuators and sensors directly supported.

******************
Arduino is, however, more powerful than the Picaxe set of instructions, supports floating point, is documented on how to interact with all sorts of things. But if you just want to control servos, motors, sensors etc that Robots are often made from (and not MIDI-devices, Symbian Phones etc), Picaxe is a much more focused language. To read a temperature, you will have to write dozens of lines with Arduine, do bugtracking, wiring etc. With Picaxe you merely write "Readtemp and hook up the sensor", same for servo, Picaxe is just "Servo to this and that", Arduino is several lines and configurations.

******************

Picaxe: 1 points
Arduino:1 points

==================



Building speed - time from you recieve your materials till your robot is working:
******************
Picaxe is "plug and play" - you get up and running in no time, all included. The language is so easy, your dog can code it, yet it is quite powerful, and plenty for most robotic useage.
******************
Arduino an open source project - you will spend a lot of time before you get from 0 to 100, all included, and waiting for all the packages. The language takes some time to get into, is based upon Alpha software, it is more complex than Picaxe basic, which is in version 5.
******************

Picaxe: 1 points
Arduino:0 points

==================

Number of servos controlled and other perperials:
******************
A picaxe 18 (smaller than 28!) can control 21 servos on a standard board

Picaxe uses one-liners to communicate with servos, serial, I2c and every other protocol used for typical electronics and robot-building

******************
Arduino can "only" control "up to 20" servos, and uses more complicated code for doing the same protocols.

******************
Picaxe: 1 points
Arduino:0 points

==================

 

OS for programing-platform:
******************
Picaxe is supported on Mac OS X, MS, and Linux.
******************
Arduino is supported on Mac OS X, MS, and Linux (with some tweaking)
******************
For a wider selection of platforms, Arduino wins.

Picaxe: 1 points
Arduino:1 points

==================



Price, pre-made protoboard with chips included:

******************
Picaxe 28 pin, incl darlington & Picaxe 28X £16.01 (inc. VAT)
******************
Arduino Diecimila 28 pin incl ATMega168 £18.51 (inc. VAT)
******************

Picaxe: 1 points
Arduino:0 points

==================


Total:

Picaxe: 7 points
Arduino: 3 points

Conclusion must be that Arduino should be used once the cheaper and faster to get started with Picaxe is no longer enough for your creations, but only if you want to do some more hard-coding to peripherals and soldering yourself.

Of course, if you just hate Basic, there is no option in Picaxe!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Oh :) Just saw - yes, your quote also describes the "scratch pad" etc :) I stopped reading before, when I came to the talk about limited variables, went on to read what else YOU had written :)

As said though; Way too complicated for me, not necessary so far. Am just making robots, not fuzzy logic or neural stuff, but love to read about yours if you do so! (and I am sure you should chose a stronger CPU then) 

/ Frits

Hi.. .. "CowGod"??!? :D

Thanks a lot for all the kind words. Though I am sorry that you call LMR "my site" - this was never the intention. Only, I am the one posting most robots so far :) But just for the records; I am not going for LMR to be "my" site, please take over out there, join in if you want to be a web master etc as well!!

Wello.. Regarding the variables..

 

In YDM I have 10 "bytes" left that I do not use.

 

Just checked; In the chip I use (think it is 28x1) There are 26 available as bytes, or I could use them (all) as just "bits", that would give me 208 - or I could use them (all) as "word", that would give me 13.

Apart from this, there is the possibility to "peek and poke" into memory areas. That is, you can assign areas in the memory with values and take it out again. It should be quite smart, as there are some "counting, and flag-setting" possibilities in that, I think.

But I have never used these, it seems too complicated, and I never ran out of variables :D

 

I am aware that if you come from a world of "computers", or more "math-happy" "systems" (boy this is hard to explain and get the right angle to, English being my second language) - you will find the Picaxe limited. Also because there is no floating-point.

 

It truly is a mater of taste; Personally I dig the limitations, the little easy but cute universe. This is not coding a laptop, it is coding a tiny chip, for gods sake :) LOOOk at the little thing, so fragile and easy and cute :D

If I wanted to get the milk out of the fridge, I could just go get it - but now I spend (imaginary) a month making a semi-functional robot that can (almost) do it, if I place the milk the right place :) having a fast or comprehensive chip is not what I go for, but an easy and fun universe to create in. It is like being fascinated by the strength of an ant; Man, if you want something really strong, get a car, or a tiger or a dog or something..

 

If you are going for strong mathematics, or high speed, or coding in C# or.. You should not go for Picaxe.

If you go for building a small homemade simple robot, getting finished, being creative, trying things fast - more result than programming, more result than knowledge about a certain language or chip - you should go for Picaxe.

To say something I am sure I will regret, because it is stupid to say, but.. I would say that Picaxe is the "Apple Mac" of microcontrollers, where something like Aurdino is "DOS". Yes, it is true that you cannot write your commands as you want them, but if you just want work done fast, fun and easy, the Mac is your friend.

 

I hope you understand :)

I have never had any trouble with too few variables on the Picaxe. And if I did, I am sure I would not notice, because it would be part of the fun; I think the little PIC is cute! And just as I know it is slow; It stops to make a "BEEP", and just as I know it lacks a lot of really nice-to haves, such as negative numbers, dimensioned variables etc etc - I just LIKE this universe. For what it is!

When a byte goes higher than 255, it resets to 0. That is a part of the game, those are the rules when you "play Picaxe", it is little, cute, fun, effective, fast :)

 

The YDM would be much better if I made it with "real parts", perhaps some Roland-stuff etc. But it was SO fun to make, like a retro computergame with lots of soul VS some factory-game to a xbox..

- And every time there is a new feature released for the "stupid little picaxe" I am happy, though it is stupid, because I know I could just use a complete PC, hooked up to H-bridges and servo-controllers if I wanted more power.. (or get the milk myself)

 

I would love to se some (more) non-picaxe projects in here. But to my temper there is no real alternative; Picaxe IS the cheapest, and fastest if you want to build quickly made, simple robots - just what I like. Someone should try to make this walkthrough with anything else. Even Lego. Go ahead, try it, not just take a quick look, but get into the details.. Cost is higher and time is more with anything else. To me this also means that fun is less. To my knowledge nothing is as fast to get from 0-100 as the Picaxe with this kind of small projects.

In fact I think that Picaxe is the only system simple enough to allow real walk throughs on web; I have never seen any other on how to make a robot that anyone can do with the powers and yet ease and low-price - have you? Show me! I put this way above the ability to chose weather my program is cycle-based, unlimited variables etc.

I think I will be sad the day they release Picaxe with unlimited variables :)

/ Frits

Hey, Frits. I'm Dan, and (like many, I imagine) I discovered your site thanks to the YDM video. Thanks a lot for your work fostering the robotics community, it's clear you're really enthusiastic about building robots (just like I am) and your site has been very entertaining and informational to read.

So far I've been working with a Basic Stamp 2 learning board (the Homeword Board), and it has been a great learning experience, but it's got a big breadboard attached which makes it unwieldy to fit into robotics projects. I've been wanting to step up to a more "finished" board, something intended for actual use rather than experimentation, and ideally something with a little more capability. Your post has me considering the PICAXE and the Arduino. You certainly make the PICAXE sound like a good step up without adding too much complexity, but I was reading about it on Wikipedia and was surprised at this statement:

 

Variables

The programming language provides 28 bytes (X1 parts) or 14 bytes readily available to the programmer. This memory can be manipulated in measures of bits (bit0-15), bytes (b0-13), and 16-bit words (w0-6). The bit, byte, and word variables all overlap in the same 28/14 bytes. Every two byte variables overlap with a word variable, so b0 & b1 make up w0, b2 & b3 compose w1, and so on. The bit values bit1 - bit7 overlap b0, and bit8 - bit15 overlap b1 (which also covers w0). This can be used to carve apart variables, or simply make the most efficient use of the limited memory given.

Variables can be given meaningful names for use within a program through use of the SYMBOL directive. The SYMBOL directive can also be used to create named constants.

In addition to the pre-defined variables, all but the 08 have access to the internal SFR (Special Function Registers) of the PICmicro they are based upon, allowing much of the unused SFR to be used as Random Access Memory (RAM) during execution. This can be used for temporary storage of variable values (using PEEK and POKE) and allows re-use of variables within subroutines and other code sections. Most parts have a 32 byte span free for use.

The PEEK and POKE commands can also be used to implement byte arrays and software stacks.

The X1 parts also have an extra 128 bytes of 'scratchpad' memory available. This can be accessed directly (PUT and GET commands) or indirectly via the scratchpad pointer '@ptr'.

 

 

Really? There's only 14-24 bytes of memory available for variables? That seems like it would be really limiting if you're trying to build anything significantly complicated. And yet, it sounds like the code for your YDM is pretty complex, with all the navigation and beat composition and timing the sticks to hit at the same time and everything. Is the memory issue something you have to struggle to work around, or am I misunderstanding something? Thanks.

Imagine you are to build a robot.

You will have to start interpeting this kind of threads a lot:

http://www.societyofrobots.com/robotforum/index.php?topic=3653.0

*** 

Using Picaxe, you plug in a servo, and write

servo 1,75

wait 1

servo 1,225

wait 1 

And that is just it, it works :)

..now what would you rather? 

/ Frits