« January 2006 | Main | March 2006 »
February 28, 2006
Datalogging With Database Assignment
Datalogging
- storing data into a PIC
- how much memory is needed?
- ascii, 8 bits
- http takes in ascii
- we need both the lowByte and highByte to get a full resolution of the sensor
- server can read once a second
- terminal : putty on PC
- telnet: itp.nyu.edu, port 80
- in putty, GET /~xxxxxx/index.shtml (whatever file I want to get)
PHP (hypertext preprocessor)
- send out to browser "echo"
$ variables
PIC - processing - net
data using http
application: to represent sensor readings, how it can be used
Assignment
I had just completed a project with Gilad and Tikva in Networked Objects, datalogging pot values on a server to make our very first server-based game, "CatchMeGame." Very slow, since we were constantly reading the sensor values off of the server, but it worked. We used Python as our programming language and used 2 Xports to play our game.
This weekend, Joo Youn and I attemtped at datalogging a simple pot reading onto the server, using Tom's php script , an empty datalog.txt file
and processing with the PIC code.
See here for Network Data Logging Suite.
Breadboard set up to read a simple pot value on ADCIN 0

We uploaded our datalog.txt file and logger.php file up on our itp servers. The sensor values are read, into processing, into php to be written on the server to be stored in the datalog.txt file.
2006-02-26 05:02:53 31680
2006-02-26 05:02:57 53184
2006-02-26 05:02:01 53184
2006-02-26 05:02:05 35712
2006-02-26 05:02:09 24128
2006-02-26 05:02:13 24128
2006-02-26 05:02:17 24128
2006-02-26 05:02:21 24128
2006-02-26 05:02:25 24128
2006-02-26 05:02:29 24128
2006-02-26 05:02:33 24128
2006-02-26 05:02:37 24128
2006-02-26 05:02:41 24128
2006-02-26 05:02:45 24064
2006-02-26 05:02:49 24000
2006-02-26 05:02:53 24000
2006-02-26 05:02:57 24064
2006-02-26 05:02:01 24128
The times seem erratic, which some others had the same result in. I'm thinking that this is a problem on the ITP server end. We have a workshop with Nancy Lewis this Friday regarding the ITP server and I will bring this matter up.
Posted by min at 06:13 AM | Comments (0)
February 24, 2006
LivingArt Crit 02.22.06
- Numbers : Fibonacci Sequence, golden ratio numbers
- Rabbit theory
Posted by min at 02:15 AM | Comments (0)
February 23, 2006
Networked Game First Assignment
From Gilad's Blog
CatchMeNetworkedGame
We created a 2-player game that is controlled with 4 potentiometers (2 for each player), each controller uses an Xport (with the following code
) to connect to a python script
on the itp server (in the cgi-bin). This script parses the message from the PIC (the two readings from the pots), and writes them to a .txt file (important not to put the .txt file in the cgi-bin folder-> otherwise processing can't open it!). We run a processing app which reads both data files and uses the information from the potentiometers in order to place the two players at the appropriate spot on the screen.
There have been problems with the itp server/timing. Best would be to have our own little server (next time!), but also every time the we send information to the server, to cut off the connection (sending the ascii character '4' - "serout[4]") and then time is not wasted on the server talking back to the PIC chip. It is also extremely wasteful to have the .txt files in between the communication.
Brainstorming
SystemDiagram

Controllers for two players
Posted by min at 02:17 AM | Comments (0)
February 21, 2006
Living Art GumDropLEDs
Crit for our project. We got to ask questions this time around to the class.
1. How further should we take this? Next steps?
2. What kind of environment do you see this in? In what context?
3. Make it interactive? How do you see somone interacting with this?
Overall, people were very excited to see these ordinary gum drops turn into lights, and moving!
Crit that we got from others :
- think about bigger scale
- unframe
- think about patterns and movement
- interactivity? the fact that these are edible is already the interactivity part
- look at Roxy Paine's "pulsing canvas"
- material
- movement should be slower and more subtle
- like the light bright, use a big light source from behind to make the gum drops glow all at once
Key to using many LEDs is the amount of amperage. LEDs take about 20mA per one. The superbrights may take a little more. So we had daisy chained (series connection)32 LEDs and connected 2 of these in parallel. We used one 12 V powersupply that provided up to 1000mA. This was enough for our 64 superbrights. Thank you Nick S!

Testing LEDs


Backside


Ordinary gumdrop "DOTS" made magic





Servo behind the LEDs to make it pulse


To dos for Midterm next week
- big white florescent lights
- white spandexy cloth
- diff sized/ shaped gum drops
- super glue
- thin fishwire
- maya simulation?

Posted by min at 05:24 PM | Comments (0)
February 20, 2006
Plasma Speakers Update
Materials have been shipped. Should get here next week sometime.
The COO is sending me 2 separate preamp modules to test with.
Helium filled ballons with the speaker film!

Posted by min at 08:03 PM | Comments (0)
Midterm Project Begins 02.15.06
Guess it was just bound to happen. Jane had worked with gum balls all last semester, I was just fascinated with the idea of gum drops that I've used in my Spatial Design Class last fall.
I just had to know what the effect was like with these gumdrops and superbrights. Such a beautiful glow!
More to come later.





Posted by min at 01:38 PM | Comments (0)
DataSheet Reports and Sensor Interfaces 02.14.06
- iris scans at the Heathrow Airport, London
Zach E, D1631, Digital Thermostat, the datasheet
His blog
- Dallas Semiconductors, different to most temp sensors because the output is given as a digital value
- serial communication is doable.
- keeps the data stored and can be used to get data out and determine if it fits a certain range
- IIC : inter integrated circuit
- pin, SCL : clockline, everytime the clock line pulses, data is sent. (send pulse on line one line and have many chips reading it)
- 0.5 degree celcius resolution
- application : depending on response time, resolution
Jungah, Temperature Sensor, LM35 Datasheet
- environmental conditions are key for these sensors, the physical positioning of the sensors
- ADC converting sensors can spit out data in bits
- many temperature sensors are contact based
- for samples on hard to get sensors, contact the distributors
Amit P, Maxim Trimmer pot, DS1804 : to calculate any analog sensor
- 3 leads and treat them like a normal pot
- provides pulses to increment to change the wiper part
- analog switch based and can work. there is no need for a separate software
- simple functions and come in 10K, 50K and 100K
when needing -5V up to +5V
for higher readings, continuous current
Sensor Interfaces
- sending analog voltages, synchronis
- serial communication between PC and PIC
- pulsewidth interface
- SSI : synchronous serial interface : one clock between 2
- I2C : 2 line data transfer: wiring has to be correctly done
- every high pulse of clock, send data out (the data is valid here)
- single data line : but 2 data received possibly
- single data clock line
- single ground
- we can daisy chain these
CS with bar on top : chip select, active low
- to make it active, send a 0 from the PIC
- to make low, send a 1 from PIC
SPI
PIC side :
SHIFTIN : data in
SHIFT OUT : data out
both of these read the data
SHIFTOUT portb.0, portb.1, LSBPRE (least significant bit mode, rising edge of the clock), [myVar\8]
SHIFTIN portb.0, portb.1, MSBPOST (most sig bit mode, falling edge), [myVar...]
- asynchronous : different clocks
- serial communication
- we have to consider how the data is received, the order of bits
- the speed and (inverted or true data? the electrical logic)
Pulsewidth (wave length) Output
- light to frequency convertor (the speed, cycles between 2 states in a set of time)
duty cycle: how long its on for one cycle.
cycle=1/f
- 0.0001 pulsewidth, communicating 10000 bits per second
- varying the pulsewidth
Summary of different types of sensors
- analog voltage
- async serial : PIC to PC
- sync serial : I2C, SPI
- pulsewidth : servomotors
- parallel ports : BCD (binary code decimal), reading all at once together, ex) DAC chip. Tom
site's stepper motor lab
PIC side
TrisB=%00000000
PORTB = 127 (this will be converted to binary and sent to all 8 diff pins)
Posted by min at 12:43 PM | Comments (0)
February 16, 2006
Symmetry, Rotation, Repetition 02.15.06
Posted by min at 09:41 PM | Comments (0)
February 15, 2006
Make: Tom Igoe's SensorInterfaces
From Make: magazine, Vol.05, O'reilly








