Why Arduino is not the right educational tool

I could have started with ‘why the Arduino sucks’ or ‘why the Arduino is bad’, which would have gotten me a tremendous load of page views. But I didn’t because it simply isnt’t true. The Arduino does not ‘suck’, and neither is it bad in its own right. It just isn’t the right tool to teach people programming, but it’s abused that way. Let me tell you why:

What is the Arduino?

“Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.” There. I just copy-pasted that from www.arduino.cc. And they’re right! The arduino project is great for  creating interactive objects or environments. You’ve got a gazillion of code examples to use, you can easily read out sensors that would take hours to days to get going (even with coding experience) and a large user base to ask questions. Above all, creating interactive objects or environments is about human interaction (fun!). Hook up a sensor to an actuator, create new combinations and play around… But it’s NOT a good standard to learn coding, or benefit from the power of embedded electronics.

And that’s where I’m bearing a grudge to the use of Arduino’s as a ‘getting started with programming’. Learning to work with microcontrollers is sometimes a steep pathway, but leverages the power of these little beasts. Using an Arduino to learn programming is like using MacDonalds to learn cooking; you get your meal, very fast, but you don’t get the skills to cook yourself. When you need a quick meal, the Mac can be OK (debatable, but just to make my point), but it’s not a cooking class.

5 reasons why, in no particular order: Continue reading

Code::Blocks and STM32F0 (CortexM0) setup

Thank you Hertaville

I set up this tutorial using a lot of resources I found at Hertaville. Thanks, thanks, thanks!

1 – get the GCC compiler

Download toolchain from https://launchpad.net/gcc-arm-embedded/ and add directory with ‘arm-none-eabi-gcc’ and others to path
Linux: get the TAR with the binaries, and extract somewhere. I put them in Documents. Yes, I know that that is not a sensible location, you could do otherwise if you’d like to. I changed the path to point to the binaries.

gedit ~/.bashrc

For me: PATH="/home/victor/Documents/gcc-arm-none-eabi-4_7-2012q4/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/opt/msp430-gcc-4.4.3/bin"

Under Windows, just run the installer, everything will be fine. At the end of the installer, let the PATH be adapted (option box selected).
2 – get OpenOCD, part of the debugging solution
Go to the OpenOCD site and download the sources. For windows: there’s a binary installer available somewhere, check Hertavilles site.
Linux: unpack,

./configure
make
sudo make install

3 – install Code::Blocks if you hadn’t already
Download Code::Blocks from their website, installation instructions are here.
For linux (my distro refuses to update to 11.20) you’ll have to install the archives that BerliOS provides, windows users can easily install the binaries.
Continue reading

Summary of element14 Roadtest Challenge: Wireless Power Solution

Fun video with demos:

Train at 1:05 (I got a bit carried away), Qihuahua at 2:23

Tech details:

INTRO

Hello! The last months I haven’t posted anything on this blog, which is a bloody shame. However, I’ll compensate with this blog post. A few months ago a fellow Tkkrlab member told me about his project to let a remote controlled LEGO train run via a web interface. He had this up and running, but got tired of constantly changing the batteries and started looking at wireless charging systems. Around the same time, element14 started a RoadTest with a combined Wuerth / TI demo kit for their new industry standard Qi wireless power transfer solutions.  I applied for the RoadTest, and was happy to be selected as a candidate to try out this new hardware. But…. then element14 changed the rules, and instead of a regular ‘RoadTest’ (use the hardware & write a review) this became a Roadtest Challenge; a design competition between 6 candidates. You can find the element14 blog posts here, but I’d like to make a personal summary on this page. Below the progress of two months designing and hacking!
Continue reading

Open Power Functions

I’ve been working a lot at my Lego Power Functions receiver, I’ll summarize what’s been going on:
- I’ve had a lot of trouble with the motor driver; during development I added some series resistors to the motors I used, which kept the driver running at all input conditions; now I’m trying the real LEGO motor, I run into some issues with a driver IC. I can’t sort out how to solve them, so I’ve replaced the motor driver IC. This unfortunately means that the solderability of this board has moved to ‘undoable for people without hot air guns’.
- I’ve asked LEGO whether I would be allowed to sell this design, and with some restrictions, I am! Hooray! Maybe I can a little money with this, that would be very cool….

Tagged

2D glasses

My girlfriend and I both get a headache from watching movies in 3D. Unfortunately, a lot of animation (Pixar, Disney) movies are not shown in 2D anymore. When I found really cheap 3D glasses online I ordered a pair to do an ‘optical hack’; I swapped the left glass of one with the right of the other so I’ll be looking at the movie for the right eye, and my girlfriend is looking at the movie for the left eye.

Results

It works! But… I viewed most of the movie in 3D anyhow with the glasses supplied by the cinema. Looking at 2D doesn’t give you the fancy bonus of 3D animation, but stresses the fact that you’re sitting in the cinema wearing sunglasses. The colors aren’t bright enough, and everything is a bit brownish. Also, the filter doesn’t block the other image 100% , so you end up with a faint dropshadow. Probably that also happens with the ‘normal’ 3D cinema glasses, which explains the headache; your brain is constantly processing unclear information. Next time I’ll rent the DVD ;)
One question that remains with me: is a lot of improvement possible in image quality when using better / more expensive glasses? Please comment…