This is a dual HOA switch for motion sensing outdoor lights. I used common (inexpensive) motion sensing lights with some modifications and designed a PCB to fit in a dual gangbox, so the digital HOA, complete with nice LED indicators, can be mounted easily on the house with a customized dual gangbox faceplate. Each light can be controlled by a combination of the two motion sensors, and each light has its own ON time that can be set from the switches on the dual HOA interface.
Tag: C Code
Movie Prop Helmets
Each helmet has red (clear when off) LEDs in the shape of it’s character’s first initial. These letters pulse on and off when the thinktank device is inactive, and will transition to a fully illuminated state when the thinktank device is in use by the characters.
Above the initials are two rows of green LEDs which will be off when the thinktank is inactive and will “chase” or “sequence” at an increasing rate as the thinktank transitions to its active, or in use, state.
VCRBot
The VCRBot is a way to use a VCR, a video camera, and an inexpensive exterior light with motion detector to record the camera’s viewpoint onto a VHS tape only when something moves within the motion sensor’s field of “vision”.
In short, the VCRBot behaves similar to a person who would press the record button on the VCR and turn on the exterior light when motion was seen and then press the stop button on the VCR and turn off the exterior light when motion had not been seen for a while.
MDF Library in ANSI C
I wrote a library in ANSI C that implements the MDF format. The library provided public functions to add new data definitions, write the header, and add data to an unsorted MDF file. It also provisioned for space limitations on the storage device and unexpected power loss.
The code was written using structs and as much function and data hiding as ANSI C allows, so it was fairly object oriented. It also allocated memory dynamically using malloc, calloc, and realloc, and while a memory leak was not a concern because the logger would only be shut down on total loss of power, care was still taken to free any dynamically allocated memory appropriately.