On Friday 11/20, as part of the Big Ideas Lunch Series, the Union MakerWeb hosted a workshop titled Storytelling and Interactive Electronics. This workshop was designed as a followup to the recent lecture Maker Culture: Histories, Politics, Applications, where Roger Whitson discussed Maker Culture in reference to older notions of technology, like the printing press, and general movements resisting mass production. The printing press is becoming part of our distant past, no longer a hallmark of innovation, yet some of us still cling to the experience of writing and reading using traditional methods. The Arduino allows us to combine these traditional methods of making stories with current technologies, and this workshop focused on how to do that.

In this example, we used Processing and Arduino, both free software interfaces that make coding physical computing projects relatively simple. We used the graphite from pencil written on paper as a switch that turned lines of text from the following quote on and off. You can download the project files here.

We were the people who were not in the papers. We lived in the blank white spaces at the edges of print. It gave us more freedom. We lived in the gaps between the stories. ~Margaret Atwood

Processing Code:

import processing.serial.*;

Serial myPort; // The serial port
String inString; // Input string from serial port
int lf = 10; // ASCII linefeed

void setup() {
size(1200,700);
// List all the available serial ports:
printArray(Serial.list());
// Open the port you are using at the rate you want:
myPort = new Serial(this, Serial.list()[2], 9600);
myPort.bufferUntil(lf);
}

void draw() {
background(255);
text(“We were the people who were not in the papers.”, 10,50);
fill(0);
text(“We lived in the blank white spaces at the edges of print.”, 10,100);

textSize(36);
int number = int(inString);
int num2 = int(trim(inString));
println(num2);
if (num2 == 1) {
fill(255);
} else {
fill(0);
}
text(“It gave us more freedom. We lived in the gaps between the stories.”, 10,150);
fill(0);
}

void serialEvent(Serial p) {
inString = p.readString();
}

Arduino Code:

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(A0, INPUT);
}

void loop() {
// put your main code here, to run repeatedly:
int sensorValue = digitalRead(A0);

if (sensorValue == HIGH) {
Serial.println(“high”);
} else {
Serial.println(“low”);
}
delay(100);
}