« 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

IMG_2325.JPG

- 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
IMG_2041.JPG
php_datalog.jpg

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

IMG_1891.JPG
IMG_1896.JPG
IMG_1902.JPG
IMG_1912.JPG
IMG_1910.JPG


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
IMG_1811.JPG

SystemDiagram
game1_system_diagram2.jpg

Controllers for two players
IMG_1813.JPG

IMG_1814.JPG
IMG_1914.JPG
IMG_1920.JPG
IMG_1921.JPG
IMG_1924.JPG


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!
IMG_1830.gif

Testing LEDs
IMG_1839.gif
IMG_1837.gif

Backside
IMG_1848.gif
IMG_1858.gif

Ordinary gumdrop "DOTS" made magic
IMG_1843.gif
IMG_1882.gif
IMG_1878.gif
IMG_1866.gif
IMG_1871.gif
IMG_1966.JPG


Servo behind the LEDs to make it pulse
IMG_1874.gif
IMG_1883.gif

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

IMG_1930.jpg

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!

ball.gif

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.

IMG_1820.gif
IMG_1821.gif
IMG_1818.gif
IMG_1819.gif
IMG_1825.gif


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
IMG_1675.JPG
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
IMG_2318.JPG

- every high pulse of clock, send data out (the data is valid here)
IMG_2319.JPG


- single data line : but 2 data received possibly
- single data clock line
- single ground


- we can daisy chain these
IMG_1676.JPG

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
IMG_1677.JPG

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)
IMG_2320.JPG

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

IMG_2321.JPG
IMG_2322.JPG

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

IMG_1625.JPG
IMG_1627.JPG
IMG_1629_2.JPG
IMG_1633.JPG
IMG_1636.JPG
IMG_1647.JPG
IMG_1649.JPG


Posted by min at 09:41 PM | Comments (0)

February 15, 2006

Make: Tom Igoe's SensorInterfaces

From Make: magazine, Vol.05, O'reilly

Untitled-1.gif
Untitled-2.gif
Untitled-3.gif
Untitled-4.gif
Untitled-5.gif
Untitled-6.gif
Untitled-7.gif
Untitled-8.gif

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.

QT113, one channel datasheet

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

qt113sum.gif

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

kirchlaw.jpg

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.
gain.jpg
- 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

responsetime.gif

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

output modes.jpg

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

hbpulldownresist.jpg
microcontroll.jpg

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!

IMG_1570.JPG
IMG_1579.JPG
IMG_1580.JPG
IMG_1582.JPG

And my very own xport board!
IMG_1584.JPG


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.
sIMG_1570.jpg
ninos.jpg

Posted by min at 11:23 PM | Comments (0)

PlasmaSpeakers 02.05.06

Ideas

  • dance performances with the film
  • kinetic sculpture that would manipulate the sounds with movement
  • walkby sculpture that would be triggered by the people in the space
  • a networked object. a picture with sound
  • output device only
  • wind and the film
  • lamination of the material to try getting out different sound effects
  • film applications

    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...
    IMG_1502.JPG

    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.

  • Todd had mentioned at the beginning of the semester that this was to be a non-screen project class. Where does one draw the line? Nick and Anne had done a low-res screen with a 5by5 LED system.
  • everything in the presentation is essential. Consider everything that's around your piece. The bg, what its laid on, etc
  • happy accidents? how does one justify it? when does it become appropriate and gives the piece a meaning?

    Nick and Anne
    IMG_1540.JPG

    Ben
    IMG_1542.JPG

    Andrew
    IMG_1554.JPG

    Mike and Suzan
    IMG_1558.JPG

    Tristan
    IMG_1559.JPG
    IMG_1562.JPG


    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
    IMG_1503.JPG
    IMG_1505.JPG

    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.
    IMG_1509.JPG
    IMG_1510.JPG

    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.

    IMG_1522.JPG

    Applying this same idea, we used this code on our breadboard and it ran through.

    We put the plexi parts together with the LEDs.
    IMG_1525.JPG
    IMG_1529.JPG
    IMG_1531.JPG
    IMG_1717.JPG

    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.
    IMG_1539.JPG
    IMG_1535.JPG
    IMG_1614.JPG
    IMG_1619.JPG

    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.
    IMG_1546.JPG
    IMG_1607.JPG

    The feedback we got had value and we did agree with a few points that came up.

  • the outputs became too predictable, it doesn't have much personality.
  • people want to see more variations in the sides, going through more states.
  • perhaps a better choice in the input, a different button?
  • quote "the interactor needs a reward-punishment that acts unpredictably"


    Posted by min at 08:33 PM | Comments (0)

    February 05, 2006

    Science, Art and Tech 02.01.06

  • Science, art and technology : is there a point to try and define these separately?
  • The book, Information Arts by Stephen Wilson doesn't really define the three
    individually.
  • Danny Rozin's Wood Mirrors is reactive art.
  • PWMs on the PIC (pin, duty, cycle) is large enough to create a randomness
  • robots vs humans?

    A Finite Machine

  • states of 2 or more
  • transition period is triggered by an entry
  • can always tell what state the machine is in
  • flow charts=finite states
  • amplifiers=non-finite states

    Mike's clear explanation
    IMG_1507.JPG

    Posted by min at 09:53 PM | Comments (0)

    Only in N Y C

    IMG_1475.JPG

    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

  • connecting the virtual and the physical
  • real time tagging : gps cameras (real time in a temporal space)
  • splat- on -wall- wifi-ball
  • leave the natural space as it is and embed tech into it, the ground, inside trees etc
  • educational purposes : tech devices as a natural form of learning
  • be in a different context : not the device (think about the whole experience)
  • references, info that comes with the technology
  • is every situation in need of an augmentation technically? why the additional technology?
  • different levels of privacy with contacts. emails, telephone calls, having them not available to the public
  • tracking people's availability
  • tagging ideas that link to certain people etc
  • unique ids : social security address book?
  • different channels to reach people, unique identities

    Project Planning
    Code flowchart - quasi code to make it clear in the head, diagrams etc

    Posted by min at 10:02 PM | Comments (0)