Posted by min at 11:17 PM | Comments (0)
February 14, 2006
QT113 Datasheet Study
I decided to look into QPROX for the QT touch sensors as my datasheet study assignment.
Qprox touch sensors work off of capacitance.
Capacitance, in electricity, capability of a body, system, circuit, or device for storing electric charge. Capacitance is expressed as the ratio of stored charge in coulombs to the impressed potential difference in volts. The resulting unit of capacitance is the farad [for Michael Faraday]. In an electric circuit the device designed to store charge is called a capacitor. An ideal capacitor, i.e., one having no resistance or inductance, may be spoken of as a capacitance. When an alternating current flows through a capacitor, the capacitor produces a reactance that resists the current (see impedance). While every element of a circuit has some capacitance, it is a goal of good design to reduce such unwanted or stray capacitance to a minimum.
Quick list on Qprox uses
- act as a digital switch
- sensitivity of them can be adjusted
- different modes such as toggle, on or off can be adjusted
- heartbeat function on output
Application
- can act be responsive to either touch or proximity
- self calibrating continuously
- power consumption of only 600uA
- requires common capacitors to function
Overview
- digital burst mode charge tranfer for touch controls
- stable sensing

OUT: where the output of the touch sensor goes, LEDs, sound, microcontroller to send a high, low...
OPT1 and OPT2: there are different modes for these for different settings CANNOT be left floating
Vdd: power
Vss: ground
Gain: either to power(high) or ground (low)
SNS1 and SNS2: where the touch electrode goes. can be a piece of metal, mesh...
Cs: capacitor before the sensing electrode (usually 10-50nF)
Cx: load capacitance (10-20pF)
Basic Operation
- burst mode dramatically reduces RF emissions and lowers susceptibility to EMI (Electro magnetic interferance) and permits excellent response time
- ADC inside the IC to optimize the burst length according to the rate of charge buildup on Cs
- larger value of Cx causes the charge transferred into Cs to rise more quickly, reducing the resolution
- larger values of Cs reduce the rise of differential voltage across it, increasing resolution
- IC is dependent on both Cx and Cs and changes on the Cs result in changes in sensor gain
Electrode Drive
- the sense electrode can be connected to either SNS1 or SNS2, but best in pin SNS2 for best noise reduction
- increasing the amounts of Cx destroys the gain, important to limit the amount of stray capacitance on both SNS pins
- resistors, Rseries should be places inline with the SNS2 pin to the electrode to lower ESD (ElectroStaticCharge) and EMC(ElectroMagneticCompatibility)
Electrode Design
- QT113 operates well with long, thin electrodes
- sensitivity is related to electrode surface area

