Final Project: Wind
Creating something seemingly organic out of mechanism is part of my fascination. I had a vision of a field of grass (or possibly reeds or bamboo) which could sway "in the wind" in reaction to passers-by. It is an image of the wind blowing across a field, where radio-frequency signal strength replaces the wind, mechanism replaces the sense of flow across the grass. Often you see someone carrying or wearing a bluetooth-enabled device, but not everyone. This is the source of the wind I wanted to make, to have the field react to some people but not others. In this, I depict the "haves" as opposed to the "have-nots," thereby also making a statement about class differences.
I attempted to scale-down the scope of the project to that which might be achievable within the half-semester given. I restricted the field to just three elements, each which also doubled as the bluetooth signal strength receivers, the detection of the wind.
Figuring out how a conical range of motion could be achieved was one of my bigger challenges. I decided to go with brass parts (source: McMaster-Carr). The mechanism consists of four parts: a 1/2" ball, a 1/8" rod, and two countersunk finishing washers whose inside diameter turned out to be just enough smaller than the 1/2" diameter of the ball that it was an almost perfect sandwich. Drilling the 1/8" hole through the brass ball was somewhat tricky but could become routine after doing several of them. Clamping the ball without damaging it and centering the drill bit were the biggest challenges.
I built three enclosures (boxes) out of two solid aspen 4' x 6" boards, one 1/4" thickness, the other 1/2" thickness (source: Menards). The thicker boards served as the sides of the boxes and the 1/4" for the top.
The top was constructed from two 1/4" pieces of board to complete the sandwich holding the ball-joint mechanism. No adhesives were used for this, it was strictly a compression-fit. Each of the two boards had a tapered hole to hold the large brass washer. The hole was made from two sizes of drill bits, carefully kept concentric, then later carved to improve the fit with the shape of the washer.
The electronics was basic outside of the Arduino board itself. I made an external pc-board which assisted with making all the connections between servos, Arduino and the servo batteries. I also included a small, two-resistor circuit to define a built-in, hard-wired 2-bit address, so that each device could be unique (at this point, I knew I was making less than 4 devices). The idea behind the 2-bit address was an attempt to make dealing with the software a little easier -- instead of a custom-made program for each device, each device could run the identical software, but know their unique identity from its 2-bit address.
Another, small electronics challenge was that the servos needed one power supply, the Arduino-BT needed an other, lower voltage power supply. I decided to install two separate battery packs in each box, one with 2-AA batteries for the Arduino, and one with 4-AA batteries for the servos. They shared a common ground, so that the signals from PWM pins 9, 10 of the Arduino could control each of the servos.
There are two software components to what was demonstrated on critique day: (1) the Arduino sketch which was capable of producing servo motion based on commands it receives from its serial interface, and (2) the Processing sketch to send position coordinates to the Arduino via the serial interface.
When I was blocked by problems in working with the Arduino-BT devices, I had to rebuild one of the devices with an Arduino-NG (USB) tethered to a laptop and controlled by a Processing sketch from the laptop. The Processing sketch is simply a touchpad like interface that can control the motion of the tethered (USB-connected) device.
For demonstration during critique day, I setup the three devices as if they were all working. The tethered device connected to the Processing sketch on the laptop was enough to show a sense of the idea.
There's a lot yet to be done. I want to manifest this project to its original vision. As a system, I would separate the "bluetooth listeners" from the actual "field nodes" and perhaps introduce a centralized component which collects data from the listeners, performs the triangulation and other calculations (position of a bluetooth source, speed, direction and signal strength). The central component would then, somehow, broadcast to the field what movements should occur.
There are other items I wish to explore. The servo motors are too noisy, stepper motors may improve that, although I might explore changes in the mechanism, since steppers can "keep rotating" as opposed to servo's limitation at about 180 degrees of rotation (and then, only back and forth). I've also been thinking about a solenoid mechanism, perhaps used with springs, for a completely different type of movement, as a variation.
From the software point of view, I might consider using the AvrX kernel instead of the arduino software. That is, if I wish to put have more threads of execution running on each device, each node. One thought was to create an elliptical movement, where the input parameters to it would be the foci (positions) the rate of rotation, and the direction.
And I'm sure my explorations will lead be in even other directions.
** Note: I have reduced the image sizes for display within this post. If you wish to see an image in full size, you can select "view image" from your browser.