Visually programming Arduino
This post is about summarizing our past experience trying to make Arduino even more accessible to unexperienced beginners unfamiliar with programming.
Arduino comes with its default IDE (Integrated Development Environment), publicly and freely available at http://arduino.cc/en/main/software. Quoting from their own webpage:
“The open-source Arduino environment makes it easy to write code and upload it to the i/o board. It runs on Windows, Mac OS X, and Linux. The environment is written in Java and based on Processing, avr-gcc, and other open source software.”
Which is absolutely true, when compared to the nightmare it would be to access the microcontroller by other means. Not only that, but the fact that this environment is based on Processing (from Wiipedia):
Processing is an open source programming language and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching the fundamentals of computer programming in a visual context, and to serve as the foundation for electronic sketchbooks.
Makes the whole bundle a very complete one and explains why it has become so popular and one of the pillars of the current 3rd Industrial Revolution.
However, we (and many others) believe that the task of programming could be made even more amenable if Arduino came complemented with a visual interface where the user drags and drops the instructions on a canvas instead of typing them. This is the principle underlying in the very wide list of visual programming languages currently available (http://en.wikipedia.org/wiki/Visual_programming_language).
A bit of research on the topic has led us to four solutions that are for some time available to use with Arduino:
- Modkit Micro (http://www.modkit.com/editor): Still in beta phase, and unfortunately not seemingly Open Source, this editor targets a “growing list of open hardware platforms from Arduino to Wiring”. They have a very nice and interesting Kickstarter project, already fully financed and running, and an online version operational that I couldn’t make to work on my Ubuntu-running computer. It is based on the educational MIT project Scratch.
- BlocklyDuino (https://github.com/gasolin/BlocklyDuino/wiki): Another very interesting web-based project, that however seems a bit stuck for the last year. This one uses Blockly, seemingly a by-product of the abandoned Google’s App Inventor (now in the hands of MIT…). Although seems incomplete, it works well, and allows for the simultaneous edition of text and graphical blocks.
- Ardublock (http://blog.ardublock.com/): This seems the best option as it is an Open Source solution very well maintained. The major issue was to make it run, as one needs to download it and tweak (just a bit) with the Arduino IDE. However, once it was done, it worked perfectly. Perhaps the interface could be improved and be more visual, but still…
- S4A (http://s4a.cat/): Is a project of the Elisava school from Barcelona. It was easy to install, although visually was not very appealing despite being also based on Scratch. We could not make it work as the link with our Arduino was missing. However, the projects presented in their webpage are quite impressive.
So, as a conclusion, in a future post we will document how to make a first LED blinking program with ArduBlock and with BlocklyDuino, and report on the experience.
In the meantime, merry Christmas!
there is also mind++
cf : http://www.mindplus.cc/
I have using mind++ for a while and i had problems in adding new components so i find scratch or also Minibloq more interesting then mind++ .