Kirchoff's Current Law
- detects the change in capacitance of the electrode
- it requires that the signal ground and the target object must be coupled together for a capacitive sensor to operate properly
Virtual Capacitive Grounds
- can be created by connecting the QT113's own circuit ground to: nearby piece of metal, floating conductive ground plane, another electronic device
Field Shaping
- to stop field spreading, it is necessary to surround the touch electrode on all sides with a ring of metal connected to circuit ground. this will kill field spreading from that point outwards.
Sensitivity of the Sensor
- QT has 2 settings for gain options using pin 5
- sensitivity change is made by altering the internal threshold level required for a detection
- other things may affect its sensitivity: values of Cs, electrode size, shape and capacitance, thickness of material, ground coupling.

- sensitivity can be increased by using a bigger electrode and reducing panel thickness but increasing the electrode size can have lower returns since high values of Cx will reduce its gain
- also, metals around the electrode will reduce the field strenght and increase Cx loading
- to decrease sensitivity, gain can be lowered by decreasing the Cs
Drifting Compensation Algorithm
- QT113's drift compensation is "asymmetric." It is faster for decreasing signals than for increasing signals
- With large value of Cs and small values of Cx, drift compensation will appear to operate more slowly than with the converse
Forced Sensor Recalibration
- accomplished only when the device is powered up
- driving the QT113's Vdd pin directly from a microcontroller port will serve as both power and forced recal

