Reports.BodyFatMonitor History

Hide minor edits - Show changes to output

May 09, 2007, at 06:11 PM by Roger Tsai -
Added lines 70-71:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/Animation2.png | '''Boy & Girl Animation''']]\\
Deleted lines 119-121:
Another animation I made by Processing is inspired by the idea of impedance. I translate the idea of body impedance into social resistance, especially romance resistance. By simply creating two icons indicate boy and girl, the animation show your resistance of love. The more fat you got, the more love resistance grow.\\

Processing Code:
Changed lines 124-127 from:
to enhance the meaning behind the number
of body fat percentage,
which give user more visual strike,
to remind the importance of controling body fat
.
to:
to clearly visualize the percentage by
diagram
of body fat percentage.
Deleted line 132:
String buff = "";
Deleted line 133:
int NEWLINE = 10;
Changed lines 137-142 from:
int valueA = 200;
int valueB; // the serial port data

int[] valuesA = new int[10]
;
int[] valuesB = new int[10];
to:
int opacity = 50;
float valueA = 0.15;
Deleted line 153:
Deleted line 155:
Added lines 160-162:

drawPoint();
Deleted lines 164-169:
println("myPort.available()" + myPort.available());
while (myPort.available() > 0) {
serialEvent(myPort.read());
}

// Boy
Changed lines 166-172 from:
fill(153,196,233);
ellipse(140, 120, 60, 60);//head
rect(90
, 150, 100, 100);//body
rect(100
,250,30,60);
rect(150,250,30,60);
ellipse(114, 310, 29, 29);
ellipse(164
, 310, 29, 29);
to:
fill(140,140,220);// blue
rect
(50,60,((width-50)/50*8),50);
rect(50
,140,((width-50)/50*11),50);
rect(50,300,((width-50)/50*21),50);
rect(50,380,((width-50)/50*23),50);
Changed lines 173-195 from:
// Girl
noStroke();
fill(239
,152,193);
ellipse
(380, 120, 60, 60);//head
quad
(340, 150, 420, 150, 440, 250, 320, 250);//body
rect(340,250,30,60);
rect(390,250,30,60);
ellipse(354, 310, 29, 29);
ellipse(404, 310, 29, 29);

i++;
j++;
if(i%20 == 19){
drawText();
drawPulse();
}

}

void drawText(){
fill(30,200,200);
textFont(myFont, 32);
text("LOVE RESISTANCE", 120, 40
);
to:
fill(50,120,50);// green
rect(50+((width-50)/50*8),60,((width-50)/50*12), 50);
rect
(50+((width-50)/50*11),140,((width-50)/50*11), 50);
rect
(50+((width-50)/50*21),300,((width-50)/50*12), 50);
rect(50+((width-50)/50*23)
,380,((width-50)/50*11), 50);
Changed lines 179-180 from:
fill(200,30,200);
textFont(myFont, 24);
to:
fill(240,240,60);// yellow
rect
(50+((width-50)/50*20),60,((width-50)/50*5), 50);
rect(50+((width-50)/50*22),140,((width-50)/50*6), 50);
rect(50+((width-50)/50*33),300,((width-50)/50*6), 50);
rect(50+((width-50)/50*34),380,((width-50)/50*6), 50);
Changed lines 185-200 from:
if (valueA < 100){
text
("low impedence", 150, 70);
fill
(255,100,100);
/*beginShape();
vertex(30
, 20);
bezierVertex
(80, 0, 80, 75, 30, 80);
bezierVertex
(50, 80, 60, 25, 30, 20);
endShape();*/
}
else if (valueA > 100 || valueA < 200){
text("mid impedence", 150, 70);
}
else if(valueA >200){
text("high impedence", 150, 70);
}
to:
fill(240,60,60);// red
rect
(50+((width-50)/50*25),60,((width-50)/50*25), 50);
rect
(50+((width-50)/50*28),140,((width-50)/50*22), 50);
rect
(50+((width-50)/50*39),300,((width-50)/50*11), 50);
rect
(50+((width-50)/50*40),380,((width-50)/50*10), 50);
Changed lines 191-206 from:
}

