Our Fundamentals of Physical Computing class culminated in a final project, on which I collaborated with former co-conspirator Leroy Tellez.
We decided to ditch everything we'd done during mid-terms, and experiment with some new technologies (given the whole purpose of this first semester class was to get stuck in to what physical computing was all about). We bought a GSM Shield that equips an Arduino with cell phone capabilities. Then we bought a mini thermal printer, similar to a typical receipt printer. And then we bought yet another GSM Shield so two Arduinos could communicate via SMS.
Here's what we built:
A mysterious yellow box, with two cell phone numbers lasered on the sides and a printer 'mouth' with 'PRIZE' etched above it. The idea was to entice people at an exhibition or social gathering to text the numbers, at which point they would receive a reply encouraging them to find a buddy and keep texting. The game requires five different people to text a number to win - a relay race - encouraging social interaction and curiosity.
The (deliberately underwhelming) prize was simply to receive a print out of all the texts in a random Dada Poetry-esqe style. A little like this:
The code was ambitious (for two beginners). Only one Arduino could be attached to the thermal printer, so if the other Arduino (i.e other cell phone number) won the contest it couldn't directly print. Instead it would text the first Arduino, telling it to stop counting texts it received. Then it would send all the stored winning texts one by one, into an array on the first Arduino. Then it would send it an instruction to print, then reset. If the first Arduino won, it would text the second to tell it to reset immediately.
Unfortunately the GSM Shield library and thermal printer library together took up a lot of memory, so we ran into hurdles related to memory management and encountered a fair amount of unreliablity.
Our next step is to take what we've learned, use a larger Arduino and rethink the concept somewhat - building on the idea of printing text messages in a social situation - but with a little more direction and meaning than the simple relay race competition.