Response Time
- dependent on burst length, dependent on Cs and Cx
- with increasing Cs, response time slow, while increasing levels of Cs reduce response time???????
QT 113 Modes

DC Mode Output
- the output is active low upon detection
- if time out occurs first, the sensor performs a full recalibartion and the output becomes inactive until the next detection
Toggle Mode Output
- sensor as on/ off mode
- max on-duration in toggle mode is fixed at 10 secs
- at timeout, the sensor recalibrates but leaves the output toggle state unchanged


HeartBeat Output
- QT113 output has a 'health' indicator: operates by taking 'out' into a 3 state mode
- this output state can be used to determine that sensor is operating properly
- sampled by using a pulldown resistor on out
- because the OUT is normally high, a pulldown resistor will create negative HeartBeat pulses when the sensor is not detecting an object
Output Drive
- output is active low
- when used for proximity mode, the current should be limited to 1mA to prevent gain shifting
- QT113 derives from its internal references from the power supply, and sensitivity may change when there is a shift in Vdd
- when using LEDs: the LED should be connected with its cathode(-) to the output and its anode(+) towards Vcc so that its lights when the sensor is active
Circuit Guidelines
Capacitors
- Cs range is from 10nF to 500nF depending on the sensitivity required, larger Cs requires higher stability for reliable sensing
Option Strapping
- OPT1 and OPT2 should never be left floating (open)
- GAIN should be connected to either Vdd or Ground
Power Supply
- from 2.5V to 5.0V. 3V is best
- can be driven from batteries, as the QT113 automatically tracks fluctuations and changes in the battery supply with only minor changes in its sensitivity
Parts Placement
- Cs and Rseries resistors should be placed as close to the body of the chip as possible, reducing the antenna- like ability to pick up high frequency signals
- for best results, board should be made entirely of SMT components
- keep the SNS2 electrode trace and the electrode itself away from other signal, power and ground traces, SNS trace will cause an increas in Cx load and desensitize the device
ESD (ElectroStatic Discharge) Sparks, protection
- can be enhanced by adding series of Rseries (resistors) in line with the electrode of 1K and 50 K Ohms
- optimal value depends on the amount of load capacitance, Cx
- high value of Cx means Rseries has to be low
- Rseries and Cs should both be placed close to the chip
Posted by min at 12:37 AM | Comments (0)
February 09, 2006
Soldering Party 02.09.06
We all soldered our Xport boards today. Nothing much but just that it was quite time consuming.
Music in the bg, the birthday boy brought us all goodie bags... Thanks Rob for everything!
And my very own xport board!
Posted by min at 06:24 PM | Comments (0)
February 08, 2006
Context Awareness Readings
The BBCi Showcase, interactive display seems quite successful. First the user's interface is easy to follow and it seems that the screen on the window definately would attract those people that are passing. It seems that it is the latest trend with broadcast stations to add more interactivity. Whether it be online or offline, like this project by IDEO. In Korea, the latest trend are the DMBs that have recently come out. Digital Multimedia Broadcasting. People would be able to link their cells or portables to the TV stations and watch the programs in real time. This would not limit the user to his environment and location to get constant entertainment, information and news updates.
The Blinkenlights project in Berlin however seems to lack much content and interactivity. Why would one play "pong" on a building. How is the result so rewarding? The random patterns and images that people were able to create seems more appealing. Also, from this project, it seems that the "love message" were the most popular. Then, why would one use a lower res pixelated windows on a building to send a message out to your loved one instead of on a huge billboard screen? If the outputs are just random, how is that different to having windows of the building separately light up?
The Vectorial Elevation project was my favorite out of these three. Lights in the sky at night is almost magical and has the potential to engage everyone out on the streets. I remember when the 911 memorial lights were lit up at the beginning of this year. Even from NYU, the lights could be seen and it made me think back to the time when I was here during the event. It's quite surprising that over a period of 2 weeks. only 522,442 people had visited and interacted with the website to try and change the night skys in Dublin. Perhaps the public wasn't quite ready for such networked, interactive artwork. This definately showcased the coming-together of the virtual and the real-world. Visually and conceptually, I think it was a great networked piece.


