MiniBloq IDE, Graphical Programming For Robots Of All Sizes


The Arduino IDE only brings the ire of actual EEs and People Who Know Better™, but if you’re teaching robotics and programming to kids, you really don’t want something as simple as a text editor with a ‘compile’ button. For that educational feat, a graphical system would be much better suited. [Julián] has been working for months to build such a tool, and now miniBloq, the graphical programming tool for just about every dev board out there, has a new release.

The idea of a graphical programming language for robotics has been done before, most memorably with the Lego Mindstorms programming interface. That was closed source, of course, and only worked with the magical Lego brick that allowed you to attach motors and sensors to a child’s creation. miniBloq takes the same idea and allows the same programming environment to work with dozens of dev boards for robots of every shape and size. Already, the Pi-Bot, SparkFun RedBot, Maple, Multiplo DuinoBot, and anything based on an Arduino Leonardo works with miniBloq, as will any future dev boards that understand C/C++, Python, or JavaScript. It’s not just for powering motors, either: there’s a few Python and OpenCV tutorials that demonstrate how a robot can track a colored object with a camera.

The current version of miniBloq can be downloaded from the gits, with versions available for Windows and *nix. The IDE is written with wxWidgets, so this could also be easily ported to OS X.

8 thoughts on “MiniBloq IDE, Graphical Programming For Robots Of All Sizes

    1. Snap, my 5 and 6 year old daughters want to join in with me but I never know where to start with them. I may give this a try.

    1. It’s different from Scratch in several ways: real time code generation, contextual pickers (so the environment don’t show all the blocks to the user, just the ones that fit in a param, automatically selecting them by return type checking), automatic refactoring of variables. Also, shows the errors in red in real time, over the block. Finally, S4A relies in Firmata so the Arduino-compatible boards should stay connected (through USB or XBee, BT or the like), while miniBloq actually compiles the firmware and deploys it to the board. The XML backend allows miniBloq to generate code in different OOP/imperative languages, and also to call different toolchains and deployment software (like avrdude, etc.). Enjoy!

    2. Scratch started with MIT circa 2003 and MiniBlog came from Minibloques (1997 via the founder of Multiplo).

      Same concept as many others graphical programming languages… block diagrams, top-down procedural flow, enclosing control blocks, etc…

  1. Graphical languages are definitely a way to get kids involved. At my local university we have childrens summer programs and after school programs that use a language called scratch to teach the basics of visual programing. (been around for about 5 years)

    However one of the local residents took this language and made a robotics interface found called enchanting ( and has been up and running for about 3 years, with several universitys and outreach programs starting to use it. (is made for mindstorms right now but outputs code in leJOS NXJ (java for mindstorms))

    Maybe some combined effort of Minibloq and enchanting would come a greater program.

  2. I really like that there is a robot simulator, so kids can test their robots on the computer before running them in real life.

  3. What’s really impressive and educational is the fact that you can always switch to the code window, and watch the code grow while you add graphical blocks.
    A great way to show beginners how code works.

Leave a Reply

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

You are commenting using your 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