Archive for the ‘documentation’ Category

The Sociable Pint at Allen Street Hardware - 11/30/09

Documentation from the November 30th show at Allen Street Hardware, Buffalo, NY.

The Sociable Pint - 11/30/2009 - Allen Street Hardware Cafe from muse207 on Vimeo.

Progress in Photos

breadboard circuit

The very first prototype of the circuit.
CAD design
The original 3D CAD design of the original module casing.
prototypes
In order to test the capabilities of the sensors and wireless network, I experimented with few basic versions of the final circuit.
empty citcuit boards
After I was satisfied with the preliminary testing and circuit design, I sent out the circuit board to be printed.
circuit boards
This is what the circuit looked like after I soldered on all of the components. Because I have to cram so many components underneath a little pint glass, I settled on a 3 tier design.
completed circuit
The completed circuit securely fitted together.
3 glasses
The first three glasses.

PCBs - version 1

bottom layer

middle layer

top layer

The PCB design has been submitted

I have submitted my first iteration of my circuit board design to BatchPCB for printing. Hopefully they will arrive any day now. At this point I am making 3 glasses. This will enable me to test the basic software functionality of the glasses.

It is my hope to have 12 glasses functional by the beginning of May but this completely depends on what grants I can get.

I recalculated the cost of each pint glass module and almost crapped my pants. After significantly reducing the cost of each glass, I am back up to about $250 per glass module. If I am able to produce a large amount of glasses at a time the cost will be reduced to under $100 per glass. It’s not like any individual component of the glass is that expensive. The problem is that I have many inexpensive components that add up. Add shipping, setup fees, and taxes, and I have a little financial hurdle on my hands.

Fortunately, I have left myself room in the circuit board to swap in and out the more expensive components for more inexpensive ones, so my next wave of glasses will be cheaper in price. I can solder on an ADXL330 chip instead of using the Sparkfun ADXL breakout board. I can leave out the Arduino Mini Pro module and manually solder the ATMEGA168 chip and the necessary components. These modifications will be difficult to complete and will take time (and a better soldering tip than what I have), but they will also reduce the component cost by $35 per glass. But with that being said, I really need to start making some design sacrifices.

At this time I just want to build the first iterations of glasses, complete the programming, and test them before I make any changes. I checked and rechecked my circuit board design a dozen times before I submitted it to be printed, but I am still worried about things not working perfectly. For one, I can’t properly test the effectiveness of the force sensor and the conductive film on the glass until they are completely built. Also I still am nervous about the current load of my DC-to-DC step up component. Anyway, even though this process has been painfully slow, I finally feel that I am making some real progress.

BREAKTHROUGH!!

MESH NETWORK IS NOW FUNCTIONAL!!

ALL MODULES CAN COMMUNICATE WITH ANY OTHER MODULE WITHIN SIGNAL RANGE!!

RSSI IS WORKING IN ALL MODULES TO REVEAL (approximate) PROXIMITY OF CLOSEST MODULE!!

YAY!!

(finally)

(onto the next problem)

Package Design of the Module

Package Design of the Module

Package Design of the Bottom Element

This is the first prototype of the housing for the electronics. It has been developed in the 3D modeling program, SolidWorks, and sent to a rapid prototyping machine to be formed.

I originally considered using the prototype as a mold to produce plastic casings. I have no experience in mold making so I consulted people with experience in this matter. I was informed that the tolerances of a 1/16 inch that I am dealing with could be problematic in the mold making process.

Considering this information, I tested the robustness of the ceramic prototype and was pleasantly surprised. I subjected the prototype to abuse (i.e. by dropping the prototype on floor, by squeezing it in a clamp) and it is apparent that it is more tolerant to strains than the pint glass that it will be affixed to.

The rapid prototyping process is relatively inexpensive (>$5 per piece), and in small quantities (>20 pieces), it seems economical to just use the ceramic prototypes instead of producing plastic versions of the casing.

I wanted to squeeze the electronics into a smaller area, but with the tools that I have access to, the casing that I have produced seems like the smallest I can go at this point. My desire was to fit everything in a 1/2 inch puck glued to the bottom of the glass, but the size of the 850 mA Li-ion battery alone makes this desire improbable. I may be able to go smaller in future iterations of this project, but for now, the size of the casing which I am using is acceptable.

Complete Pint Glass Module

Affixed to the pint glass, the image above is what the complete module will look like. Unfortunately, I have not completed the electronics that will be put inside.

I have attached a clear conductive plastic film that skirts the glass to the capacitance sensor in the glass. I have also experimented with other methods such as conductive paint. Conductive paint is opaque and it doesn’t adhere to the glass surface well. I tried creating a meshed mask and then painting on the conductive paint in attempt to give the touch surface of the glass a somewhat transparent appearance, but even covering this coat with a clear liqueur, the paint still has problems sticking to the glass.

The plastic film has achieved the best results even though it has its own problems. For one, it gets dirty really easily. Fingerprints seem to affix themselves to the plastic film quite easily. Also, liquids easily get caught in between the glass and the plastic film. I ameliorated this problem by applying a clear paint around the edges of the plastic. At this point, the conductive plastic is the best solution, but I really want to find a better solution in the future.

