David Bruck

Programmable LED Strip

It is a library for using an Arduino to control a strip of 144 LEDs, specifically a chain of WS2811 LED drivers.

Technical Details: Primer.ino is the main program. I didn't originally write Ai_WS2811.cpp, it was a library I found that uses assembly to control the precise timing of interfacing with the LED drivers. I did add a function for handling writing an arbitrary number of LEDs, not necessarily the whole strip, which I then used in the ripple transition. The Display class is accessed to initiate transitions, and Color is for more easily managing each RGB color. Primer.ino will randomly transition between random colors into infinity.

Code

Hologram Rotation

A program built to run on the OpenComputers mod for Minecraft. It uses the hologram projector peripheral to display and rotate voxel objects in 3d space.

Techical Details: Uses the OpenComputers API. OpenComputers adds computers and computer peripherals to the game Minecraft. The peripheral that this program uses is the hologram projector, a projector with a 48 wide, 48 long, and 32 high grid of voxels that can be individually activated (acessed with "component.hologram") The program starts with a matrix of voxels that constitutes the object being displayed and rotated (called "thing" in the code). This object matrix is then multiplied by a rotation matrix, a special kind of matrix that has the unique property that when another matrix is multiplied by a rotation matrix, the original matrix is rotated. The program stores 36 states, 35 of incremental rotation and 1 of the original object, and then cycles through this buffer to animate the rotation on the projector.

Code

Reaction Timer

A reaction timer program coded in Verilog HDL to run on an FPGA.

The timer uses a state machine to progress through the program. It starts when you push the button, delays for a random amount of time, then turns on the lights and you hit the button again to time your reaction.

Code