void drawPulse(){
noStroke();
fill(255,100,200);
ellipse(j,k ,3,3);
if(j > width){
j = 0;
background(#000000, 200);
}
if(j < (width/2+60) && j >(width/2-60)){
k= valueA;
}
else{
k = 380.0;}
}
to:
fill(100,100,255);
textFont(myFont, 36);
text("MALE", width/2-40, 40);
text("FEMALE",width/2-20, 282);

fill(255,255,255);
textFont(myFont, 14);
text("20~", 5, 82);
text("39", 5, 102);
text("above", 5, 162);
text("39", 5, 182);
text("20~", 5, 322);
text("39", 5, 342);
text("above", 5, 402);
text("39", 5, 422);

text("UNDER", 52, 82);
text("FAT", 52, 102);
text("UNDER", 52, 162);
text("FAT", 52, 182);
text("UNDER", 52, 322);
text("FAT", 52, 342);
text("UNDER", 52, 402);
text("FAT", 52, 422);

text("HEALTHY", 128, 82);
text("8% - 20%", 128, 102);
text("HEALTHY", 160, 162);
text("11% - 22%", 160, 182);
text("HEALTHY", 250, 322);
text("21% - 33%", 250, 342);
text("HEALTHY", 270, 402);
text("23% - 34%", 270, 422);

text("OVER", 233, 82);
text("FAT", 233, 102);
text("OVER", 255, 162);
text("FAT", 255, 182);
text("OVER", 350, 322);
text("FAT", 350, 342);
text("OVER", 360, 402);
text("FAT", 360, 422);

text("OBESE", 380, 92);
text("OBESE", 380, 172);
text("OBESE", 435, 332);
text("OBESE", 440, 412);
Changed lines 239-242 from:
//Serial parsing stuff to get the raw values from
//the serial event
void serialEvent
(int serial){
if(serial > 0){ valueA = serial;
to:

println
("myPort.available()" + myPort.available());
while (myPort.available() > 0) {
serialEvent(myPort.read())
;
Added lines 245-247:
i++;
Added lines 250-274:
void drawPoint(){

int p = i/20;
if( (p%2 ==0) ){
opacity = 10;
background(0);
}
noStroke();
fill(230,230,230,opacity);
rect (valueA*2*(width-50)+50, 0, 5, height);
text(valueA*100 + "%", valueA*2*(width-50)+50, height/2);
/* rect (valueA, 60, 5, 50);
rect (valueA, 140, 5, 50);
rect (valueA, 300, 5, 50);
rect (valueA, 380, 5, 50);
*/
}

//Serial parsing stuff to get the raw values from
//the serial event
void serialEvent(int serial){
if(serial > 0){ valueA = serial;
}
}
Changed lines 277-420 from:
to:
Another animation I made by Processing is inspired by the idea of impedance. I translate the idea of body impedance into social resistance, especially romance resistance. By simply creating two icons indicate boy and girl, the animation show your resistance of love. The more fat you got, the more love resistance grow.\\

[[http://itp.nyu.edu/~htt213/SensorWorkshop/Animation1.png | '''Boy & Girl Animation''']]\\

Processing Code:
[@

/***
Create Animation for Body Fat Monitor,
to enhance the meaning behind the number
of body fat percentage,
which give user more visual strike,
to remind the importance of controling body fat.
Created by Roger TSAI 05/03/2007
***/

import processing.serial.*;

Serial myPort; // The serial port
PFont myFont; // The display font
String buff = "";
int val = 0;
int NEWLINE = 10;
int i = 40; // counter
float j = 0.0;
float k = 380.0;
int valueA = 200;
int valueB; // the serial port data

int[] valuesA = new int[10];
int[] valuesB = new int[10];

float valNormA, valNormB; // normalized values of A and B

void setup () {
size(500, 500); // window size
frameRate(60);

myFont = loadFont("Courier-Bold-12.vlw");
textFont(myFont, 16);
fill(#E9FF5B, 200);
smooth();

background(#000000, 200);
strokeCap(ROUND);
ellipseMode(CENTER);
strokeWeight(3);

println(Serial.list()); // List all serial ports
myPort = new Serial(this, Serial.list()[1], 9600);

}

void draw()
{
fill(0,1);
rect(0,0, width, height);
println("myPort.available()" + myPort.available());
while (myPort.available() > 0) {
serialEvent(myPort.read());
}

// Boy
noStroke();
fill(153,196,233);
ellipse(140, 120, 60, 60);//head
rect(90, 150, 100, 100);//body
rect(100,250,30,60);
rect(150,250,30,60);
ellipse(114, 310, 29, 29);
ellipse(164, 310, 29, 29);


// Girl
noStroke();
fill(239,152,193);
ellipse(380, 120, 60, 60);//head
quad(340, 150, 420, 150, 440, 250, 320, 250);//body
rect(340,250,30,60);
rect(390,250,30,60);
ellipse(354, 310, 29, 29);
ellipse(404, 310, 29, 29);

i++;
j++;
if(i%20 == 19){
drawText();
drawPulse();
}

}

void drawText(){
fill(30,200,200);
textFont(myFont, 32);
text("LOVE RESISTANCE", 120, 40);

fill(200,30,200);
textFont(myFont, 24);

if (valueA < 100){
text("low impedence", 150, 70);
fill(255,100,100);
/*beginShape();
vertex(30, 20);
bezierVertex(80, 0, 80, 75, 30, 80);
bezierVertex(50, 80, 60, 25, 30, 20);
endShape();*/
}
else if (valueA > 100 || valueA < 200){
text("mid impedence", 150, 70);
}
else if(valueA >200){
text("high impedence", 150, 70);
}


}

void drawPulse(){
noStroke();
fill(255,100,200);
ellipse(j,k ,3,3);
if(j > width){
j = 0;
background(#000000, 200);
}
if(j < (width/2+60) && j >(width/2-60)){
k= valueA;
}
else{
k = 380.0;}
}

//Serial parsing stuff to get the raw values from
//the serial event
void serialEvent(int serial){
if(serial > 0){ valueA = serial;
}
}

@]
May 09, 2007, at 06:08 PM by Roger Tsai -
May 09, 2007, at 03:25 PM by Roger Tsai -
Changed line 43 from:
***[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020598.JPG | '''picture of shooting electron footpad''']]\\
to:
***[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1010598.JPG | '''picture of shooting electron footpad''']]\\
May 09, 2007, at 03:23 PM by Roger Tsai -
Changed lines 38-40 from:
***[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020464.JPG | '''picture of flex sensor''']]\\
to:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020464.JPG | '''picture of flex sensor''']]\\
Changed lines 44-48 from:
***[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020442.JPG | '''picture of back side of pad''']]\\
to:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020442.JPG | '''picture of back side of pad''']]\\
May 09, 2007, at 03:22 PM by Roger Tsai -
May 09, 2007, at 03:22 PM by Roger Tsai -
Changed lines 37-40 from:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020467.JPG | '''picture of balance bridge''']]\\
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020464.JPG | '''picture of flex sensor''']]\\
to:
***[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020467.JPG | '''picture of balance bridge''']]\\
***[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020464.JPG | '''picture of flex sensor''']]\\
Changed lines 43-48 from:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020598.JPG | '''picture of shooting electron footpad''']]\\
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020442.JPG | '''picture of back side of pad''']]\\
to:
***[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020598.JPG | '''picture of shooting electron footpad''']]\\
***[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020442.JPG | '''picture of back side of pad''']]\\
May 09, 2007, at 03:21 PM by Roger Tsai -
May 09, 2007, at 03:18 PM by Roger Tsai -
Changed line 4 from:
to:
\\\
May 09, 2007, at 03:11 PM by Roger Tsai -
Changed lines 123-256 from:
to:
/***
Create Animation for Body Fat Monitor,
to enhance the meaning behind the number
of body fat percentage,
which give user more visual strike,
to remind the importance of controling body fat.
Created by Roger TSAI 05/03/2007
***/

