Graphical programming with the Arduino IDE

The Arduino is an excellent first embedded development kit, provides a great introduction to electronics, and has the potential to get children into programming. [David] thinks throwing C at non-programmers isn’t the best way to learn programming, so he developed ArduBlock , a graphical programming language for the Arduino.

We’ve seen a number of graphical, block-based programming languages in our time, most notably Scratch. [David] found a project called OpenBlocks that serves as the basis for Android App Inventor.

[David] forked the OpenBlocks project and started working on his new graphical programming language. ArduBlocks uses the Arduino IDE, so everything possible in C with an Arduino should be possible with ArduBlocks. There’s a lot of thought put into the design of the blocks – the first iteration was far too ‘busy,’ but [David] cleaned it up and made the projects understandable.

For an absolute beginner, we couldn’t imagine anything better. ArduBlocks would be great for children, and we can’t wait to see a proper implementation of ArduBlocks with a touch screen.

Comments

  1. Cyk says:

    Well, Minibloq shoild also be mentioned here:
    http://blog.minibloq.org/

  2. Sobh says:

    Just when I thought Arduino can’t get any more offensive to the human mind.

  3. Dieguich says:

    Another interesting projects targeting same programming way to complete the list:

    * http://www.modk.it/” title=”modkit”
    * http://nootropicdesign.com/toolduino/ title=”toolduino”
    * http://seaside.citilab.eu/scratch/arduino title=”similar to scratch”

  4. David Dean says:

    I love the Arduinos and I like that people are always trying to make things easier, but I toyed with App Inventor once and it was genuinely harder for me to figure out how to put a working program together with it than a simple code tutorial. Maybe I’m just weird.

  5. Are visual blocks really easier for new users? I remember being taught that programming was just breaking down a task into specific steps and then ‘telling’ the computer what to do. Are picture blocks a more natural way to do that?

    The two main challenges of programming vs holding a conversation are that a computer needs the task broken down into much more detail than a human would. Also the syntax of the language you use must be exact.

    As humans we almost exclusively tell each other what to do using words. Deaf people use hand movements and in one part of the world some people use whistles but I have never heard of anyone whose primary means of communication is picture blocks.

    This is kind of a long read but here is a really great article about that: http://goo.gl/USvrE

    • David Li says:

      As one of the developer of ArduBlock, I have been asking myself the same question and I came to the same conclusion that visual block programming language can’t be better then textual base program. But being better then textual languages isn’t the goal of visual block languages.

      Much like reading and writing, it’s not part of the inert nature of human being. It’s a long hard process of acquiring the ability and it took us thousands of years to spread that skills among the general population.

      I started the project simply to get my daughter interested in physical computing after we did Scratch together when she was 4 1/2. I watched her struggle at learning how to read and write at the same time. Pictures books and bed time reading are used to assist her in the learning process.

      This is the same reason I worked on ArduBlock. It’s not about giving her a better tool then textual languages. It’s a tool to assist her to get interested in this and eventually go to textual based language when she gets interested enough.

      • I wasn’t really questioning whether graphical programming is ‘better’ than text based. I see people commenting about using graphical programming for complex tasks and realize that they are missing the point. I was more questioning whether visual computing (including graphical programming) is really easier to learn than text based.

        Don’t read too much into that though. I am not trying to put down your project. I think it looks pretty sharp and congratulations are in order! I’m sure it’s easier to learn than C. Also, even if someone ported some introductory language like Logo to the Arduino choices are still a good thing!

        I also realize that there is more to an introduction than being easy. ArduBlock looks much more visually appealing which could be the difference between a kid getting interested enough to give it a chance or not.

        I have a 1 1/2 year old daughter myself and hope to encourage her to become a maker one day. Maybe we will give ArduBlock a try!

    • Well, I have seen this discussion every time someone post about graphical programming. At least for me, engineer has some relation with numbers. Well, we released Minibloq this year, and we also manufacture Multiplo (an open building system for teaching tech and robotics to kids and beginners). I can tell that we are now manufacturing 10 times what we were at the beginnings of 2010. And we are still growing a lot. And a lot of schools in our country (Argentina) are replacing propietary robotics equipment with open source systems, which is possible now that Arduino compatible robots has a graphical tool. This was a barrier a year ago. These tools, like Ardublock, Modkit and Minibloq are helping, each one with a different approach (you can try them all!) the open source movement to be introduced in schools. That’s enough for me. I’m not a purist, I’m a pragmatic guy, and happy with this pragmatic view. So congratulations David for Ardublock! And congratulations Ed for Modkit too.

  6. anyone says:

    aww pretty colors and blocks! yay im glad adrunio is retard/6yr old kid safe!

    if you are serious about learning micro controllers and embedded anything…please get a legit dev board that doesnt use drag/drop mouse clicks to make a system.

    anyone can pick up a used or even new one for about the same price, and then you will actually know something useful.

    • ftorama says:

      But….what do you try to say????

      Software for Arduino is not “included” in the price, as you can take your own micro, and develop on it with the Arduino language.

      Also, with Arduino, you can program in pure C and, if you want it, use some assembler, inside the Arduino environment or outside of it. What’s your problem with that?

      You seem to be a basic hateboy that doesn’t even know what’s he’s talking about.

    • stab3r says:

      well i have to agree,when i was their age i was already coding in Visual basic and all that from reading BOOKS.
      Now days everything have became WAYYYY to easy for those little ..ergh .
      Anyway what i have to say use the standard arduino pakage

      • ftorama says:

        I also started long years ago by writing BASIC, but these graphic blocks are a great things to learn or simply doing a simple task very fast….

        I suppose than when keyboards have been implemented, you would have defended punched cards as being the only way to program efficiently.

        Damn, live with your time, and stop mubling after modernism

    • Microguy says:

      I would just LOVE to know how you feel about LabView.
      Please enlighten me.

  7. Graybeard says:

    Don’t forget Amici for soft circuits using the Lilypad.
    http://dimeb,informatik.uni-bremen.de/eduwear

    Also for kids Alice from Carnegie Mellon.

  8. Stephen says:

    I have to say I used to be a hater, but after years of easy prototyping because of the open source nature of the arduino and its community, I have learned to love this microprocessor!

    Don’t be a hater until you’ve used at least 4 other types of programming of microcontrollers. I personally love my other faster dev boards, however I find myself saving them for more complex projects (that never seem to happen, as 16Mhz seems to always be more than enough!)

  9. Frank says:

    WOW
    Somebody comes up with a way for pre-readers to be creative and the masses tell them to learn C programming?

    If your 4 year olds can read and write C then you better start saving for college right away.

    Enjoy the help that others give and progress as time permits.

  10. Sean says:

    I originally submitted this article. I’m surprised at the number of negative responses from all of the curmudgeons. I found the app to be quite helpful. I’ve some experience in coding but only do it casually as I have too many hobbies and interests. I value simplicity, speed and efficiency that these microcontrollers provide. Apps like this allow me to make efficient use of my time and receive immediate results.

  11. Ben says:

    Interesting concept. If anything it provides a great stepping stone to more advanced methods of programming, much like Basic does for C or Assembly.

    Elitist engineers be damned. Did you forget the philosophy of doing more with less? Or perhaps you just feel threatened or bitter that beginners can build cool things that required much more work when you did it 25 years ago. It’s called living in an increasingly technological world, deal with it.

  12. Miroslav says:

    Graphical programming is ok for simple stuff, but it becomes unbearable for more complex tasks. It is essentially hieroglyphics versus alphabet: 30 letters of alphabet are enough to convey all ideas with clever use. You need to use and remember very large number of pictures to convey complex concepts.

    Here’s an example:
    http://thedailywtf.com/Articles/Labview-Spaghetti.aspx

    • If you look at the ArduBlock website, it’s pretty clear they’re not intending it as an alternative to the traditional text based C programming for complex tasks. It’s pretty clear it (and Minibloq and the others) are intended as a simpler stepping stone for children and/or adults who are unfamiliar with programming.

      IMHO, that’s what sounds exciting about ArduBlock. It sounds like it takes your diagram and generates C code in the Arduino IDE. That sounds like it’d be a great way to help beginners visualize what programming constructs do while giving them familiarity with what the “normal” text representations should look like.

    • Microguy says:

      Yeah, damn LabView, it’s just totally useless isn’t it? I mean, all those factories they run using it, and all that data they gather and the built in graphics information displays…. just useless!!

      Anybody that uses it, is just wasting their time right!! Graphical programing is just useless!!

      God, what do you do for a living I wonder??

      Yeah, LabView, like ANY other language, can be put together in a sad way so nobody understands it.

      At least you can follow it, follow the lines if nothing else. In text based languages, you’d have a very hard time deciphering anything if you ran across some bad code.

      I worked for a company, and one of the engineers had almost total control of a project. His “code” was just MONSTROUS. He would constantly make changes, and not document them, just print another 5,000 pages of code out. Who cares, HE knew what it said.

      but once he got fired, we had to scrap the whole thing, because it was just totally worthless. You couldn’t possibly read it, even with the few lines of comments he included.

      I wrote some stuff in LabView that worked, but not well, or “right”. But at least people could follow my code easily enough. Just following the lines.

      i suspect, and I’m probably right, you know NOTHING about LabView and have never used it.

      If you want bad examples of bad text based code, I can post 1,000 for every bad example of LabView you post.

      (If LabView was “Ok for simple stuff”, then please tell me how they got it running COMPLETE factories and/or assembly lines??)

      You know what, you just don’t know what you’re talking about. Period.

  13. Patrick Dent says:

    I grew up using the LEGO Mindstorms programming interface for the original RCX and would love for something similar while I get to grips with the Arduino. Thankfully HaD can cater for my needs as to the electrical side fo the learning curve.

  14. Patrick says:

    Heres a similar post about some programming interfaces that uses blocks instead of text: http://labratsgonewild.com/2011/12/120/

  15. BringBackY2K says:

    I don’t often post my view but one view of graphical programming prodded me. Yes, graphical programming only supports the simple solutions and arduino user training. But isn’t that how many languages started? I feel that in 1-2 years, graphical programming will develop into a powerful option and what’s wrong with that? ‘Anyone’ reminds be of so many Luddite movements.
    Oh well, back to obscurity, my rant is done.

  16. morten says:

    I would compare above discussion to fight between C language fans and Assembler fans some years ago.
    Graphical programming is a future, next step. Like C language was next step after Assembler.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s