- Meter Reading With a Webcam
The goal of this project is to read a standard 6-dial analog natural gas meter. Data is captured using an inexpensive USB webcam, and processed (minimally) using Python. As I would like to be able to measure the amount of gas used on a minute-to-minute basis, directly reading the dials on the meter (by eye or computer) does not provide enough precision. That is, the finest enumerated dial reads increments of 1000 cubic feet, more than is consumed over several cold winter days. To get around this, rotations of the lower test dials are counted over successive images, and calibrated to correspond to overall.
- High Power RGB LED Controller
This is an ongoing project to control a number (currently 5) of Lamina Atlas high power (350-500mA) LEDs. Current progress includes:
- PCB artwork (in Eagle) with connections for 5 RGB LEDs.
- Firmware for a Microchip PIC16f887 microcontroller to interface between the FTDI 245R USB chip and a number of Texas Instruments TLC5940 constant current LED drivers.
- Python ctypes interface to libftdi.
- A simple Python interface to communicate color commands by USB
- Ongoing work includes an intuitive graphical user interface, music synchronization, and a reworking of the hardware to utilize switching constant current regulators.
See 500mA 5-channel RGB LED Controller / Driver, for an updated design.
- 1-Wire Relay / Lighting Controller
An 8-channel 120V relay controller, this project was originally intended only as a brewing and vinification process controller.
Since its construction was concurrent with a dance party, it was first tested as a dance floor lighting controller. The controller is comprised of a DS2408 8-channel switch, and eight 20A relays. - 500mA 5-channel RGB LED Controller / Driver
This project is a revision of my previous High Power RGB LED Controller. It corrects several bugs in the software, facilitating faster color updates from the computer (~250fps), allowing experimentation with fast, but 'smooth', color changes, and implements 2-way communication with the microcontroller.
Additionally, and more significantly, the hardware has been redesigned to use switching current regulators (National Semi. LM3402) for accurate LED current control, and high efficiency. One board includes the PIC microcontroller, USB communications, and one TLC5940. This handles computer communications and 12-bit pulse width modulation (PWM) intensity control for 15 channels. Another board has the LED regulators, 15 in total, to provide 500mA to each of 5 Lamina Atlas RGB LEDs. This eliminates any need for current limiting resistors, allowing for accurate balance between the colors within an LED, and between LEDs. The result is that little color and white calibration is required, which, without more equipment, was an inexact science.
- RGB LED Color Calibration
This article documents some experiments with achieving accurate, characterized, color reproduction from Lamina Atlas RGB LED lamps.
During and since construction of my driving circuitry for RGB LEDs, I have wanted to characterize the color output, both (1) for my own edification, and (2) to facilitate calibration of the color output to a defined color space, such as the sRGB of a typical computer monitor.
I recently leased an X-rite Colormunki spectrophotometer suitable for this task. The following describes the data I was able to gather, and how I've used it to calibrate for accurate color reproduction from the lamps.
- 1-Wire Sensors
Using the Maxim/Dallas Semiconductor 1-wire sensors for systems and environmental monitoring.
- LED Water Lamp
Construction of a computer-controlled color LED bubbling water lamp. Three LED channels (RGB) are controlled by PWM for 24-bit color support. A 16F88 PIC is used to control a MAX6966 PWM LED chip. Computer communication is by the Dallas 1-Wire interface, via a DS2408 PIO chip.