Xbee Modules as Proximity Sensors

For this project I want to use the Xbee modules, not only to allow the glasses to share data with each other, but also as proximity sensors. To test whether that this is a viable option, I placed two Xbee modules at specific distances from each other and took signal strength measurements over a minute. I averaged these values and graphed them.

One module was connected via USB to a computer so I could collect the antenna strength data directly to the computer. I wrote a short python program to assist me in the collection of this data.
Signal Strength of Xbee modules
According to this investigation, I am a little worried about using the Xbees to determine proximity. I tested the Xbee modules in an open space in a clear line of sight from each other and the signal strength values were very inconsistent. A bar situation will be much more complex because the space will contain obstructions such as people and walls. Additionally, I did not test the Xbee modules within the glasses. I plan to include capacitance sensors within these glasses which means that the glasses will be covered with a clear conductive film. The problem with this strategy, even if it works well with the capacitance sensors, is that the film may dampen the signals sent between the glasses.

In a perfect world, it is my hope to eventually find a way to accurately measure distance between glasses so I can use triangulation to map out the location and movement of the glasses within the bar space. Currently, I can tell whether two glasses are within 5 feet of each other through signal strength. At the moment I plan to integrate close proximity events like this into my project.

I have not found a way to determine signal strength between the modules without putting the Xbees into command mode. This is incredibly undesirable because I want to be constantly collecting and sharing accelerometer data and I can not do this when the Xbee is in command mode.

Sketching Out the Shell

Working out the shape of the shell that needed to be affixed to the pint glass, I started to sketch out a design on paper that I would later draft in SolidWorks.

Through this process I had to work out a number of problems. The most important problem was how I was going to fit all of the electronic components underneath the glass. I needed to create a design that maximized space of the components. I also had to pay attention to how the design would allow for the placement of a RGB LED and that would allow for easy accessibility if I needed to open it up and change things around. The package design also needed to be robust in case it is dropped and stable so the glass wouldn’t be at risk of falling over.
chicken scratch

Circuit Schematic as of 8/13/2008

Here is my in-progress schematic of the circuit that will be packed underneath the glass: Circuit Schematic 8-12-2008

click on the image for an expanded view.

Preliminary Accelerometer Experiments

In my preliminary investigation concerning the motion of pint glasses, I affixed an ADXL330 accelerometer to the bottom of a pint glass. Through a long cable connected to a microcontroller, I was able to record the motion of the glass on 3 axes over time.

I created a simple Python program allowing me to graph and view this data. Through these graphs, I have started to understand how to best implement accelerometers embedded in my pint glasses.
Image #1
The first image represents a hand-held pint glass which is repeatedly ‘cheersed’ against another pint glass. In this diagram, the outlying points represent the accelerometer data at the moment of the cheers. The cluster of points occurred as I was simply holding the glass in my hand. This image can be compared with the fourth image where the glass was merely resting on the table.
Image #2
The second image is a representation over time of the glass being cheersed 12 times over 50 seconds. As expected, there were spikes in the data in both the x-axis (green) and y-axis (blue) signifying the contact of the pint glass against another glass.
Image #3
The third image is a 3-dimensional plot of one cheers of the glass. I chose to visualize the data in this fashion because I was curious to see if one of the dimensions would be more effected than the others. Interestingly, it seems like the Z-axis has more extreme outliers compared to the X and Y axes. This comes to a surprise to me since the glass impacted the other glass on a horizontal plane and the Z-axis acceleration does not deal with the horizontal plane.
Image #4
The fourth image is the accelerometer values I recieved when the glass was sitting on the table for 50 seconds. Just like the first image, there are two different blobs of points because two different plots were overlayed over each other (X-axis over Z-axis, Y-axis over Z-axis).
Image #5
The fifth image is a 2 dimensional graph of aggregated accelerometer data as liquid is consumed out of a pint glass. The large group of points on the left represents the accelerometer data when the glass rested on the table. These points extended towards the right when the glass is lifted off of the table and brought it towards the lips. These points moved back to the left as the glass was brought back to the table. The outlyers in this graph occurred of the impact of the glass being placed back on the table.
Image #6
The sixth image is a representation of the x-axis (green) and the y-axis (blue) over time as I took 5 sips of liquid out of the pint glass. Again, the spikes of data occured as the glass made contact with the table as I was setting down the glass.
Image #7
The seventh image is the plotting of 3-axis accelerometer data as the glass is lifted from the table to the mouth and back to the table.

notes:
I used voltage levels on the axes of the graphs as opposed to the gravitational constant (denoted G). The voltage does not have a direct relationship to G’s, and at this point of my investigation, I do not find it important to find a polynomial fit for the G’s. For my application of the accelerometer, I am really only concerned with the voltage levels going into the analog pins of my microcontroller. I am not sure if knowing G’s are going to become important for my application.

Due to a crashed hard drive right after the completion of this experiment, some of the documentation was lost. I plan to update this entry with graphs comparing the accelerometer values of a glass rest on a table and a glass being held in the hand. I find the subtle differences of these two graphs quite interesting. Also, I will need to rewrite python graphing code in order to continue investigating accelerometer output. Once this code is completed, I plan to include it into this entry.