Archive for February, 2006

Penn Station Observation

pennstationobs.jpg

Assignment; Introduce the class to the community that you will be studying. You should conduct some initial observations and gather visual materials and artifacts so that you can bring this community to life for the rest of the class.

We chose New York’s Pennsylvania Station as an overall community for our study. For this first assignment we surveyed the entire station including the Amtrak, New Jersey Transit and Long Island Railroad areas. Our plan is to narrow our focus to just one off these areas. Our methods included direct observations, photography and creating a collection of artifacts from the station. Here is a presentation on our Penn Station Observations.

Completed PlayBooks

playbookdone.jpg

All three of our Playbooks came back fully completed! Here’s the full presentation on how it went.

Sketch ‘n Share

topview.jpg

From my Toy Design Workshop: a conceptual presentation about the Sketch ‘n Share–a collaborative sketch pad for friends that communicates voice and sound. Kids in a local environment can sketch, play sounds and talk with each other.

Sockets Example

eloutlet.jpg

I’ve written full example for using Java Sockets in Processing to communicate with a Lantronix XPort or any other TCP/IP enabled device.

The program:

  1. opens a Socket
  2. checks to see if data is available
  3. gets a byte of data from the remote device
  4. sends a byte of data to the remote device
  5. closes the streams of data and closes the Socket

Sockets are more flexible than Processing’s Net library, and are a great way to move anything from a primitive (like a byte) to an Object (like a PSound) between devices.

PlayBooks, Version 1.0

Photo_022306_002.jpg

Carlos put together these fantastic user diaries, for children to record their play sessions (with help from adults). We plan to test them with three kids this week, and incorporate the results into a second version. Parents will fill out a form on the left side of each page to record the parameters and quality of each play session. Children will participate by drawing a picture of the play session on the right side of the page. Every time they fill one out, they can take a balloon from inside the book. We’ve got high hopes that it will be a hit, and help us out with uncovering deep insights into childhood play.

Pong with Feedback!

Photo_022306_001.jpg

Our Pong game now has feedback on the network controllers. The little colored lights respond to the progress of the game locally, so that theoretically, the screen could be in Paris, with one player in Detroit and the other in Jakarta. Cool.

The updated code for the controllers and the game isn’t thoroughly commented yet, but it does work nicely.

We explored the PIC’s DEBUG features, and Java’s Sockets, including DataInputStream and DataOutputStream for a system that runs very smoothly using primitives to communicate both the paddle states and the game progress (via LEDs for now). The Processing program contacts each controller at their fixed IP address, and opens a socket, then data streams to and from each. I’ve created a diagram of this connection. An upgraded version should probably use a mirroring server to avoid issues with dynamic IP addresses and firewalls, but the underlying code would be very similar.

Email Collage

Email Collage Schematic.jpg

This active photo collage hangs on the wall near a computer workspace. It displays pictures that are dependent upon the current contents of the user’s email inbox, conveying general information about email in a calm manner, that does not interrupt other tasks.

Users will receive information regarding message senders, message aging, whether messages have been read, what categories they fall into and what threaded relationships exist between the messages. For class I made this presentation.

9 Seconds

GabeSocialGenius.jpg

Gabe Colombo shows off his tie-making record score on Social Genius. Like previous record holders, Gabe risked repetitive stress injuries in a heroic quest to learn the names of his classmates.

Pong!

pongscreenshot.jpg

Leif and I are now able to play Pong over the Internet. It’s not perhaps the best example of the venerable video game, but the paddles do move nicely up and down as we twist the potentiometers that are attached to our XPort boards.

Rather than use the text-based network commands in Processing, we decided to go one step out into regular Java using Sockets with InputStreams. This approach was pretty easy, and seems to add a lot of flexibility.

If we have more time this week, our Processing code will get some improvements. The key issues, as far as network communications go are:

  • Oddly, the range of bytes transmitted by the XPort goes from 0 to 255, then back to 0 to 25. This is now fixed. We found a simple error in averaging
  • Our connections sometimes drop out after a bit. Some code to check for that and reconnect would help stability
  • Creating controller objects would make managing upgrades–like feedback to the controllers–much easier.

Of course, the other major improvement is to finish the Pong game, adding things like ball movement on the Y axis, and immersive 3D graphics….

XPort PlayStation Zero (PS0)

Photo_021906_002.jpg

This is the XPort hooked up to a potentiometer so that it can accept input for the Pong game paddle. Each controller will be contacted by a Processing program, after which the controller will stream ADC values from the PIC, via the XPort, across the Internet and into Processing. Here is the first draft of controller code for the PIC.