IFD:PhysicalComp2011/Dianna Mertz: Difference between revisions

From Medien Wiki
mNo edit summary
mNo edit summary
Line 19: Line 19:
====Arduino====
====Arduino====
<source lang="java">
<source lang="java">
int IRpin = 1;   
int sensePin = 1;  // infrared sensor to analog pin
int val = 0;  
int value;     // value coming from the sensor
                                         
 
void setup() {
void setup() {
Serial.begin(9600);                            
  Serial.begin(9600); // start the serial port                         
}
}
 
 
void loop() {
void loop() {
float volts = analogRead(IRpin)*0.00322265624;
  int value = analogRead(sensePin); // current value of the sensor
float distance = 12.21*pow(volts, -1.15);        
  byte scaledVal = map(value, 0, 600, 0, 255); // rescale to send as one byte   
Serial.println(distance);                                                            
  Serial.write(scaledVal);  //print the distance
  delay(100); // arbitrary wait time
}
}
</source>
</source>


====Processing====
====Processing====
=====Tab 1=====
<source lang="java">
<source lang="java">
Serial myPort;
Serial myPort; // variable for the serial
Table dataTable;
import processing.serial.*; // reads information coming in through the server via Arduino
import processing.serial.*;
int incomingVal; // incoming number value
int incomingVal;
int r; // example
int level;
int b; // example
int r;
int q; // example
int b;
int o; // example
int q;
int o;
   
   
void setup(){
void setup(){
   size(255,255);
   size(255,255); // visualization window size
  dataTable = new Table("data.tsv");
   myPort = new Serial(this,"/dev/tty.usbmodem411",9600); // my Arduino port
  //rowCount = dataTable.getRowCount();
   myPort = new Serial(this,"/dev/tty.usbmodem411",9600);
}
}
   
   
void draw(){
void draw(){
   background(0);
   background(0); // background black for visualization
   while(myPort.available() > 0){
   while(myPort.available() > 0){
     incomingVal = myPort.read();
     incomingVal = myPort.read(); // while new data coming in from Arduino, store in variable
   }
   }
   level = height - incomingVal;
   float reVal =map(incomingVal, 51, 255, 0, 255); // rescale the incoming value to the depth of the container
   fill(level);
   fill(reVal); // fill the visualization with the rescaled incoming value
   rect(0,level,width,height);
   rect(0,height - reVal,width,height); // draws rectangle of the incoming value
 
  println("Pasta:" +(reVal)+ " Rice:" + r+ " Bulgar:" + b+ " Quinoa:" + q+ " Oats:" + o ); // incoming value to be seen in console
   PrintWriter output = createWriter("data/data.tsv");
   PrintWriter output = createWriter("data/data.tsv"); // send info to external file
   output.println("Pasta:" +level+ " Rice:" +r+ " Bulgar:" +b+ " Quinoa:" +q+ " Oats:" +o );
   output.println("Pasta:" +(reVal)+ " Rice:" + r+ " Bulgar:" + b+ " Quinoa:" + q+ " Oats:" + o ); // directs which information to be written to new file
   output.flush();  
   output.flush(); // write the info
}
}
</source>
</source>
=====Tab 2=====
[http://benfry.com/writing/map/Table.pde Ben Fry's Table]


====PHP====
====PHP====

Revision as of 13:01, 25 January 2012

In-Depth: Smart Containers

Need

Question: Is there enough flour and sugar at home to make a cake for your friend's birthday tomorrow? Or do you need to stop at the store on your way home?

Concept

Containers for pantry bulk items that relay content levels to smart phone app in real time.

Equipment

  • Arduino
  • Sharp GP2D120XJ00F Analog Distance Sensor 4-30cm
  • Container
  • Computer

Prototype

(coming soon)

Code

Arduino

int sensePin = 1;   // infrared sensor to analog pin
int value;     // value coming from the sensor

void setup() {
  Serial.begin(9600); // start the serial port                          
}

void loop() {
  int value = analogRead(sensePin); // current value of the sensor
  byte scaledVal = map(value, 0, 600, 0, 255); // rescale to send as one byte     
  Serial.write(scaledVal);  //print the distance
  delay(100);  // arbitrary wait time
}

Processing

Serial myPort; // variable for the serial
import processing.serial.*; // reads information coming in through the server via Arduino
int incomingVal; // incoming number value
int r; // example
int b; // example
int q; // example
int o; // example 
 
void setup(){
  size(255,255); // visualization window size
  myPort = new Serial(this,"/dev/tty.usbmodem411",9600); // my Arduino port
}
 
void draw(){
  background(0); // background black for visualization
  while(myPort.available() > 0){
    incomingVal = myPort.read(); // while new data coming in from Arduino, store in variable
  }
  float reVal =map(incomingVal, 51, 255, 0, 255); // rescale the incoming value to the depth of the container
  fill(reVal); // fill the visualization with the rescaled incoming value
  rect(0,height - reVal,width,height); // draws rectangle of the incoming value
  println("Pasta:" +(reVal)+ " Rice:" + r+ " Bulgar:" + b+ " Quinoa:" + q+ " Oats:" + o ); // incoming value to be seen in console
  PrintWriter output = createWriter("data/data.tsv"); // send info to external file
  output.println("Pasta:" +(reVal)+ " Rice:" + r+ " Bulgar:" + b+ " Quinoa:" + q+ " Oats:" + o ); // directs which information to be written to new file
  output.flush(); // write the info
}

PHP

(Uploads data to web)

 <?php 
$file_handle = fopen("data.tsv", "r");
while (!feof($file_handle)) {
   $line = fgets($file_handle);
   echo $line;
}
fclose($file_handle);
?>

References

Reference for Sharp GP2D120XJ00F Analog Distance Sensor 4-30cm
Arduino – Using a Sharp IR Sensor for Distance Calculation
The Right Way to Read Files with PHP