A drinking glass with a built-in LED display for visualizing cocktail recipes. The user picks a recipe from the application, and the LEDs shows how much liquid should be poured.
Cast a glass
- Design a four-piece positive mold with notches for LEDs and place for board and battery at the bottom.
- Machine mold on ShopBot
- Clear & foodsafe casting resin: looks like there's no such thing. I'll use clear, non-foodsafe resin for now. Another option is to use vacuum forming, but this might be hazardous for the electronics.
- Stuff the glass with electronics.
- Initial model: leave hole to connect to PC.
Electronics
- Pick a microcontroller: ATMega168 has enough pins, also the ATTiny2313.
- Design a charlieplexed bi-color LED matrix (this is harder than I expected! Still working on it). I can simplify matters (i.e., reduce number of pins and traces) by having each pin combination control two LEDs instead of just one. Need to check brightness though.
- The circuit consists of a milled part (with the microcontroller, communication headers, etc.) and vinyl cut traces with the LEDs and resistors.
- Use bi-color LEDs (already asked Arch shop managers to order).
- Map height to volume, as the glass circumference changes with height. Can achieve this by calculating the volume of a conic frustum (i.e., subtract volumes of two cones). Or assume a cylinder for the first prototype...
- Number of LEDs to use: a pint glass is ~135mm tall. I'll use 15 rows of bi-color LEDs. lowest five rows have 5 LEDs each, mid five - 6 each, high five - 7 LEDs each, for a total of 5x5+5x6+5x7 = 90 LEDs total. For the first prototype, I'll start with just a couple of LEDs in each row!.
- Power source: charlieplexing should make it possible to power the matrix using lower voltage than I have originally predicted. A 9V battery should be enough.
- Mill, cut, and stuff!
Functionality
- Basic: typing an amount of liquid calculates height and lights LEDs up to proper row. Support multiple layers using alternating colors.
- Advanced: (1) predefined recipes (2) drink pacer: LEDs are turned off to desired level.
Interface
- Python interface.
Communications
- First prototype to feature a wired connection. Might go wireless later.
- Neil suggested using inductance communication with a base, which will communicate with the PC.