import processing.serial.*;

Serial myPort; // The serial port
PFont myFont; // The display font
String buff = "";
int val = 0;
int NEWLINE = 10;
int i = 40; // counter
float j = 0.0;
float k = 380.0;
int valueA = 200;
int valueB; // the serial port data

int[] valuesA = new int[10];
int[] valuesB = new int[10];

float valNormA, valNormB; // normalized values of A and B

void setup () {
size(500, 500); // window size
frameRate(60);

myFont = loadFont("Courier-Bold-12.vlw");
textFont(myFont, 16);
fill(#E9FF5B, 200);
smooth();

background(#000000, 200);
strokeCap(ROUND);
ellipseMode(CENTER);
strokeWeight(3);

println(Serial.list()); // List all serial ports
myPort = new Serial(this, Serial.list()[1], 9600);

}

void draw()
{
fill(0,1);
rect(0,0, width, height);
println("myPort.available()" + myPort.available());
while (myPort.available() > 0) {
serialEvent(myPort.read());
}

// Boy
noStroke();
fill(153,196,233);
ellipse(140, 120, 60, 60);//head
rect(90, 150, 100, 100);//body
rect(100,250,30,60);
rect(150,250,30,60);
ellipse(114, 310, 29, 29);
ellipse(164, 310, 29, 29);


// Girl
noStroke();
fill(239,152,193);
ellipse(380, 120, 60, 60);//head
quad(340, 150, 420, 150, 440, 250, 320, 250);//body
rect(340,250,30,60);
rect(390,250,30,60);
ellipse(354, 310, 29, 29);
ellipse(404, 310, 29, 29);

i++;
j++;
if(i%20 == 19){
drawText();
drawPulse();
}

}

void drawText(){
fill(30,200,200);
textFont(myFont, 32);
text("LOVE RESISTANCE", 120, 40);

fill(200,30,200);
textFont(myFont, 24);

if (valueA < 100){
text("low impedence", 150, 70);
fill(255,100,100);
/*beginShape();
vertex(30, 20);
bezierVertex(80, 0, 80, 75, 30, 80);
bezierVertex(50, 80, 60, 25, 30, 20);
endShape();*/
}
else if (valueA > 100 || valueA < 200){
text("mid impedence", 150, 70);
}
else if(valueA >200){
text("high impedence", 150, 70);
}


}

void drawPulse(){
noStroke();
fill(255,100,200);
ellipse(j,k ,3,3);
if(j > width){
j = 0;
background(#000000, 200);
}
if(j < (width/2+60) && j >(width/2-60)){
k= valueA;
}
else{
k = 380.0;}
}

//Serial parsing stuff to get the raw values from
//the serial event
void serialEvent(int serial){
if(serial > 0){ valueA = serial;
}
}
May 09, 2007, at 12:43 PM by Roger Tsai -
Changed lines 118-126 from:
Another animation I made by Processing is inspired by the idea of impedance. I translate the idea of body impedance into social resistance, especially romance resistance. By simply creating two icons indicate boy and girl, the animation show your resistance of love. The more fat you got, the more love resistance grow.
to:
Another animation I made by Processing is inspired by the idea of impedance. I translate the idea of body impedance into social resistance, especially romance resistance. By simply creating two icons indicate boy and girl, the animation show your resistance of love. The more fat you got, the more love resistance grow.\\

Processing Code:
[@


@]
Added lines 130-131:
May 09, 2007, at 12:42 PM by Roger Tsai -
Changed lines 115-117 from:
to:
\\
And Processing Code:
May 09, 2007, at 12:41 PM by Roger Tsai -
Changed line 72 from:
to:
[@
Changed lines 114-115 from:
to:
@]
May 09, 2007, at 12:37 PM by Roger Tsai -
Changed line 51 from:
The average price range is between $30 ~ $100, depends on extra function and material.
to:
The average price range is between $30 ~ $100, depends on extra function and material.\\
Changed lines 55-62 from:
**Internet, e.g. eBay
to:
**Internet, e.g. eBay, Amazon
Added lines 66-116:
[++EXTENDING APPLICATION ++]

This body fat monitor only shows the number of your body fat percentage, which doesn't really give user a clear idea whether he or she has too much obesity or not. To clarify the level of obesity, I designed a simple animation that clearly indicate one is normal or too thin, or too fat. I use Arduino micro-controller to read the value send and receive by footpad, and then send these value to my laptop's serial port. Once Processing(An interactive programming language that good at graphical creation) read these value, it would generate the animation to show user's body fat level on a diagram of body fat standard.\\\

The Arduino code is here:\\


/*** Detecting two different value and make a deduction, the result will be
send to Processing
Written by Roger TSAI 05/02/2007
***/


int sensorPin1 = 2; // select the input pin for sensor
int sensorPin2 = 3; // select the input pin for other sensor
int ledPin = 13; // select the pin for the LED
int val1 = 0; // variable to store the value coming from the sensor
int val2 = 0; // variable to store the value coming from the sensor
int valFinal = 0;

void setup() {
pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT
pinMode(sensorPin1, OUTPUT); // declare the ledPin as an OUTPUT
pinMode(sensorPin2, OUTPUT); // declare the ledPin as an OUTPUT

Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}

void loop() {

digitalWrite(ledPin, HIGH); // sets the LED on

val1 = analogRead(sensorPin1)*100; // read the value from the sensor
val2 = analogRead(sensorPin2)*100; // read the value from the sensor
valFinal = val1 - val2;

//Serial.print("A"); //header variable, so we know which sensor value is which
//Serial.print(val1, DEC);
// Serial.print(10, BYTE); //terminating character

//Serial.print("B"); //header variable, so we know which sensor value is which
//Serial.print(val2, DEC);
Serial.print(valFinal, DEC);
Serial.print(10, BYTE); //terminating character


delay(10);
}


Another animation I made by Processing is inspired by the idea of impedance. I translate the idea of body impedance into social resistance, especially romance resistance. By simply creating two icons indicate boy and girl, the animation show your resistance of love. The more fat you got, the more love resistance grow.
Deleted lines 119-121:
[++ ++]
May 09, 2007, at 12:22 PM by Roger Tsai -
Changed lines 21-22 from:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/Women_BodyFat.bmp | '''Women's Body Fat Standard''']]\\
[[http://itp.nyu.edu/~htt213/SensorWorkshop/BodyFat_Percentage.bmp | '''Men's Body Fat Standard''']]\\
to:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/Women_BodyFat.bmp | '''diagram of Women's Body Fat Standard''']]\\
[[http://itp.nyu.edu/~htt213/SensorWorkshop/BodyFat_Percentage.bmp | '''diagram of Men's Body Fat Standard''']]\\
Changed lines 37-40 from:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020467.JPG | '''balance bridge''']]\\
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020464.JPG | '''flex sensor''']]\\
to:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020467.JPG | '''picture of balance bridge''']]\\
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020464.JPG | '''picture of flex sensor''']]\\
Changed lines 43-46 from:
to:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020598.JPG | '''picture of shooting electron footpad''']]\\
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020442.JPG | '''picture of back side of pad''']]\\
May 09, 2007, at 12:15 PM by Roger Tsai -
Changed lines 1-4 from:
Manufacturer: TANITA http://www.tanita.com/

