In September last year I came across the Raspberry Pi and ordered one. While impatiently waiting for delivery (9 weeks or so) and reading about the Pi I came across the Arduino project and decided to buy a Mega 2560 to play with (£20 and just 2 days delivery). I spent one very frustrating day trying to understand the Arduino terminology and how to drive the Mega and when that first LED blinked I cheered.
From the first I was impressed with the Mega but even though I have an old Oscilloscope I was frustrated with my lack of basic electronics test equipment. In particular I was missing a signal generator and an accurate means of measuring frequency (the oscilloscope is way out of calibration). This frustration generated my first two Arduino projects.
On eBay I came across some AD9850 DDS signal generator boards (£3.50 ish) so I purchased one. It took me about a day to understand how to drive the board and then about two days to create a simple signal generator. Brilliant - for less than a fiver I had turned the Mega into a very very accurate Sin/Square wave generator. Better than 1 Hz to 30 MHz range to an accuracy of about 0.05%.
My second Arduino project was to use the Mega to measure frequency. This was a much more demanding project than the signal generator and used a Mega timer/counter to count input transitions. It took me about a week to get the basic functionality working but it allowed me to measure frequency from a few Hz up to about 16 MHz with a resolution of about 0.25 Hz and with better than about 0.1% accuracy. Over the next 4 weeks I added external electronics to allow me to measure a wider range of frequency, to measure mark-to-space and event duration.
The problem with all of this was that my Mega was beginning to look like a hedgehog and wires kept coming loose. I quickly realized that it would not make economic sense to buy a new Mega for each project. About this time the Pi turned up.
The Pi is a very nice little device that has significantly more computing power than the Arguino Mega but is reportedly much more fragile. In the press there are dire warning about how easy it is to blow up a Pi and I took fright and created a breakout board that limited all input to the Pi to about 3.3V and limited input and output current to about 10 mA per pin. This works well. I looked at using the Pi as an alternative to the Mega for controlling the AD9850 and for measuring frequency. Using the Pi I managed to drive the AD9850 using both C/C++ and Python but was disappointed with the functionality available in the Pi when I tried to measure frequency. Now I'm a great Linux fan but I found that Linux got in the way when trying to measure time or frequency. One could of course use a different OS for the Pi and maybe I will do that sometime but at the moment I have too much else I want to play with.
So which would I recommend - the Pi or the Mega? It is primarily a 'horses for courses' decision and it depends on the desired functionality but I found that the Arduino Mega was more flexible than the Pi for the sort of applications I was considering. If I were wanting to teach electronics I would most definitely go for the Arduino Mega.
Will I buy the book? I could certainly have done with it when I first started working with the Mega. I think I will try to get my wife to buy it for me as a Birthday present!
As a postscript - I'm currently using PIC devices to replace the Mega. They get round the hedgehog problem and allow me to create simple cheap RS232 controlled modules but but but they are much more demanding than the Arduino Mega from the point of view of both hardware and software. I still use the Mega to prototype things!
Same thoughts here but because my job is IT related, I'd like to experiment with Arduino - it's closer to elecronics than to IT. The PI is a real little processor - almost a full computer - and I have to deal with those enough during the work day.