User Tools

Site Tools


projects:unicycle_lights

Unicycle Lights

Computer Architecture, Fall 2013

Heather Boortz


What

I made unicycle lights using an FPGA. I made several different patterns of lights, and wrote the code such that it is easy for other users to add their own patterns. The switches on the FPGA board choose the pattern. Both the LEDs on the FPGA board as well as external LEDS can be controlled. A video can be viewed here: http://youtu.be/bKrAh4Fi2No.

Why

Unicycling is awesome, and nighttime unicycling is even more awesome with awesome lights. I wanted open source and easily editable lighting configurations to put on my unicycle. Also, a project that is literally blinky lights is fantastic.

How

I used a Digilent Nexys board with a Spartan3 FPGA to control all inputs and outputs. The switches on the board allow the user to switch between lighting patterns. The built in LEDs will light up in patterns, and the IO ports output signals to a perfboard with LEDs soldered onto it. The entire thing can be powered with a 9 volt battery. All code was written in Verilog, and I used Xilinx to synthesize the code and put it on the FPGA.

The schematic for the LEDs is very simple:

The whole setup looks like this. The FPGA (center) is powered by a 9 volt battery pack (right), and the pcb (left) is connected to the FPGA IO ports.

Documentation

All of the code and relevant documentation can be found at https://github.com/hboortz/UnicycleLights

Reflection and Future Work

I surpassed my minimum deliverable by getting LEDs working off board, however, there are still feature that I would like to add:

  • Saving the program to persistent memory so that it could be turned off and on (I realized this toward the end of the project)
  • Getting the accelerometer and gyroscope integrated and controlling how the lights blink. I intended on using the Arduino GY-521 MPU-6050 Module 3 axial gyroscope accelerometer stance tilt module to get the necessary data.
  • Adding more patterns
  • Adding more (and brighter) LEDs and cleaning up the look and packaging of the system

Overall, I had a reasonably scoped project, and got a fun and physically demoable final product which was really important to me. The biggest difficulty was just fighting with silly Verilog errors, and the incredibly slow process of synthesizing code and then programming it to the FPGA.

unicycle_lights.7z

projects/unicycle_lights.txt · Last modified: 2014/01/03 11:16 by hboortz