Personal Diary

Personal Virtual Diary

DSCN5194.JPG

A daily written record of, usually personal, experiences and observations. You can
record or write with discrete entries arranged by date reporting on what has
happened over the course of a day or other period. A diary is not a book, only a
sequence of entries or journals of a person's thoughts or feelings.

Brief

DSCN5196.JPG

Project is to a make personal digital virtual diary which understands your gesture
motions with the help sensors and camera and gives you output in various digital
way; like sound, record, photos, and Reminders.

Process

DSCN5200.JPG

We started by thinking do something to with student room our for person
with his basic daily equipments. We discussed many topics and sketched out
different ideas as storyboards. Finally we came up with the idea of personal
diary.

Before we come to the project we have thought of some other subjects for our
personal physical computing project. These are some of exploration of the other
subjects.
DSCN5198.JPG

Explorations

DSCN5209.JPGDSCN5193.JPG

First we thought of taking a normal diary , like a notebook and converting this
normal diary which opens and closes automatically and tells you about your
daily routine etc. But after further discussions we realised that a diary can be of
any form, which archives information. If we wanted to make a virtual diary so
we can create diary out of any material.
So finally we came up with the idea that we will make our interactive virtual
diary out of the pot.

Method

Prototyping plays an important role in Physical Computing. Inti ally we decided on the
functionality what we want. Then we wrote programs in processing programming
language for each functionality. Then we made quick dirty prototypes for testing each
functionality. All this was done on a computer, without using any microprocessor.
When we tried to convert the same program in Arduino microprocessor, we faced issues
like serial output not coming in properly. So finally we decided to use the same processing
code and give the input using keyboard PCB. We connected the required combinations
of keys in to the pot using small buttons. When the button is pressed, the circuit is
completed. Hence the required output is sent across to the screen.

How diary will work

Our diary (pot) is connected with distance sensor and camera . If the person
comes near to the diary it gets lit with bulb and LEDs, so he knows that diary
is open and he can communicate with it and store input and get output
from the it.
We placed a 6 button inside the diary which plays different roles accordingly.
(Music ,daily routine, reminders, pictures).

Look and Feel

DSCN5203.JPGDSCN5237.JPGDSCN5236.JPG

We always sketch and doodle something in our personal diary along with
diary entries, to emphasize our thoughts clearly.
We depicted picture of the warali paintings all over the pot. The theme is a
diary should not look as electronic device it should look as Indian artifact.
Also, we liked warali more because it narrates a story, which is very much
like the purpose of a diary.
We also concealed all the electronic equipments inside the pot.

Materials used for the project

Pot
Distance sensor
Keyboard chip
Arduino microprocessor
LED’s
Buttons

Simultaneously we wrote codes for different functionalities in processing language to perform the required operations. In the end we integrated all of them as one application.

import ddf.minim.*;
import processing.serial.*;
import processing.video.*;

Capture myCapture;
Minim minim;
AudioInput in;
AudioRecorder recorder;
AudioPlayer snip;

int countname; //change the name
int name = 000000; //set the number in key's' function
int count =0;
int song =-1;

// change the file name
void newFile()
{
countname =( name + 1);
recorder = minim.createRecorder(in, "test" + countname + ".wav", true);
}

void setup()
{
size(500, 500);
minim = new Minim(this);
snip = minim.loadFile("C:\\Users\\Desktop\\recnplay\\silence.mp3", 2048);
snip.play();
//for clicking pic
myCapture = new Capture(this, width, height, 50);
in = minim.getLineIn(Minim.STEREO, 2048);
newFile();//go to change file name
textFont(createFont("SanSerif", 12));
}

void captureEvent(Capture myCapture) {
myCapture.read();
}

void draw()
{
background(0);
stroke(255);
image(myCapture, 0, 0);
if ( recorder.isRecording() )
{
println("Currently recording...");
}
else
{
println("Not recording.");
}
}

void keyPressed(){
if ( key == 'y' )
{ snip.pause();
if ( recorder.isRecording() )
{
recorder.endRecord();
}
else
{
newFile();
recorder.beginRecord();
}
}
if ( key == 'h' )
{ snip.pause();
println("start saving");
name++; //change the file name, everytime +1
recorder.save();
println("Done saving.");
println(name);//check the name
}
if ( key == 'b') {
count++;
String file = "test" + count + ".wav";
println(file);
File f=new File(dataPath("C:\\Users\\Desktop\\recnplay\\"+file));
if (f.exists()){
snip.pause();
snip = minim.loadFile("C:\\Users\\Desktop\\recnplay\\"+file, 2048);
snip.play();
}
else {
println("File does not exist");
count--;
}
}
if ( key == ' ') {
count--;
String file = "test" + count + ".wav";
File f=new File(dataPath("C:\\Users\\Desktop\\recnplay\\"+file));
if(f.exists()){
snip.pause();
snip = minim.loadFile("C:\\Users\\Desktop\\recnplay\\"+file, 2048);
snip.play();
}
else{
println("File does not exist");
count++;
}
}
if (key == 'n') {
snip.pause();
snip = minim.loadFile("C:\\Users\\Desktop\\recnplay\\photoclick.mp3", 2048);
saveFrame("test-####.jpg");
println("Photo clicked");
snip.play();
println("file played");
}
if ( key == '2') {
song++;
String file = song + ".mp3";
println(file);
if (song<=3){
snip.pause();
snip = minim.loadFile("C:\\Users\\Desktop\\recnplay\\songs\\"+file, 2048);
snip.play();
}
else {
println("File does not exist");
song--;
}
}
if ( key == '3') {
song--;
String file = song + ".mp3";
if(song>=0){
snip.pause();
snip = minim.loadFile("C:\\Users\\Desktop\\recnplay\\songs\\"+file, 2048); v
snip.play();
}
else{
println("File does not exist");
song++;
}
}
}

void stop()
{
snip.close();
minim.stop();
super.stop();
}
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License