Report by Roger
TSAI
to:
Manufacturer: TANITA http://www.tanita.com/ \\
Cost:$30 \\
Report by Roger
TSAI \\
Added lines 33-34:
There are two things it senses: weight and impedance
May 09, 2007, at 09:57 AM by Roger Tsai -
Changed lines 35-38 from:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020467.jpg | '''balance bridge''']]\\
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020464.jpg | '''flex sensor''']]\\
to:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020467.JPG | '''balance bridge''']]\\
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020464.JPG | '''flex sensor''']]\\
May 09, 2007, at 09:53 AM by Roger Tsai -
May 09, 2007, at 09:53 AM by Roger Tsai -
Changed lines 34-35 from:
**Use balance bridge, malleable metal, and flex sensor to calculate your weight
to:
**Use balance bridge, malleable metal, and flex sensor to calculate your weight.
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020467.jpg | '''balance bridge''']]\\
[[http://itp.nyu.edu/~htt213/SensorWorkshop/P1020464.jpg | '''flex sensor''']]\\
May 09, 2007, at 09:49 AM by Roger Tsai -
Changed line 33 from:
*'+Weight'
to:
*Weight
Changed lines 36-42 from:
*'+Impedance'
Shooting electron from left side of food pad, and receive electron from right side.
Measure voltage difference to between two sides.
to:
*Impedance
**Shooting electron from left side of food pad, and receive electron from right side. Measure voltage difference to between two sides.
May 09, 2007, at 09:49 AM by Roger Tsai -
Changed lines 13-17 from:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/Women_BodyFat.bmp | '''Women's Body Fat Standard''']]\\
[[http://itp.nyu.edu/~htt213/SensorWorkshop/BodyFat_Percentage.bmp | '''Men's Body Fat Standard''']]\\
[[Attach:Mens BodyFat Standard.jpg]]\\
[[http://itp.nyu.edu/physcomp/uploads/Reports/Mens%20BodyFat%20Standard.jpg]]
\\\
to:
Changed lines 21-29 from:
[++AVAILABILITY AND PRICING:++]

The average price range is between $30
~ $100, depends on extra function and material.
You can buy one in these places
:
**Domestic merchandise, e.g. Bed, Bath, and Beyond
**Pharmacy, e
.g. Duane Read
**Internet, e.g. eBay
to:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/Women_BodyFat.bmp | '''Women's Body Fat Standard''']]\\
[[http://itp.nyu.edu/
~htt213/SensorWorkshop/BodyFat_Percentage.bmp | '''Men's Body Fat Standard''']]\\
[[Attach:Mens BodyFat Standard
.jpg]]\\
[[http
://itp.nyu.edu/physcomp/uploads/Reports/Mens%20BodyFat%20Standard.jpg]]
\\\
Added lines 31-56:
[++WORKING MECHANISM ++]

*'+Weight'
**Use balance bridge, malleable metal, and flex sensor to calculate your weight

*'+Impedance'
Shooting electron from left side of food pad, and receive electron from right side.
Measure voltage difference to between two sides.




[++AVAILABILITY AND PRICING:++]

The average price range is between $30 ~ $100, depends on extra function and material.
You can buy one in these places:
**Domestic merchandise, e.g. Bed, Bath, and Beyond
**Pharmacy, e.g. Duane Read
**Internet, e.g. eBay





Deleted lines 65-67:
[++ ++]
May 09, 2007, at 09:44 AM by Roger Tsai -
Deleted lines 17-18:
\\\
Changed lines 23-24 from:
to:
\\\
May 09, 2007, at 09:43 AM by Roger Tsai -
Changed lines 22-25 from:
Measuring body fat
Two user memory set
Unit: Lb or kg
to:
###Measuring body fat
###Two user memory set
###Unit: Lb or kg
May 09, 2007, at 09:42 AM by Roger Tsai -
May 09, 2007, at 09:42 AM by Roger Tsai -
Added lines 20-25:
*Basic function of this body fat monitor:
###Measuring weight
Measuring body fat
Two user memory set
Unit: Lb or kg
May 09, 2007, at 09:39 AM by Roger Tsai -
Changed line 15 from:
[[Attach:Mens BodyFat Standard.jpg]]
to:
[[Attach:Mens BodyFat Standard.jpg]]\\
May 09, 2007, at 09:39 AM by Roger Tsai -
Changed line 16 from:
http://itp.nyu.edu/physcomp/uploads/Reports/Mens%20BodyFat%20Standard.jpg
to:
[[http://itp.nyu.edu/physcomp/uploads/Reports/Mens%20BodyFat%20Standard.jpg]]
May 09, 2007, at 09:38 AM by Roger Tsai -
Added line 16:
http://itp.nyu.edu/physcomp/uploads/Reports/Mens%20BodyFat%20Standard.jpg
Changed lines 19-20 from:
\\\
to:
May 09, 2007, at 09:36 AM by Roger Tsai -
Changed line 15 from:
[[Attach:Mens BodyFat Standard.jpg]])
to:
[[Attach:Mens BodyFat Standard.jpg]]
May 09, 2007, at 09:33 AM by Roger Tsai -
Changed line 15 from:
[[Attach:Men's BodyFat Standard.jpg]])
to:
[[Attach:Mens BodyFat Standard.jpg]])
May 09, 2007, at 09:28 AM by Roger Tsai -
Changed line 15 from:
[[Attach:myphoto.jpg]])
to:
[[Attach:Men's BodyFat Standard.jpg]])
May 09, 2007, at 09:26 AM by Roger Tsai -
Changed lines 15-16 from:
to:
[[Attach:myphoto.jpg]])
\\\
\\\
\\\
May 09, 2007, at 09:22 AM by Roger Tsai -
Changed lines 13-16 from:
[[Attach:myImageName.jpg]]\\
[[Attach:myImageName
.jpg]]\\
to:
[[http://itp.nyu.edu/~htt213/SensorWorkshop/Women_BodyFat.bmp | '''Women's Body Fat Standard''']]\\
[[http://itp.nyu.edu/~htt213/SensorWorkshop/BodyFat_Percentage.bmp | '''Men's Body Fat Standard'''
]]\\
May 09, 2007, at 09:01 AM by Roger Tsai -
Changed line 42 from:
*Click here to view a processing simulation (external link to http://pitaru.com).
to:
*Click here to view a processing simulation (external link to http://rogersensorworkshop.blogspot.com).
May 09, 2007, at 08:53 AM by Roger Tsai -
Changed lines 13-16 from:
[[Attach:myImageName.jpg]]
[[Attach:myImageName.jpg]]
to:
[[Attach:myImageName.jpg]]\\
[[Attach:myImageName.jpg]]\\
May 09, 2007, at 08:52 AM by Roger Tsai -
Changed lines 13-16 from:
to:
[[Attach:myImageName.jpg]]
[[Attach:myImageName.jpg]]
May 09, 2007, at 08:49 AM by Roger Tsai -
Changed lines 9-10 from:
The theory of electron loss is a hypothesis that while electron travels through the water found in muscle and fat, the more muscle a person has, the more water their body can hold. The greater the amount of water in a person's body, the easier it is for the current to pass through it. In contrast, the more fat, the more resistance to the current. The factors that go into determining the percentage of body fat include a person's weight, height, age, gender and body type.\\\
to:
Changed lines 25-26 from:
to:
The theory of electron loss is a hypothesis that while electron travels through the water found in muscle and fat, the more muscle a person has, the more water their body can hold. The greater the amount of water in a person's body, the easier it is for the current to pass through it. In contrast, the more fat, the more resistance to the current. The factors that go into determining the percentage of body fat include a person's weight, height, age, gender and body type.\\\
May 09, 2007, at 08:48 AM by Roger Tsai -
Changed lines 12-13 from:
Before using the scale for the first time you enter your age, gender, height. Weight is displayed on the LCD screen and five seconds later your percentage of body fat appears. Usually you will get higher body fat value in the morning than evening because after a sleep the food you consumed at daytime already transform into body fat.
to:
Before using the scale for the first time you enter your age, gender, height. Weight is displayed on the LCD screen and five seconds later your percentage of body fat appears. Usually you will get higher body fat value in the morning than evening because after a sleep the food you consumed at daytime already transform into body fat.\\\
May 09, 2007, at 08:48 AM by Roger Tsai -
Changed lines 7-8 from:
Body fat monitor often uses a technology called "Bioelectrical Impedance Analysis"(BIA) which measures the impedance to an electrical signal in your body which might be seen as the level of obesity. Actually it shots an non-harmful electron into one side or your body(e.g. your left foot) and receive it from the other side(e.g. your right foot). It measures how much the loss of electron is between the start point and the end, and then translate this number of loss into degree or percentage of body fat degree and show it on the screen.
to:
Body fat monitor is a well developed application, used to measure one's weight and body fat. It often uses a technology called "Bioelectrical Impedance Analysis"(BIA) which measures the impedance to an electrical signal in your body which might be seen as the level of obesity. Actually it shots an non-harmful electron into one side or your body(e.g. your left foot) and receive it from the other side(e.g. your right foot). It measures how much the loss of electron is between the start point and the end, and then translate this number of loss into degree or percentage of body fat degree and show it on the screen.\\\

The theory of electron loss is a hypothesis that while electron travels through the water found in muscle and fat, the more muscle a person has, the more water their body can hold. The greater the amount of water in a person's body, the easier it is for the current to pass through it. In contrast, the more fat, the more resistance to the current. The factors that go into determining the percentage of body fat include a person's weight, height, age, gender and body type.\\\

[+How to use a body fat monitor:+]
Before using the scale for the first time you enter your age, gender, height. Weight is displayed on the LCD screen and five seconds later your percentage of body fat appears. Usually you will get higher body fat value in the morning than evening because after a sleep the food you consumed at daytime already transform into body fat
.
May 09, 2007, at 01:14 AM by Roger Tsai -
May 09, 2007, at 01:13 AM by Roger Tsai -
May 09, 2007, at 01:13 AM by Roger Tsai -
May 09, 2007, at 01:10 AM by Roger Tsai -
Changed lines 18-48 from:
THEORY OF OPERATION

The SQ-SEN-200 series sensor acts like a normally closed switch which chatters open and closed as it is tilted or vibrated. The SQ-SEN-200 is not guaranteed to be closed—even when the sensing mechanism is at rest. However, a good rule of thumb is that 75% - 95% of the time (depending on orientation) when the sensor is at rest it will be closed. The engineer should design his or her software to look for high-to-low and low-to-high edge transitions rather than an open of closed state of the switch. {From datasheet}

In other words: when working with this sensor, you can expect it to be closed unless its moving. But in reality it will sometimes remains open even when rested. Because of this, the fail-safe way to detect motion is to look for changes on the input-pin rather than a distinct state.

Signalquest has a twin model - the SQ-SEN-390. The two models are almost identical, except tht the 390 will sometimes remain open and sometimes closed when rested - depending on its orientation. This could be helpful if you wish to detect vibration and overal oreintation (think digital-cameras and how their LCD flips direction when the camera is tilted). Following are two schematics that show the difecence between the two sensors when at rest:
ELECTRICAL CHARACARISTICS :

-* Current consumption is determined by the resistance of the application circuit and the supply voltage.

The table above shows that this sensor can take between 2.7V and 12V, without affecting its sesing operation. When supplied higher voltages, it will consume more current when the circuit is closed (as it usually is withthe sen-200). This will affect power conservation when using a battery. For this reason it is recomended to use a resistor and limit supplied voltage to the minimum 2.7V. I found that the usual 10K does the trick when working with a 3V coin-cell battery as power source.
GENERAL APPLICATION CIRCUIT:

The sensor can be integrated into a circuit similarly to a an on/off switch. The circuit below uses the pic's internal ('weak') pull-up resistor on Pin-5. This means that the pic is providing 3V to Pin-5, keaping it normaly high. But when the sensor closes the circuit, Pin-5 will be pulled to ground and therefor go low. There are two main benefits to using an internal pullup as opposed to the usual swithc circuit:

1. We usually add a pulldown resistor to ground on input pins, to prevent the pin from 'floating' between hi/low. In this case, the internal resistor pulls the pin up permamently so we save one resistor.

2. The pic itself provides the voltage for the sensor. In return, we can conserve energy by putting the pic to sleep, and only checking for movements every .5 seconds by momentarily supplying voltage to the sensor. This is called an interrupt wake-up routine. It is explained in further detail below.
IMPLEMENTATION OF MOTION DETECTION:

The following instructions were given by the manufacturer, towards a motion-detection application that wakes up a MCU from Sleep mode (low-power consumption mode):

* Interrupts: Connect the sensor to an interrupt line on the microcontroller or CPU.
* One-shot: While remaining in a low power mode i.e. running on a 32 KHz watch crystal, look for an interrupt. After the first interrupt pulse, disable further interrupts for 0.5 seconds, thereby only allowing one pulse per ˝ second time-lice to be recognized. Do not wake up the processor at this time.
* Leaky integrator: Every ˝ second time-slice, if the one-shot is tripped, increment a pulse counter variable by 5. If it isn’t tripped, decrement the pulse counter variable by 1. Do not switch to a high power mode yet.
* Threshold: If the pulse counter value exceeds a threshold of 25 (5 seconds of motion) then the device is moving. Now, switch to a high power state.
* Notes: Be sure to stop incrementing at some maximum pulse counter value (try 50), so it doesn’t continue to grow with continuous motion. Be sure to stop decrementing the pulse counter at zero so a numerical underflow doesn't’t occur.

The following PicBasicPro code demonstrates the simplest implementation of motion detection, using the sensor. This code will disregard the interrupt routines mentioned above . The program will light up an LED when motion is detected. Every 50ms, the input-pin will be checked. If its state has changed since the last check, a counter will increase by 5, otherwise it will decrease by 1. If the counter rises above 25, we will light up the LED. When it drops below 25, the led will be turned off.
*Click here to view a processing simulation of the algorythm
(external link to http://pitaru.com).
to:
[++THEORY OF OPERATION++]


[++ ++]


[++ ++]


[++ ++]


[++ ++]


*Click here to view a processing simulation
(external link to http://pitaru.com).
May 09, 2007, at 01:08 AM by Roger Tsai -
Changed lines 5-6 from:
DESCRIPTION
to:
[++DESCRIPTION++]
Changed lines 9-10 from:
AVAILABILITY AND PRICING:
to:
[++AVAILABILITY AND PRICING:++]
Deleted line 17:
May 09, 2007, at 01:07 AM by Roger Tsai -
Added lines 1-49:
Manufacturer: TANITA http://www.tanita.com/

Report by Roger TSAI

DESCRIPTION

Body fat monitor often uses a technology called "Bioelectrical Impedance Analysis"(BIA) which measures the impedance to an electrical signal in your body which might be seen as the level of obesity. Actually it shots an non-harmful electron into one side or your body(e.g. your left foot) and receive it from the other side(e.g. your right foot). It measures how much the loss of electron is between the start point and the end, and then translate this number of loss into degree or percentage of body fat degree and show it on the screen.

AVAILABILITY AND PRICING:

The average price range is between $30 ~ $100, depends on extra function and material.
You can buy one in these places:
**Domestic merchandise, e.g. Bed, Bath, and Beyond
**Pharmacy, e.g. Duane Read
**Internet, e.g. eBay



THEORY OF OPERATION

The SQ-SEN-200 series sensor acts like a normally closed switch which chatters open and closed as it is tilted or vibrated. The SQ-SEN-200 is not guaranteed to be closed—even when the sensing mechanism is at rest. However, a good rule of thumb is that 75% - 95% of the time (depending on orientation) when the sensor is at rest it will be closed. The engineer should design his or her software to look for high-to-low and low-to-high edge transitions rather than an open of closed state of the switch. {From datasheet}

In other words: when working with this sensor, you can expect it to be closed unless its moving. But in reality it will sometimes remains open even when rested. Because of this, the fail-safe way to detect motion is to look for changes on the input-pin rather than a distinct state.

Signalquest has a twin model - the SQ-SEN-390. The two models are almost identical, except tht the 390 will sometimes remain open and sometimes closed when rested - depending on its orientation. This could be helpful if you wish to detect vibration and overal oreintation (think digital-cameras and how their LCD flips direction when the camera is tilted). Following are two schematics that show the difecence between the two sensors when at rest:
ELECTRICAL CHARACARISTICS :

-* Current consumption is determined by the resistance of the application circuit and the supply voltage.

The table above shows that this sensor can take between 2.7V and 12V, without affecting its sesing operation. When supplied higher voltages, it will consume more current when the circuit is closed (as it usually is withthe sen-200). This will affect power conservation when using a battery. For this reason it is recomended to use a resistor and limit supplied voltage to the minimum 2.7V. I found that the usual 10K does the trick when working with a 3V coin-cell battery as power source.
GENERAL APPLICATION CIRCUIT:

The sensor can be integrated into a circuit similarly to a an on/off switch. The circuit below uses the pic's internal ('weak') pull-up resistor on Pin-5. This means that the pic is providing 3V to Pin-5, keaping it normaly high. But when the sensor closes the circuit, Pin-5 will be pulled to ground and therefor go low. There are two main benefits to using an internal pullup as opposed to the usual swithc circuit:

1. We usually add a pulldown resistor to ground on input pins, to prevent the pin from 'floating' between hi/low. In this case, the internal resistor pulls the pin up permamently so we save one resistor.

2. The pic itself provides the voltage for the sensor. In return, we can conserve energy by putting the pic to sleep, and only checking for movements every .5 seconds by momentarily supplying voltage to the sensor. This is called an interrupt wake-up routine. It is explained in further detail below.
IMPLEMENTATION OF MOTION DETECTION:

The following instructions were given by the manufacturer, towards a motion-detection application that wakes up a MCU from Sleep mode (low-power consumption mode):

* Interrupts: Connect the sensor to an interrupt line on the microcontroller or CPU.
* One-shot: While remaining in a low power mode i.e. running on a 32 KHz watch crystal, look for an interrupt. After the first interrupt pulse, disable further interrupts for 0.5 seconds, thereby only allowing one pulse per ˝ second time-lice to be recognized. Do not wake up the processor at this time.
* Leaky integrator: Every ˝ second time-slice, if the one-shot is tripped, increment a pulse counter variable by 5. If it isn’t tripped, decrement the pulse counter variable by 1. Do not switch to a high power mode yet.
* Threshold: If the pulse counter value exceeds a threshold of 25 (5 seconds of motion) then the device is moving. Now, switch to a high power state.
* Notes: Be sure to stop incrementing at some maximum pulse counter value (try 50), so it doesn’t continue to grow with continuous motion. Be sure to stop decrementing the pulse counter at zero so a numerical underflow doesn't’t occur.

The following PicBasicPro code demonstrates the simplest implementation of motion detection, using the sensor. This code will disregard the interrupt routines mentioned above . The program will light up an LED when motion is detected. Every 50ms, the input-pin will be checked. If its state has changed since the last check, a counter will increase by 5, otherwise it will decrease by 1. If the counter rises above 25, we will light up the LED. When it drops below 25, the led will be turned off.
*Click here to view a processing simulation of the algorythm (external link to http://pitaru.com).