Friday, February 23, 2007
Wednesday, February 21, 2007
Friday, February 16, 2007
Dorkbot DC Meeting Tues. Feb. 20, 2007
Dorkbot DC is a monthly meeting of artists (sound/image/movement/etc.), designers, engineers, students and others in the DC area who are interested in electronic art (in the broadest sense of the term.) Next Meeting: Tuesday, February 20, 2007 |
Presentations for Next Meeting:
Gail Scott White and Kirby Malone: "Live Movies"
White and Malone are the artistic directors and founders of Cyburbia Productions, a multimedia performance studio which focuses on the collaborative creation of "live movies," syntheses of cinema, theater and music. The company's work employs digital projection, sound technologies, and filmic narrative techniques to construct moving stage pictures and sonic theater, in which live actors interact with animated performers, and emerge from or vanish into projected environments, settings and dreamscapes.
White is an Associate Professor of Digital Arts at George Mason University, where she teaches 3D animation and digital imaging, and serves as Associate Director of the Multimedia Performance Studio (MPS).
Malone is Assistant Professor, InterArts at George Mason University, where he teaches courses including Cyberpunk and Performance Studio, and serves as Director of the Multimedia Performance Studio.
Thomas Edwards: Introduction to the Arduino
Hardware artist Thomas Edwards presents a "Hello World" style introduction to the Arduino, an inexpensive open-source physical computing platform. Based on the Atmel ATmega processor, the board is programmed using a simple language which makes it easy to access its digital and analog I/O systems. It is a great way to become involved in physical computing.Monday, February 12, 2007
Dorkbot in Second Life
While hanging out in SL, I got to meet Ian Ah aka Ian Murray (translate in english here), a Canadian media artist. Ian was kind enough to invite me to his very cool media screening room in the clouds, and to give me lots of cool SL stuff (like a pool of blood that forms around your foot, headphones, glasses, and lots more!). It was a my first serious stay in SL, and very trippy!
I don't know if I'm going to ever be a SL regular, but I sure would like to explore around inside a bit doing tech art projects - of course, my idea is to connect virtual objects in second life with physical objects in the real-world over IP.
Sunday, February 04, 2007
Dogceleration Progress
I started with a three-axis accelerometer board ("WiTilt") with a Bluetooth interface from Sparkfun, along with a small lithium polymer (LiPo) battery about the same size as the board. Both are a bit smaller than a standard business card:
My goal was to connect it up to PureData (pd) to interactively generate audio in real-time based on the accelerations. I previously have captured data using HyperTerm and played it back later at the Dorkbot DC meeting using the pd file reading object.
The WiTilt talks over Bluetooth as a serial port. I first tried to use the "comport" object in pd, but that was quite flakey (on Windows anyway). Then I tried to use Python with pyext to create a pd "external" in Python. Pyext works OK for pd objects that get messages then send messages, but the threading model for an external that would continuously send data into pd did not work so well.
Instead I used the pd "netreceive" object which uses IP sockets to receive pd messages. A Python helper program runs to intercept the Bluetooth serial port data, I do some string manipulation on it (raw data from WiTilt looks like "X=223 Y=474 Z=678"), and then send it to pd using TCP to a localhost port. This required Python for Windows Extensions as well as pySerial (nothing is ever easy, is it?). So I ended up with the Python program below, note that the message I send to pd needs a semicolon on the end:
import serial
from socket import *
s=socket(AF_INET,SOCK_STREAM)
s.connect(('127.0.0.1',3000))
ser=serial.Serial(3)
ser.baudrate=57600
ser.write("1")
try:
while 1:
l=ser.readline()
l=l.replace(' ','')
ls=l.split("\t")
x=ls[0].partition('=')[2]
y=ls[1].partition('=')[2]
z=ls[2].partition('=')[2]
s.send(x+' '+y+' '+z+';')
except KeyboardInterrupt:
s.close()
ser.close()
print "Interrupted!"
The upside of using netreceive is that the computer running the Bluetooth serial port and the computer running pd could be separate computers, possibly on different continents...
So then came the pd patch, which simply took the three axis data and shot it into three separate oscillators for now:
And here's the video of the system in action. You can see that the board is sensitive to the acceleration of gravity as I tilt it as well as to the acceleration due to physically mov