01_LIGHT SENSOR (IR Phototransistor)

Like diodes, all transistors are light-sensitive. Phototransistors are designed specifically to take advantage of this fact. The most-common variant is an NPN bipolar transistor with an exposed base region. Here, light striking the base replaces what would ordinarily be voltage applied to the base -- so, a phototransistor amplifies variations in the light striking it.

Hello3 board is used as the basic set-up for this assignment which aims at sensing the light input as voltage input and converting it to wave-length readings. The gradient of light (which depends on the distance and direction from the light source) is translated into voltage units (0V to 5V) and then converted to candellas through the Python code.
The images to the left illustrate the board and the light sensor (including a resistor) connected directly to the board.

02_ANALOG LIGHT SENSOR

The second experiment aims at constructing a circuit which activates a 3V motor with a light sensor (IR phototransistor). This circuit was done by initially using a RELAY which was then replaced by a FET (Field Effect Transistor).
FET and Analog Sensing: Circuit Design

The field-effect transistor (FET) is a transistor that relies on an electric field to control the shape and hence the conductivity of a 'channel' in a semiconductor material. FETs are sometimes used as voltage-controlled resistors.

Circuit Description

The IR phototransistor is linked to the FET thrugh the "ground" pin in the FET. "Drain" is linked to low voltage. The source pin is linked to the 3V motor via 2 serial resistors and back to the high voltage.
This never worked.



03_PYTHON GUI FOR LIGHT SENSOR

Two interfaces were developed which convert voltage units to candellas (approximating the 1 to 5 volt range to the IR wavelength).
To the far left: a concentric representation in which the circle radii represent light intensity. To the right: a continuous strip of circles describing light intensity by radii in a row  (no double buffering, sorry).


04_READ SERIAL TO JAVA

The Processing serial library allows for easily reading and writing data to and from external machines. It allows two computers to send and receive data and gives you the flexibility to communicate with custom microcontroller devices, using them as the input or output to Processing programs. The serial port is a nine pin I/O port that exists on many PCs and can be emulated through USB with the Keyspan USB Serial Adaptor and other compliant devices. David and I made first attempts to read the light levels into Processing and generate the graphics. Code attached below (see downloads).


CODE DOWNLOADS

Number Representation
download
Circle from Corner Representation
download
Circle from Center Representation
download
Spiral Representation
download
Read Serial to PROCESSING (java .PDE file) download
Thermometer Circles Alyssa download
Thermo Text Alyssa download