PROJECT TITLE
BPD-Cure, by Carrie and Harvey. Instructor: Margaret.
CONCEPTION AND DESIGN
Our project is designed to draw people’s attention to patients with bipolar disorder. My previous research led me to the discovery of magnetic fluid, an amazing substance, and I became interested in it. This led me to want to use it in my final project. Then I related the magnetic fluid to bipolar disorder, as I suffer from mental illness from time to time. I used the state of the magnetic fluid to symbolize the mental state of the patient. If the magnetic fluid keeps beating, the patient is manic or depressed, and if the magnetic fluid stops moving, the patient is emotionally stable. We designed several ways to treat the patient: psychotherapy (hugging), electroconvulsive therapy and medication. At first we used wires to represent the arms of the hug, also wires to represent the electric shock tool, and we used distance sensors to represent the patient’s mouth. We wanted the user to connect the arm to simulate hugging, connect the electroconvulsive device to simulate electroconvulsive treatment, and place the medication (made of cardboard) in front of the distance sensor to simulate feeding. However, the professor thinks that the first two ways are duplicative and the userinteract is too homogeneous. And, the professor suggested that the 3D printed doll placed on the device distracted her. We listened to the professor’s comments and tried to improve it. We changed the wire used for the “ect” to an electromagnet and animated it with processing. At the usertesting, students and professors also gave us a lot of valuable comments. Some people think we have too little instruction and the user doesn’t know what to do. Some said the user interacted too little with the 3D printed doll, it would be nice to hug the doll and then have a reaction. They also said that after stimulating the magnetic fluid with a magnet, there was no animated response, which made them suspicious. Then we made another adjustment. We used the infrared sensor to detect the movement of the magnet so that we could give the magnet touching the magnetic fluid to do the animated reaction on processing. We also used the infrared sensor to make an interactive device for hugging, so that the user can use it as if they were actually hugging the patient. We have improved the processing animation so that different behaviors produce different animations. We also added more instructions so that people know what to do.
FABRICATION AND PRODUCTION
We initially used wires to represent the arms of the hug and the ECT device, distance sensors to represent the patient’s mouth, and cardboard to create the pill. After listening to suggestions, we used an infrared sensor to detect the user’s “hug” and a magnet to attach the magnetic fluid to simulate “ECT”. This allows the user to have more interaction with the patient model. At the same time, the user can feel the interaction between the magnet and the magnetic fluid, and experience the influence of electromagnetism on the mental state of the patient. I connected the arduino, wires and distance sensors, and Harvey provided the code for the distance sensors. Then I did the overall coding, including the arduino and processing. Later, Harvey worked on the infrared sensor and the related code. The processing code I wrote at the beginning had some bugs, and Harvey got help from Learning assistant to solve the code problems.
CONCLUSIONS
Our project aims to make people care about people with bipolar disorder and learn about ways to cure them. I think our project has achieved its goal to some extent. The end user was able to treat the patient by hugging them, giving them electric shocks (by putting magnets on the magnetic fluid) and giving them medicine (by putting pills in front of the distance sensor). the animation on the processing also worked. We actually encountered many difficulties during the production process. Electricity and magnetism are converted to each other, which makes it not easy for us to control the electromagnet. The current is unstable under the influence of magnetism, which caused us a lot of difficulties. We listened to the suggestions of others and kept improving and debugging to have the final project. In the learning process we have to keep improving and thinking of new possibilities to become more creative.
ANNEX
code for arduino
#include "SerialRecord.h"
SerialRecord writer(3);
int Solenoid = 3; //定义数字口3
int button = 7;
const int pingPin = 5; // Trigger Pin of Ultrasonic Sensor
const int echoPin = 6; // Echo Pin of Ultrasonic Sensor
float distance;
const int ProxSensor = 2;
int value1 = 1;
int value2 = 0;
int value3 = 0;
void setup() {
Serial.begin(9600);
pinMode(Solenoid, OUTPUT); //将Solenoid设置为输出
pinMode(button, INPUT);
pinMode(pingPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(13, OUTPUT);
pinMode(ProxSensor, INPUT);
}
void loop() {
//reader.read();
//analogWrite(Solenoid,reader[0]);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
distance = pulseIn(echoPin, HIGH) / 58.0;
// Serial.print(distance);
int f = digitalRead(ProxSensor);
int i = digitalRead(button);
// int value1 = 1;
// int value2 = 0;
// int value3 = 0;
// if(i==1){
// value1=0;
// }
// Serial.println(distance);
if (distance <= 15) { value1 = 0; } else if (distance > 15) {
value1 = 1;
}
if (i == 1) {
value2 = 1;
} else if (i == 0) {
value2 = 0;
}
if (f == HIGH) //Check the sensor output
{
value3 = 0;
} else if (f == LOW) {
value3 = 1;
}
if ( distance <= 15 || f == LOW) {
// // console.log('in')
analogWrite(Solenoid, 0);
// value1 = 0;
// writer[0] = value1;
// // value1 == 0;
// writer.send();
}
else {
analogWrite(Solenoid, 255);
delay(90);
analogWrite(Solenoid, 0);
delay(90);
// value1 = 1;
// writer[0] = value1;
// // value1==1;
// writer.send();
}
writer[0] = value1;
writer[1] = value2;
writer[2] = value3;
writer.send();
}
code for processing:
import processing.serial.*;
import osteele.processing.SerialRecord.*;
Serial serialPort;
SerialRecord serialRecord;
import processing.video.*;
Movie myMovie;
Movie myMovie2;
PImage photo;
PImage photo2;
int[] values = new int[3];
void setup() {
size(780, 1040);
String serialPortName = SerialUtils.findArduinoPort();
serialPort = new Serial(this, serialPortName, 9600);
serialRecord = new SerialRecord(this, serialPort, 3);
serialRecord.read();
photo = loadImage("drug.jpeg");
photo2 = loadImage("smile.jpeg");
myMovie = new Movie(this, "chill1.mp4");
myMovie.play();
myMovie2 = new Movie(this, "mad2.mp4");
myMovie2.play();
}
void draw() {
background(0);
serialRecord.read();
int value1 = serialRecord.values[0];
int value2 = serialRecord.values[1];
int value3 = serialRecord.values[2];
//print(a);
//if(value1==1 ||value2==1){
// myMovie2.read();
// image(myMovie2, 0, 0);
//} else if(value1==0 ||value2==0){
// myMovie.read();
// image(myMovie, 0, 0);
//}
if (value3==1) {
myMovie2.read();
image(myMovie, 0, 0);
image(photo2, 20, 20);
}
else if (value1==0 ) {
myMovie2.read();
image(myMovie, 0, 0);
image(photo, 20, 20);
}
else {
myMovie.read();
image(myMovie2, 0, 0);
}
print(value1);
//delay(50);
}
the process of 3D printing:
I tried to control the magnetic fluid using electromagnet:
Process of building the circuit and coding:
1st version:
Final version: