|
|
I ended up working with Beverly on this project. I helped her put
together a triptych piece. The three pieces were boxes similar to
my original idea of playing with windows. The boxes, Red, Green and
Blue each had different lighting events happening when viewers triggered
proximity sensors. Environmental pieces which react to the on-goings
of the room around them in different ways. |
| All
the boxes had x-mas lights on them, so that in a dark non-interactive
state, they were slightly lighted up. If someone initiated the red
box, the x-mas lights would turn off and a heat light would turn on.
The heat light would turn some ink squares from dark blue to light.
This box we considered to be the linear or formatted box. The green
one was considered to be organic in nature. When the x-mas lights
were turned off, small incandescent lights would light up. The incandescence
were arranged in a non-linear form and attached to a switch, which
would move to connect different arrays of the lights. The blue box
was a video piece. When someone tripped the prox sensor a "switch"
would turn on a video projection of the room. The image projected
was pasteurized and of the room around them. Inside the blue box we
taped textured paper and velum to create a feeling of depth. |
|
 |
Well,
that was how the piece was supposed to work. We actually got it working
for the most part the night before we were to present it in class.
But as luck or Murphy continues to remind us something will always
go wrong. The first problem is the BX environment. It continually
does not read files, upload files or really work in any consistent
manor. Then once we (Beverly) did get it working the board shorted
out or something over heated. The wires connecting the servo for the
video were in the way of people walking and got pulled out a few too
many times as well as reconnected wrong causing the servo to smoke.
Its only funny when somethings burning. |
My
impressions of the process:
First off, I wanted to make each box one at a time so that we
knew that they worked and would have something, anything, to present.
That is why I worked on getting the video projection done. I worked
on the code for the director piece a few weeks ago and played
with the best way to project from the computer. I used s-video
cable connected to a Sony projector. The computer was set to video
mirroring. Video mirroring allows you to project the contents
of the screen, but its a bit confusing to get started. The
video mirroring is found on the control strip on the Mac, but
sometimes its not there and must be placed in the control strip
modules. Then I think you need to restart the computer. I would
have like to work more with the video and projecting aspect of
the project, making it more interesting and abstract.
Beverly put a lot of time and energy into this project. She built
the boxes, stained them and did most of the wiring of them. She
also purchased all the material and worked hard to develop the
concept. In some ways I felt I was more of a helper, though we
did discuss how to do things and what looked best in terms of
presentation of the boxes. We did not have a systematic way of
working, so that sometimes we took apart stuff we had already
spent hours putting together. This had somewhat do to the ever-evolving
nature of the project.
|
 |
|
|
|
|
On
the night before we were to present the boxes, the lights and switches
seemed to work ok. Not great, but at least the proximity sensor would
turn on and off lights and control the servo. However, on Friday morning,
nothing seemed to work. We seemed to be having a grounding problem
or something. So we were only able to demonstrate how it was supposed
to work. Its all a learning process.
My real goal with this project was to project live video in an interesting
way. To have people see the world around them in a different light.
I worked with using Director and "track them colors" to
distort the live image. It was actually easier than I thought it would
be. I just had to figure out the lingo. I could have been more elaborate
with using TTC, I really did not use it to its fullest extent or even
in a very profound way. But what was interesting was the use of the
box and the depth we created with the layers of different textured
paper. |
|
Lingo
Code:
Movie Script:
global TrackObj, videoWidth, videoHeight, horizontal, vertical
on
StartMovie
set horizontal = 40
set vertical = 70
set videoWidth = 600
set videoHeight = 400
OpenXtra
InitVideo(TrackObj, 2, rect(0, 0, videoWidth, videoHeight), 1)
The number 1 at the end of the line can be changed depending on
the type of input, to a 2 or 0 very important to remember!
set colorlist = [0,0,0, rect(0,0,VideoWidth,VideoHeight)]
end StartMovie
on
StopMovie
global TrackObj
CleanUp(TrackObj)
set TrackObj = 0
endon OpenXLib
openXlib "TTCPro-Fat"
if not TrackObj then
set temp = Xtra "TTCPro"
set TrackObj = new(temp)
end if
endBehavior Script:
global trackObj, sourceRect, targetRect, VideoWidth, VideoHeight,
horizontal, vertical
on exitFrame me
this is the filter for the posterization or threshold, changing
the number 70 changes the amount of black or white represented in
the image.
-- Filter(TrackObj,[[integer(2), integer(20)]])
Filter(TrackObj,[[integer(13), integer(70)]])
set sourceRect = rect(0,0,VideoWidth,VideoHeight)
set TargetRect = offset(sourceRect, horizontal, vertical)
ShowVideo(TrackObj, [sourceRect,targetRect])
GraboneFrame(TrackObj)
-- GetSomeFrames(TrackObj, 1, 1)
go the frame
end
|
|
|
The
code for the servo was a bit difficult to figure out. I had the
code for the prox sensor and the code for the servo, so marrying
them was the strange part. The prox sensor we used was an ultrasonic
one. It works great and is not that difficult to hook up. On the
advice of Katherine Bruce I used a phone cable to connect the five
pins on the SRF to the bread board.
sub
flashme(byVal flashx as byte)
dim x as byte
debug.print"RESTART"
for x = 0 to flashx
call putpin(25, 0)
delay(0.1)
call putpin(25, 1)
delay(0.1)
next
call putpin(26, 0)
end sub
dim distance as integer
dim prox as integer
dim minPulse as single
dim maxPulse as single
dim pulse as single
dim refreshPeriod as single
Sub Main()
call flashme(6)
minPulse = 0.001
maxPulse = 0.0018
refreshPeriod = 0.02
pulse = minPulsedo
call pulseOut(13, pulse, 1)
delay(0.002)
call pulseOut(12, 2.0, 1)' must be brought high for a min of 10microseconds
(10us)
prox = pulseIn(11, 1)
prox = prox \ 74 'use 74 for distance to be in inches
'use 29 to convert distance to cm
debug.print; cStr(prox)
call sleep(refreshPeriod)
if prox > 20 then
pulse = minpulse
end if
if prox < 20 then
if pulse < maxpulse then
' pulse = pulse + 0.0001
pulse = maxpulse
end if
'pulse = maxpulse
end if
loop
End Sub
|
 |
|