THIS OR THAT?
Recently, Microsoft Research presented their first paper on a project they’ve been working on where they are developing electrical components that are also stickers. The idea of sticky circuits is not new–Graffiti Research Lab was creating circuit boards out of mail postage in 2006, but while wearable computing has become immensely popular over the past few years, paper-based computing has not gained similar traction. Fascinated by this weird cousin of wearables, I tried my hand at a postage circuit board, using an ATtiny45 and some conductive tape:
I stuck it in a random elevator near ArtFab and it lasted a couple of hours. Then, around Halloween, I actually ended up making a joke “ghost meter” that detected the amount of spirits haunting a person and put it in one of the women’s bathroom stalls.
I really liked the idea of “physical apps”–cheap little programs (with varying degrees of usefulness and playfulness) that someone can stick or hang up on a wall for strangers to engage and play with. “Would You Rather” is a game where someone gives a group two (often terrible/gross) situations and the group is forced to vote for one or the other. This game has been turned into multiple apps and internet sites like Kitten War seem to draw inspiration from it. “This Or That” is an electronic poster constructive out of conductive tape, an ATtiny84, and two seven-segment displays that gives passerby a pseudo-anonymous platform to vote on one of two options (which they can also decide on!). While most people were honest in their votes, some people “stuffed the ballot” so to speak–this is probably not going to replace the ballot boxes during the 2016 presidential election, but it’s a fun diversion.
https://www.youtube.com/watch?v=9q_88BjcTKA
Ultimately, the choice is yours.
#include
#include
Tiny_7segment lMatrix = Tiny_7segment();
Tiny_7segment rMatrix = Tiny_7segment();
int lCounter = 0;
int rCounter = 0;
const int lButton = 2;
const int rButton = 3;
const int rstButton = 5;
boolean rBoo = false;
boolean lBoo = false;
void setup() {
lMatrix.begin(0x70);
rMatrix.begin(0x71);
}
void loop() {
if (digitalRead(lButton) == LOW) {
lBoo = true;
}
else if ((digitalRead(lButton) == HIGH) && (lBoo == true)) {
lCounter += 1;
lBoo = false;
}
if (digitalRead(rButton) == LOW) {
rBoo = true;
}
else if ((digitalRead(rButton) == HIGH) && (rBoo == true)) {
rCounter += 1;
rBoo = false;
}
if (digitalRead(rstButton) == LOW) {
lCounter = 0;
rCounter = 0;
}
if (lCounter == 9999) {
lCounter = 0;
} else if (rCounter == 9999) {
rCounter = 0;
}
lMatrix.println(lCounter);
rMatrix.println(rCounter);
lMatrix.writeDisplay();
rMatrix.writeDisplay();
delay(10);
}