WEEK 1
WEEK 2
WEEK 3
WEEK 4
WEEK 5
WEEK 6
WEEK 7
WEEK 7 :
Cultural interfaces
Processing opinions
HOME
ZINE : Modular
Modular components are one of the best and most complicated tasks for an engineer. A product or machine should be modular to enable users to replace one single item instead of the complete machine. In coding, a modular code is important as well. A code should be able to function outside the context it was designed for. Making code quickly accessible and customisable.
Processing opinions concept 1
Capture and display subjective data.
It was really hard for me to get a grasp on subjective data. I googled for a lot of examples and finally came up with the idea of collecting people their opinions.

An Arduino connected to a display and a proximity sensor. The proximity sensor is build-in to a box with a slider. The user can move the slider and the proximity sensor will return if the user answered, yes or no.
Design Research
I found the assignment of for subjective data really hard. What is subjective data and how could I measure it. Personally I think I found a way I'm satisfied by the results I got from reading the input on the Arduino and Processing.
Collaborative Learning
This project started with a brainstorm session of an hour or so to find an idea to collect subjective data but that's it. After I knew what I wanted to collect and how I wanted to collect it I laser cut a voting box out of karton and placed the Arduino inside.

In the initial concept I wanted to do way to much and ended up with basically nothing. So Loes gave me the tip to complete the basics before I start to do advanced stuff.

I held this in mind for the second concept. A way cleaner and better concept where the users actually can vote and use the device.

Further than this I didn't collaborated with people within this project.
Maker Skills & Attitude
I learned how to use the read the output from Arduino sensors in Processing and turning this data into data within processing.

I really liked exploring Java a bit more and found that Java shares a lot of similarities with JavaScript.

https://drive.google.com/open?id=1OcVqzLXULzi7z4wGDXDvIXBZQAWEtgl7
SELF-INITIATED PROJECT
MINOR-THOUGHTS
Concept 1
Processing code
float colorR = random(255);
float colorG = random(255);
float colorB = random(255);
float moveY = 20;

import processing.serial.*;
Serial myPort;
int distanceValue;

void setup() {
size(750, 255);
//println(Serial.list()); //use to find list of your port addresses
String portName = "/dev/cu.usbmodem14401"; //change to your own port address!
myPort = new Serial(this, portName, 115200); //needs to match arduino baudrate
}

void draw() {
background(100,100,100);
fill(color(colorR, colorG, colorB));
colorR = colorR + 1;
colorG = colorG + 1;
colorB = colorB + 1;
if (colorR > 255){
colorR =random(255);
}
if (colorG > 255){
colorG = random(255);
}
if (colorB > 255){
colorB = random(255);
}
ellipse((( 0 + distanceValue * 53.5714285714)), moveY, 20 , 20); // use dataInput for y axis
moveY = moveY + 0;
println(distanceValue);
}

void serialEvent(Serial myPort) {
distanceValue = myPort.read();
}
Arduino code
float colorR = random(255);
float colorG = random(255);
float colorB = random(255);
float moveY = 20;

import processing.serial.*;
Serial myPort;
int distanceValue;

void setup() {
size(750, 255);
//println(Serial.list()); //use to find list of your port addresses
String portName = "/dev/cu.usbmodem14401"; //change to your own port address!
myPort = new Serial(this, portName, 115200); //needs to match arduino baudrate
}

void draw() {
background(100,100,100);
fill(color(colorR, colorG, colorB));
colorR = colorR + 1;
colorG = colorG + 1;
colorB = colorB + 1;
if (colorR > 255){
colorR =random(255);
}
if (colorG > 255){
colorG = random(255);
}
if (colorB > 255){
colorB = random(255);
}
ellipse((( 0 + distanceValue * 53.5714285714)), moveY, 20 , 20); // use dataInput for y axis
moveY = moveY + 0;
println(distanceValue);
}

void serialEvent(Serial myPort) {
distanceValue = myPort.read();
}
Processing opinions concept 2
Concept 2
As Loes pointed out. Nothing really works… The display is very confusion and unnecessary. For my second version I got rid of the display and changed the processing script.
Arduino code
#include "SR04.h"
#define TRIG_PIN 6
#define ECHO_PIN 5
SR04 sr04 = SR04(ECHO_PIN,TRIG_PIN);
long sensorValue = 0;

void setup() {
Serial.begin(115200);
}

void loop() {
sensorValue=sr04.Distance();

if((millis() / 1000) < 10 ){
Serial.write(sensorValue);
delay(1000);
}

if((millis() / 1000) > 10 ){
Serial.write(sensorValue);
delay(1000);
}
}
Processing code
float colorR = random(255);
float colorG = random(255);
float colorB = random(255);
float moveY = 50;

import processing.serial.*;
Serial myPort;
int distanceValue;

void setup() {
size(750, 255);
//println(Serial.list()); //use to find list of your port addresses
String portName = "/dev/cu.usbmodem14301"; //change to your own port address!
myPort = new Serial(this, portName, 115200); //needs to match arduino baudrate
}

void draw() {
background(0,0,0);
fill(color(255,255, 255));
ellipse((( 0 + distanceValue * 53.5714285714)), moveY, 20 , 20); // use dataInput for y axis
moveY = moveY + 0;
println(distanceValue);
textSize(24);
textAlign(CENTER, CENTER);
text("Do you like video games ?", 375, 10);

textAlign(CENTER, CENTER);
text("Yes", 50, 100);

text("No", 700, 100);
textAlign(RIGHT, BOTTOM);

}

void serialEvent(Serial myPort) {
distanceValue = myPort.read();
}
Processing opinions part 2
Assumptions,

I wanted to give users an even canvas for their opinions. Placing the "Yes" and "No" on a horizontal line prevent one answer being more correct ( Due to it being placed higher or lower ) than the other.

Unfortunately I wasn't able to present all pre-assumptions from the users as the "Yes" and "No" were still placed left and right, a user might prefer the left or right side.

I didn't use any colours or lights in the product to prevent colour assumptions such as green is good and red is bad.
Data used,

The opinion box only collects the users opinion on a question in an anonymous way. Protecting the users privacy and collecting social pressure free answers.

This opinion box could however be expanded to collect the users name and opinions.
Hardware and software,

The opinion box is design to be good at one thing and one thing only. Preventing confusion with it's simple design and one task only performance.

Users will understand how the opinion box works as it's very simple designed.

The software only displays the users path to their opinion. It doesn't record the users opinions and is completely anonymous.
Transparency

As an act of transparency the software used is completely open source, as all government software should be.