Posted by min at 11:23 PM | Comments (0)
PlasmaSpeakers 02.05.06
Ideas
We need to build a smaller yet an efficient stereo preamp that would be scalable depending on the size of the film. Alice, Tracy and Todd, very serious...
Posted by min at 10:09 PM | Comments (0)
Finite State Machine Critique 02.08.06
Our first crit in LivingArt was very engaging and definately not your ordinary ITP crit. We all considered this as a pure art class and the crits on our projects reflected this. People were honest, genuine and most of all, gave meaningful criticisms that as an artist, could be further explored.
Some topics that came up.
Nick and Anne
Ben
Andrew
Mike and Suzan
Tristan
Posted by min at 09:40 PM | Comments (0)
LichtBox
Our first assignment at LivingArt. A one week assignment.
Jane, Lara and I ended up working on this physcially for about three days.
After being presented with the task, we sat down a few days after and still felt a little lost with the term, "finite." We decided to keep it really simple and we went ahead with an LED matrix as a practice.
Our sketches and brainstorm
A personal cube that one could manipulate by a simple press. We initially wanted to create some sort of an animation, using the 9 LEDs on each sides but this seemed almost impossible. We turned all the pins on the 18F452 digital. ADCON1=%10000111 It seems that the RA4 pin doesn't work at all. The E ports had strange behaviors also. We used transistor arrays, ULN2004N
LEDs light up when power and ground is given. Considering that we were going to have control over all the individual 45 LEDs, this was the method we chose. From the PIC, powers were sent and the grounds, through the 3 transistor arrays.
We tested first on the breadboard.
Using this code. We couldn't get the animation going, so we decided to stick to per side of the cube (5 sides). We used a counter and a CASE statement in the PIC.
SELECT CASE var
CASE expr1 {, expr...}
statements
CASE expr2 {, expr...}
statements
{CASE ELSE statements}
END SELECT
CASE statements, in some cases, are easier to use than multiple IF.. THENs. These statements are used to compare a variable with different values or ranges of values, and take action based on the value.
The variable used in all of the comparisons is specified in the SELECT CASE statement. Each CASE is followed by the statements to be executed if the CASE is true. IS may be used to specify a comparison other than equal to. If none of the CASEs are true, the statements under the optional CASE ELSE statement are executed. An END SELECT closes the SELECT CASE.
Example
SELECT CASE x
CASE 1
y = 10
CASE 2, 3
y = 20
CASE IS > 5
y = 100
CASE ELSE
y = 0
END SELECT
With this code though, the counter would simply stop at count 3. We tested using just 5 single LEDs and it counted up to 5 and going back to its original state. After much time debugging and tweeking, Todd H came and tried out a different method. He attempted at sending the power through the transistor array and from its output pin, sending out ground to a row of LEDs.
Applying this same idea, we used this code on our breadboard and it ran through.
We put the plexi parts together with the LEDs.
In an LED matrix, the connections are essential. Since our connections were made quick, the lights did not really light up the way we wanted them to. A little too random at times. but it did react to the switch and changed sides. Some LEDs were just on all the time.
I really enjoyed collaborating with Jane and Lara and we executed our complex matrix system. It still needs a bit more tweeking but we did learn a lot in the process and I'm happy with what we were able to achieve in three days.
During our crit.
The feedback we got had value and we did agree with a few points that came up.
Posted by min at 08:33 PM | Comments (0)
February 05, 2006
Science, Art and Tech 02.01.06
individually.
Mike's clear explanation
Posted by min at 09:53 PM | Comments (0)
Only in N Y C
in the middle of broadway.
Posted by min at 10:11 AM | Comments (0)
February 04, 2006
New Collab
with Gilad.
Interesting thoughts came out of our long talk.
See more here and I will post more details later.
Posted by min at 04:31 PM | Comments (0)
February 03, 2006
Definition of the Finite State Machine
Wikipedia's definition
Posted by min at 04:24 PM | Comments (0)
February 02, 2006
Context Awareness 02.02.06
Discussions on the reading assignment
Project Planning
Code flowchart - quasi code to make it clear in the head, diagrams etc
Posted by min at 10:02 PM | Comments (0)