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
7 PM - 9 PM (ET) (iCal)
Provisions Library
Suite 200
1611 Connecticut Ave. NW
Washington, DC 20009
(above Ann Taylor Loft)

Google Maps directions
Limited parking on street. Paid parking garage at 20th Street and Florida Avenue.
Metro: Dupont Circle, Q Street North Exit, turn right at the top of the escalator, and cross Connecticut Avenue and Q Street.

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

There is a new Dorkbot chapter forming in the Second Life virtual world. So of course, I decided to make a t-shirt to show off the DorkbotDC colors at the DorkbotSL meeting on Sunday. Feb. 18:

dorkbotdc tshirt front

dorkbotdc tshirt back

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

Dogceleration is a project to document the energy and activity of my two Beagles when they playfight.

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:

witilt1 witilt2

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