Enginursday: Visually Programming Arduino

I got my first taste of programming with RCX Code and an old Mindstorms RCX 1.0, so maybe it’s nostalgia speaking, but I really admire visual programming languages for their ability to introduce younger folks to programming. With color coded operators, geometrically shaped data types, and no semicolons (!), visual languages have a unique ability to make programming a more intuitive experience. And with the (admittedly necessary) annoyances of syntax removed, more of your programming focus can be directed towards solving the actual problem.

On the National Tour, and just browsing the Internet, this is a form of programming I’ve been encountering a lot lately. So, in this week’s Enginursday post, I wanted to introduce a couple of exciting visual programming tools that are specifically geared toward the physical computing we love.

ArduBlock

A month or so ago, a coworker of mine (hi Brian!) showed me a beta release of ArduBlock. ArduBlock is a programming environment designed to make “physical computing with Arduino as easy as drag-and-drop.”

It’s really neat how ArduBlock ties the visual, drag-and-drop programming into actual Arduino programming. The software acts as a “tool” for the Arduino IDE. After drawing up your sketch and hitting upload, the software simply parses your block diagrams and turns it into real Arduino code. Then it compiles and uploads to your board normally. You can scroll through the generated code, compare it to your visual code, and even make your changes there. It has a lot of potential to be an amazing educational tool.

ArduBlock gets bonus points because it’s an open-source project, with development ongoing (last commit days ago!). In less than a month, the software has grown by leaps and bounds. It’s a project that’s continually improving. If you’re looking for a nifty, graphical alternative to Arduino programming, I’d encourage you to check ArduBlock out!

On the National Tour, I’ve had a few chances to see ArduBlock in action. In a workshop last weekend at the (seriously amazing) ‘Iolani School, we had the opportunity to lead both teachers and students in programming the LilyPad ProtoSnap Dev Board using ArduBlock. The workshop was a great success – seven hours of programming, zero compiling errors. It didn’t take much instruction before the students quickly took off on their own, creating cool projects like a tap-input metronome, “monster detector,” or a miniature police siren. ArduBlock allowed the kids to focus everything they had into creating rather than debugging, and that’s what makes visual languages so special.