Close

How it all started...

A project log for Tangible programming

An Arduino-based tangible programming effort

amosAmos 12/10/2018 at 02:520 Comments

This project started as a major project for the unit FIT3146 - Emergent Technologies at Monash University. I was studying this unit  in semester 2, 2018 as part of my Bachelor of Information Technology degree. The unit was like one big hackerspace - we had a range of technologies to explore and play with, including eTextiles, Arduino, BBC Micro:Bit, virtual reality, LittleBits, Makey-Makey and Sphero. For our major project we were asked to "create an artefact - i.e. create something cool using the technologies and techniques we had explored in class.

While pondering what my final project could be, I was reminded of an idea I had in the early 90s, but never had the resources to realise at the time. Back then, I had wanted to create a learning tool, similar in principle to LittleBits, however focussed on logic blocks (AND, OR, NOT, XOR, etc) and discrete components. I even planned on creating "exploded" versions of common 4000 and 74xx series ICs, so you could see how they worked "under the hood". Unfortunately PCB fabrication was quite expensive and components cost a lot more than they do these days - I simply couldn't afford to put my ideas into practice.

Discussing the idea of a modular training tool with my lecturer and tutors, I had a flash of inspiration - what if I merged the concept of a modular toolkit with a block-based programming language like Scratch and created a physical programming language? (I would later discover that the term Tangible Computing described what I was proposing.)

Arduinos are almost a disposable commodity these days - less than $2USD for a Pro Mini clone. I did some initial planning and came up with the idea of a number of modules based around an Arduino, with each module representing a programming construct - a variable, an operation, a loop, a conditional (IF/THEN/ELSE), and output command, etc. These modules would be connected somehow (waves hands) and could be controlled by a "master controller". (I ended up using an Arduino Uno for the master controller, but did consider using a Raspberry Pi.) Once completed, you could plug the modules in to each other to create a program. Instead of using drag and drop on a computer screen, you would physically plug and play.

I might revisit my logic trainer idea one day - PCB fabrication is now super cheap and it would be a fun project, but for now I am committed to seeing how far I can push this tangible programming idea...

Discussions