MicroBlocks is a free VM-based programming language for microcontrollers, with a graphical programming environment inspired in the Scratch and Snap! educational languages, and a virtual machine ins...