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!

You could also look at it this way…

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 :slight_smile:

…now what would you rather?

/ Frits

PICAXE Variable space

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.

Hi… … “CowGod”???

Hi… … “CowGod”??? :smiley:

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 :slight_smile: 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 :smiley:

 

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 :slight_smile: LOOOk at the little thing, so fragile and easy and cute :smiley:

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 :slight_smile: 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 :slight_smile:

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 :slight_smile:

 

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 :slight_smile:

/ Frits

Oh :slight_smile: Just saw - yes, your

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

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

Hey, thanks for the very

Hey, thanks for the very thorough answer. And don’t worry about the English, it’s not my first language either (I learned Spanish before English), so I understand. You manage to get your point across just fine :slight_smile:

 

That’s great about this being a collaborative site. I’ll certainly be happy to contribute – maybe tomorrow I’ll take some pictures or videos of the little Basic Stamp-based learning project I’m currently working on. It’s funny – this morning I asked you about variable space in the PICAXE, and then this evening I ran into “ERROR: out of variable space” messages while working on the program for my Basic Stamp. It turns out the BS2 has 26 bytes of variable space, just like the 28X1. I guess limited memory isn’t specific to the PICAXE, it’s just the name of the game with microcontrollers. Well, I guess now I get to practice simplifying my code :slight_smile:

 

Thanks for clearing that up about the PICAXE vs Arduino. The way you describe it makes sense – sometimes you want the power and capability to implement complex algorithms, and sometimes you just want to hook up some wires and say, “Go get the mail, robot.” (or “Run into the wall repeatedly, robot.”) :slight_smile: And although I run Linux on my computer, I can certainly see the appeal of Macs as well :slight_smile:

 

So I think what I’m going to do is just order one of each, and play around with each one. It sounds like different ones will be useful in different settings. I’m a little confused by all the different PICAXE options though – which one would you recommend? You said you use the 28X1. Should I just try that one? Thanks for the input, I’m looking forward to playing with these new boards.

 

Dan

HEY - this could be VERY

HEY - this could be VERY useful to all of us!!

A guy with both BS experience (yes, please do take pictures and give us some hints, I guess you can place it in either components-section or as a walk through) - and who is now going to test both Arduino and Picaxe. That could be marvelous to hear from you!

My suggestion is that you go for the 2 times 28 chips. This seems to be a quite appropriate size; Not too large, but plenty of legs. You ask regarding which Picaxe? Well then this first robot-tutorial should be best source of the Picaxe-setup.

If you want, you can skip the servos, though I recomend that you get the full package. At least you should get the motor-driver, as this on the board is a strong point for Picaxe being “robot-ready” (And I say Picaxe FTW;)

/ Frits

Arduino clearly rules :slight_smile:

I don’t really see ANY real advantages of Picaxe.

The fact that you have to write a few lines of code to initialize a servo is hardly an argument unless you really LOATH programming that much. We’re talking a few seconds of “work”!!

Regarding motors: Buy a Diecimila (20$) + a motor shield (20$) and you’re good to go.

Besides that arduino is more powerfull, flexible in ANY WAY and pretty much as easy to use. In some ways a lot easier…for instance if you wanna calculate something you just do it (Arduino) rather than inventing some workaround to compensate for the fact that you can’t (Picaxe). And you don’t have to worry about having only 28 bytes (or whatever) of variable space.

Regarding sensor readings: You just write analogRead(<no. of ADC pin>) and that’s it.

About servos/scalability: The standard Arduino boards (eg. Diecimila) has 14 digital I/O’s, 6 analog in’s and can control up to 14 servos. If you want more the Mega boards (goes for down to 40$) has 54-70 digital I/O’s, 12 analog in’s and can control up to 48 (!!) servos. There are also ways of expanding the standard boards BTW.

Besides that it took me 5 minutes to get the Arduino up and running. The “hardest” part being installing the FTDI drivers so that my USB ports can be accessed as a serial port.

Interesting I learned something
My brain is easily confused with programming and now got some idea. I think I will stay with parallax for a while. I am using a BS2 but getting ready to jump into the propeller chip this winter. It seems unlimitted and can cover alot. My brain cannot hold too many languages and the Basic stamp is very well documentted. I can tell already the prop is in a world of it’s own. By the way your guys english is fine.

wow thanks:)

Hi People… Thanx for such a good explanation:):slight_smile: as PICAXE stuff is nothing else just PIC microchip which is just “tuned” with special internal software which makes it easier to program but decries its power i decided to learn PIC and C or Asembler language… But now i stucked in between… In some forums people said that C isnt good enough for programming PIC chips but asembler on the other hand is much more harder… In what sense C isnt good for PIC???

I’ve never had any issues

I’ve never had any issues with programming in C for PIC micros, just make sure you get a decent compiler and/or IDE. If you want to get more answers you should create a new forum topic, that way you’ll gt more direct attention from those in the know.

Although beyond most of the

Although beyond most of the persons on this forum microEndineering makes a product called PICBASIC Pro (retails for 250 bucks). It’s a suite of programs that many professionals use to create software for PIC’s. The package has been around for a long time and may well have been the source for picaxe. 

A tiny tidbit on the PIC family of chips. The original purpose was as an interface chip (to allow computers and devices to talk to each other) The name is an acronym for Peripheral Interface Chip. Because they where so easy to program (in very early versions it was refered to as setting up), even at the machine level the product line grew into what is now a kind of microcomputer family.

If you want to program at the machine level it’s well documented (and free) but you would require a programmer and that is not. The picaxe system is actually very inexpensive as long as you are doing small quantities. 

In reality I feel that both systems are not very capable when it comes to complex functions (such as computer vision) for which there are some very good and free languages but have massive requirements . However as an interface they are both excellent although the PIC is easier to work with.

…pickle

 

I know this is an old section…

I think the conditions have changed and there is a new solution USE BOTH! 

I plan on tinkering with the PICAXE 18M2 for a while (and I also love the Arduino!) 

Here is (one) of my ultimate ideas (I have even more! :slight_smile:

I think a modern robot needs all the processing help it can get, my idea is use the tasking capability of the 18M2 to do things like run the motors, drive the servo, keep a lookout for danger and/or whatever you think is useful. KEEP the Arduino as the “main” processor for doing “thinking” that requires more code like route mapping and other “hard” tasks. The “housekeeping” is all done by the 18M2 and you have one super-fantastic robot! There would need to be a (very minimal) amount of info passing between the 18M2 and the Arduino like “hey! the battery voltage is running low!” or "the current sense resistor on one motor is getting hot! (passing more current then usual)"

How could this NOT make for a better, smarter, just plain neater robot? (SparkFun already carries a PICAXE 8 motor controller to suppliment the robots main processor. Apparently the idea works! :slight_smile:

(Has anyone done anything like this yet and can you point me in their direction? I need to know more about message passing than anything else to start with.)

Thoughts?

Arduino is best in comparison with Picaxe

You have wrote this article in very short and precise way and i appreciate your effort. When think of Picaxe and arduino i think Aruino is best. If anyone who is reading this article and belongs to india then they can purchase Arduino board india at robomart