Archive for February, 2006

Hello XPort

Photo_021906_001.jpg

This program in Processing simply opens a connection to an XPort, on its default port. We just tried it and it works. The next step will be to add a function that reads a byte of data, sent from the PIC.

// rob@faludi.com
// This program receives information from an XPort PIC board it may also send
import java.io.*;
import java.net.*;

String host;
int port;
Socket s; // create a socket for output

void setup () {
size(200,200);
host = “xport3.faludi.com”;
port = 10001;
connectXPort();
}

void draw () {
if (s.isConnected()==false) {
connectXPort();
}
}

// connect to the XPort
void connectXPort () {
try { // processes that might fail have to get wrapped in a try loop
s = new Socket(host, port); // open that socket to the server
println(”connected”);
}
catch (Exception e) {
e.printStackTrace();
println(”Unable to open connection to: “+host+” at port:”+port);
}
}

Solved Memory Error in Processing

processingmemoryerror.jpg

After much hand wringing, I seem to have solved an out of memory error in Processing, specifically “java.lang.OutOfMemoryError”. Here’s the fix:

1. Quit Processing. If Processing is running when you make this change, it won’t work.
2. On the Mac, go to Users, then your home directory then Library, then Processing, then preferences.txt. That’s: ~/Library/Processing/preferences.txt and not other files with the same name.
3. In that particular preferences.txt file, change the line that says “run.options =” to be “run.options = -Xms128m -Xmx1024m” Other numbers might work too, but start with those.
4. Save the changes and start up Processing.

Some of this information came from the Processing FAQ.

Apparently the issue for me was the cumulative size of the images I was displaying. It was fine to “load” them, but once I used “image” to display them, they started taking up memory. After about 175 different images of 20K each had been displayed, I ran out of memory. (Note that once a particular image has been displayed, subsequent uses of “image” to redisplay the same image do not use additional memory, so you can redisplay to your heart’s content, once you’ve got enough memory allocated to begin with).

Woo-hoo! (I hope).

Assignment #4: Two of a Kind

StickyBrainScreenshot.jpg

We selected two generalized note-storage programs to review for this assignment in analyzing interaction models, StickyBrain and TopXNotes.


StickyBrain
(notes, diagram) was:

  • Generally exploratory
  • Space oriented (objects? tools? tasks?)
  • Weak modality
  • Generalized
  • Novice users
  • Lean forward (with some lean back)
  • Context unaware

TopXNotes
(notes, diagram, alternate view) was:

  • Somewhat directed
  • Object oriented (less rich object)
  • Moderate modality
  • Somewhat specialized
  • Novice users
  • Lean forward
  • Context unaware

Helping Hands

helpinghands.jpg

Yesterday I created a set of helping hands for soldering from the fine guide on Instructables. The first version (1.0) came apart at the base crimp, so I’ve soldered that connection (v1.01). In general I think the issue is needing a smaller gage of ring lugs. The base is quite stable so the test will be whether the entire setup can withstand the day-to-day stress that students put on equipment at ITP.

Children’s Museum Shadowing Assignment

morgan_UCD.jpg

Carlos Borges and I shadowed a father-daughter trip to the Children’s Museum of Manhattan and made a report of our findings.

We also put together a draft research plan.

Social Genius - Eric Fino

fino13secs.jpg
fino11secs.jpg

Eric Fino has achieved the world record score on my Social Genius game, formerly held by ITP instructor Dan Shiffman. Eric’s apparently got both the social wherewithal and the obsessive compulsion that it takes to be great. Congratulations!

photos by Angela Pablo

Motes

meshnetwork.jpg

As an alternative to diddling with MAC, IP addresses and routers, it would be great to just toss some network objects into a space and let them find each other. The concept has roots in Berkeley’s SmartDust. The basic kit from Crossbow is tempting, though not cheap…

Cellular Module

Main-GM862-Python.jpg

To create an enjoyable interaction for a child and adult over distance–a networked toy–it seems essential to provide a rich communications medium. No matter how enjoyable the toy is, nothing purely physical can replace the sound of a child’s voice or the secondary channel of body language.

Therefore, we’re beginning to explore the GM-862 Cellular Module as a potential foundation for a networked toy. This module offers broadly available wireless data communication, as well as an audio channel that will function at home, outside or even in a car. The other option would be to use a single-board computer, with VOIP for the audio and WiFi to eliminate tethers so we’ll explore that as well. Communication from the single-board computer would be cheaper, but certainly more limited since WiFi coverage outside the home is spotty at best. With tri- or quad-band cellular coverage, our toy would work all over the world, even at Everest Base Camp. And that’s the kind of place where a kid’s going to need a good toy.

Public Displays of Interaction

pacman_saga.blm.gif

This week’s readings are all examples of single display from multiple input. The BBC window display takes SMS and transfers it to the screen behind an interviewee. Blinkenlights accepts input from BlinkenPaint and makes a building-sized display or allows Pong from one or two mobile phones. Vectorial Elevation accepts commands from the internet and displays searchlights over Dublin. The single display is then broadcast to multiple viewers. The second two examples are noteworthy mainly because of the scale of their display, even though the underlying technology is ordinary. It would be interesting to turn these ideas on their head and require massive input in one spot to create minor changes on multiple individual computers. Perhaps an entire public square would need to be occupied to create a pattern that was visible on a town’s web site as a graphical display of occupancy.

1000 Floor Elevator

wonkaelevatorcharlie09.jpg

This assignment was to create a model for a single elevator (not a system of elevators) that would serve a 1000 floor building.

Current Elevator Model:

1. Elevator makes all requested stops in one direction at a time, then reverses and makes all the stops in the other direction.

2. The UP and DOWN buttons on each floor stops the elevator on that floor when it is traveling in the corresponding direction.

3. Floor buttons inside the car select stops at each floor, typically the next time the car passes that floor.

4. Floors that are not selected are skipped.

5. All selections are irreversible.

6. Elevators issue an alert as they arrive at each requested floor.

7. Car displays current floor.

Given a building that’s two miles high, with only one elevator and 1000 individual floors, the current model would clearly create a system that would immediately overload. All floors would be requested at all times, and the 20 second trip (estimated from single sample research) from one floor means that a single round trip would take slightly over 11 hours. The only possible model for such a system would be an airline model, using a hub and spoke system The elevator would take all passengers to the ground floor (or a sky lobby) floor on a scheduled basis. Then when that floor was loaded, all passengers would be redistributed to their destinations. Without mathematical modeling it is impossible to predict the best schedule, but here we assume that the elevator would serve 25 floors at a time, in order.

1000 Floor Elevator Model

1. Elevator makes scheduled stops only.

2. Each floor displays a schedule of service for that floor, typically two per day.

3. Outside of emergency controls, there would be no floor selection system inside the car, which would make only scheduled stops, like a train.

4. Elevators issue an alert well before they arrive at each floor, and again at arrival, similar to platform announcements in a train station.

5. Car displays upcoming and current floor

I’ve sketched the interior view of the 1000 floor elevator car.