This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
projects:unicycle_lights [2013/12/19 22:26] hboortz |
projects:unicycle_lights [2014/01/03 11:16] (current) hboortz |
||
---|---|---|---|
Line 1: | Line 1: | ||
======Unicycle Lights====== | ======Unicycle Lights====== | ||
===Computer Architecture, Fall 2013=== | ===Computer Architecture, Fall 2013=== | ||
- | ==Heather Boortz== | + | ===Heather Boortz=== |
---- | ---- | ||
===== What===== | ===== 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. | + | 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.{{ :projects:actionshot.png?150|}} |
===== Why ===== | ===== Why ===== | ||
Line 12: | Line 12: | ||
=====How===== | =====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. | 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: | ||
+ | {{:projects:uni_lights_schematic.png?200|}} | ||
+ | |||
+ | 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. {{ :projects:on_unicycle.jpg?300 |}} | ||
=====Documentation===== | =====Documentation===== | ||
All of the code and relevant documentation can be found at https://github.com/hboortz/UnicycleLights | All of the code and relevant documentation can be found at https://github.com/hboortz/UnicycleLights | ||
- | =====Future===== | + | =====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. | ||
+ | {{:projects:unicycle_lights.7z|}} |