Sociable Objects Workshop: Card Project

[Barbra's, Nathan's and Roy's cards]

Description

Rob distributed index cards to the class, with each card containing words. We were supposed to base a project on those words. My index card contained “urban surpise.“ Rob encouraged collaboration, so Nathan Roth, Barbra Mack, and I teamed up. Nathan brought “funny cry happy“ to the group, while Barbra had “go long“ to contribute. We tried to create a project based on all of these words.

Barbra came up with the idea of having two kites in flight that could determine each others' proximity. The closer they got, the more “in love,” perhaps, they would be. On the ground, their proximity to each other could be gauged via an LED, perhaps, or something similar.

We were given a day to do this.

The three of us brainstormed how to physically do it, and I concentrated mostly on how to implement it in the software. The program didn't work on the day it was due, and neither Barbra nor Nathan were able to complete the kite.

Determined to finish, I consulted Rob later in the week about my code, knowing that my problem was something small and easily overlooked. It was. Rob discovered that my code was saying, “I don't want a response after sending a command,” though I kept waiting for one. We made the change, asking the remote radio to respond to commands, and the code worked.

Code

The code is simple: constantly send a DB command from one XBee to another XBee. The sending XBee would be affixed to one kite, sending its decibel, or distance inquiry, command to the other kite's XBee.

send_remote_db_command_in_api_frame.pde

The rest of the code is implemented in a nascent library that must be placed in either

/Applications/Arduino.app/Contents/Resources/Java/hardware/libraries

in Arduino 17 for the Mac,

/Applications/arduino-0016/hardware/libraries

in Arduino 16 for the Mac, or

/usr/share/arduino-0016/hardware/libraries

in Arduino 16 for Debian Linux.

All files as a tarball