Monday, October 26, 2009

Testing Materials

We tested a whole bunch of materials with mixed results. We had some issues with Processing, so we just ran the Arduino board with our simple high/medium/low output to test the responsiveness of a variety of metal sheets and meshes. We're still trying to calibrate our system for predictable input. In the meantime, we're meeting with a professor in the Engineering Department here at Columbia to get some advice. Here are the tests:

A really long (6') piece of flashing:


A metal clip-lamp shade:



We were able to get roughly the same results (a decent hi/med/lo response) from each material by varying the resistor - the resistor matters a lot, which we think has to do with how our pre-packaged measuring function works. The size of the material doesn't seem to matter that much, nor does any insulating material over it - but we're using the same alligator-clipped lead wires so the spacing and wire length hasn't changed much among the setups.

Monday, October 19, 2009

First Working Prototype

INPUT: Aluminum foil EM resistance sensor
PROCESSING: Change the speed of the blinking LED based on how much resistance (EM) is present
OUTPUT: Led which blinks quicker as you get closer.


Our board setup, with wires leading to the aluminum foil and the LED plugged straight into the digital output pins and ground.



Our 'sensor' - a big piece of aluminum foil with current across it. The aluminum foil is folded over twice so it's four layers thick, about 9"x6". The thickness and size of the metal (and even our wiring up to it!) significantly effect the range of values we observed. Our 'resistance' values range from 0-60 (arbitrary units). We get value 60 for touching or up to about 1" away from the metal, to 0 about 10-12" away. Shifting scales with this assembly will definitely be challenging, but this works for now!

The final prototype. You can see the distance range to change the (out of focus in the background) blink rate of the LED.



This shows the blinking LED better:




Our Arduino code is a simple modification of the CapSense library from the Arduino website:

#include

/*
* CapitiveSense Library Demo Sketch
* Paul Badger 2008
* Uses a high value resistor e.g. 10M between send pin and receive pin
* Resistor effects sensitivity, experiment with values, 50K - 50M. Larger resistor values yield larger sensor values.
* Receive pin is the sensor pin -
try different amounts of foil/metal on this pin
*/


CapSense cs_4_2 = CapSense(4,2); // 10M resistor between pins 4 & 2, pin 2 is sensor pin, add a wire and or foil if desired

int ledPin = 13; // LED connected to digital pin 13
int blinkDelay = 0; // Counter to control blink

void setup()

{

cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF); // turn off autocalibrate on channel 1 - just as an example
Serial.begin(9600);

// initialize the digital pin as an output:
pinMode(ledPin, OUTPUT);

}

void loop()
{
long start = millis();
long total1 = cs_4_2.capSense(30);

Serial.print(millis() - start); // check on performance in milliseconds
Serial.print("\t"); // tab character for debug windown spacing

Serial.println(total1); // print sensor output 1

if(total1 >= 45) { // how long to blink based on resistance
blinkDelay = 250;
}
else if(total1 >= 15) {
blinkDelay = 500;
}
else {
blinkDelay = 1000;
}

digitalWrite(ledPin, HIGH); // blink on

delay(blinkDelay); // delay

digitalWrite(ledPin, LOW); // blink off

delay(blinkDelay); // delay
}


Monday, October 12, 2009

The Simplest Sensor Ever


We discovered this project at the Arduino website.


The human body, like all objects, gives off electromagnetic radiation. The project at Arduino uses a very simple setup: a sheet of aluminum foil, and a resistor, to create at least an on/off switch that detects human presence through your magnetic radiation.

Your cell phone emits EM, and so does your body. Our next step is to explore the mix.

Testing a Cell Sensor







Breaking open the Gaussmeter




The Gaussmeter




The device!


We picked up a cheap 'Cell Sensor' which has a gauss-meter and is supposed to measure cellular (~900MHz) signal. We haven't gotten good consistent results yet... First of all, most all-digital phones operate at higher bandwidth, so we may be missing that.

Monday, October 5, 2009

More bars?



Q: What does it mean to have '4 bars?'

A: Not much.



Why? Your phone is showing you how powerful the signal from the tower is, and each provider and phone manufacturer assigns arbitrary ranges to 1-4 bars. If you look at your phone's field test settings (see earlier post) it's using the 'Rx' value from ~0-105. The *real* number that tells you whether or not your call will go through is a ratio of that strength over the strength of the 'noise floor' (interference) around you, and is called 'EC/I0', or 'Pilot Strength'. EC is more or less your 'Rx' value, 'I0' is the noise floor... and both change constantly.

Your cell phone shows you 'bars' related to Rx because it changes less frequently than EC/I0... you're near a tower, but you may not be able to make a call.

MetaFilter.com Article

FCC Cell Phone Bandwidths



The FCC divides bandwidth for cell phone communication into 2 blocks. 824MHz-849MHz is used for your mobile to broadcast signals to the tower, 867MHz-894MHz is used for the tower to broadcast to your mobile. More at the FCC.

Prototype 1



This is the plan for our first prototype.
We ordered a very basic, cheap RF sensor from Amazon and we're going to try to use its readings to measure the ambient amount of cell phone signal at our site. For now, we're going to work with LEDs as output. Further processing can isolate the handset-uplink bandwidth versus the tower-downlink bandwidth. As we show this over time, we document the cellular atmosphere of the space.