Social Things_01 ↓ Continued Research

After the Collaborative Unit, time to dig into the Physical Computing Unit with the Social Things brief: “Using the research that you have done on a tribe, you will start designing a tangible or a wearable object for or with that tribe. The goal is to create a meaningful object using physical computing as an agency. By meaningful, we mean that it will communicate the value(s) of your tribe.

Just to remind, my research was on the Slow Movement. I did already gather ideas during the last part of my ethnographic research. I asked my interviewees the following: “Do you think it is possible to find a balance with technology rather than having disconnected moments?” One answer from Trine Grönlund whom is behind the Go Slow initiative, particularly stuck in my mind: “Absolutely. I think the answer is very much in technology and particular in the “interface”. Today everything builds upon distraction – you are looking for one thing but you are constantly being lured away to other things. Imagine the day we decide to build sites/apps/games in a way that spreads compassion. Imagine if the more time we spend in front of the screen the more compassionate and mindful we become.

If I highlighted this last sentence, it’s because I immediately had a flashback of one of my past projects: YOU HAVE TO FACE ME that I produced last year for the Festival Les Chambres Numériques, where I asked the audience to literally face the screen in order to trigger its contents. Well, I didn’t know back then that I was crafting an interaction I’m now classifying as slow! And even though I still don’t know what kind of object I want to make, I’m pretty interested in the same contrast I did back then: the effortless technology versus the mindful effort of the audience. Where is the balance? Wouldn’t an interaction that requires time end up frustrating the audience in search of efficiency? Then, isn’t it about the notion of slow to be adjusted at its right moment to intervene?

There are also others keywords I retain here: interface – distraction – compassion. There are definitely links to craft between these, as I don’t believe digital detox is a solution and don’t fall neither in the values of the Slow Movement. Trine also referred me to a talk given by Rohan Gunatillake at Wisdom 2 Europe – here is his own summary wisely named Redesigning not Retreating. He explains his vision balancing mindfulness with technology. He did so with his studio Mindfulness Everywhere which create meditative apps such as buddhify and Sleepfulness. Pretty good starting point for my contextual research!

In the same veins, I also found the initiative Time Well Spent – the founder Tristan Harris gave a pretty good talk that I recommend to watch to comprehend his vision of designing to value time with technology versus the seeker-attention character of technology.

Workshop_03 ↓ Physical Computing

During the Physical Computing Workshop part 3/5, we had to try out modules in small groups. I tested the Sparkfun Easy Driver + Stepper Motor and the MPR121 Capacitive Touch Sensor, both pretty enjoyable to play with — well, that’s it if you don’t mix-up the wires and smell the burn…

For the homework, I had to use something I didn’t get to try previously so I chose the Servo Motor. Setting it up was pretty easy following this tutorial, and the Servo Motor swept back and forth without any trouble.

I added a Potentiometer to control this Servo Motor, and it still works out pretty well. On top of that, I added a LED that is also controlled by the Potentiometer to make it fade. However, I feel that the input of the two components are having a face-to-face and somehow cancel the fade effect…? The Potentiometer still lights up the LED at the end of its turn though.

Before I reach out to a solution, here the code ↓↓↓

#include

Servo myservo;
const int potpin = 0;
int angle = 0;

const int ledPin = 10;
int brightness = 0;
int fade = 0;

void setup() {
myservo.attach(9);
pinMode(ledPin, OUTPUT);
}

void loop() {
angle = analogRead(potpin);
angle = map(angle, 0, 1023, 0, 180);
myservo.write(angle);

brightness = analogRead(potpin);
fade = map(brightness, 0, 1023, 0, 255);
analogWrite(ledPin, fade);
}

And the video ↓↓↓

On another note, this module seems pretty similar that of the Stepper Motor, but it is not as precise — the Stepper Motor is defined by steps and you can choose the angle of each step, while the Servo Motor turns around at once. Hence it seems to have less possibilities, but certainly I wasn’t able to make full use of it.

Workshop_02 ↓ Physical Computing

The exercice was to to do an intervention using what we’ve learned during last week’s class, aka the use of the push button and the potentiometer with LEDs.

I got in my possession a RGB LED that I’ve really wanted to try out. Basically, I wanted the push button to light on / off the LED, and the potentiometer to change the RGB value of the LED.

The RGB LED got 4 legs, the 2nd leg which is the longest one is (-) while the others legs are (+). I connected the three (+) legs into the digital input, and the (-) into the ground. For each (+) leg, I used a 330Ω resistor.

Then, I connected the push button and the potentiometer, following what I’ve been taught previously. I used a 10KΩ resistor for the push button.

Here is the code ↓↓↓

int redPin = 1;
int greenPin = 2;
int bluePin = 3;

int buttonPin = 7;
int potPin = A0;

int val = 0;

boolean ledState = LOW;
boolean prevBtnState = LOW;

void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);

pinMode(buttonPin, INPUT);
pinMode(potPin, INPUT);
}

void setColor (int red, int green, int blue) {
analogWrite(redPin, 255 - red);
analogWrite(greenPin, 255 - green);
analogWrite(bluePin, 255 - blue);
}

void loop() {
boolean btnState = digitalRead(buttonPin);
int val = analogRead(potPin);

if (btnState == HIGH && prevBtnState == LOW) {
if (val < 100) {
setColor(255, 0, 0);
}
if (val >= 100) {
setColor(0, 255, 0);
}
if (val > 400) {
setColor(0, 0, 255);
}
}

digitalWrite(redPin, ledState);
digitalWrite(greenPin, ledState);
digitalWrite(bluePin, ledState);

//prevBtnState = btnState;
}

I’ve followed last week’s code to write this new one, and I researched tutorials (notably on Adafruit) to implement the RGB LED’s part.

However, it didn’t work out exactly the way I wanted since I can’t seem to work out the part where the switch stays on / off until its next state’s change. I can’t figure it out for now but it still works for the most part. Hopefully, as I get more comfortable with Arduino, I’ll get back to it later and solve it.

Workshop_01 ↓ Physical Computing

We started the workshop series on Physical Computing o/ We have covered some parts of the basics — of basics, and brought back home the first exercice: create a flashing pattern with LEDs.

Why not with music? I can literally listen to the song Lov U by Joji for hours: the loop is perfect and it was easy to figure out its beat. OK I may say this afterwards but I have sadly no sense of rythm, so it still wasn’t that easy to coordinate with the LEDs…

Also, I thought it would be interesting to add several LEDs. I noticed each color behaves differently: the white lights longer than the blue for example. Other than that, I have to admit my choice was purely based on aesthetics: blue LEDs definitely look cool.

Well that’s it, you can watch here ↓↓↓

And here the code ↓↓↓

int led1 = 13;
int led2 = 12;
int led3 = 11;

void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}

void loop() {
digitalWrite(led1, HIGH);
delay(100);
digitalWrite(led1, LOW);
delay(1800);

digitalWrite(led2, HIGH);
delay(100);
digitalWrite(led2, LOW);
delay(1800);

digitalWrite(led3, HIGH);
delay(100);
digitalWrite(led3, LOW);
delay(1000);

digitalWrite(led3, HIGH);
delay(50);
digitalWrite(led3, LOW);
delay(800);

digitalWrite(led2, HIGH);
delay(100);
digitalWrite(led2, LOW);
delay(2000);
}

Next thing I should study is maybe how to have the LEDs light up by sound detection?