Difference between revisions of "ECE497 Project Programmable Light Show"

From eLinux.org
Jump to: navigation, search
(User Instructions)
(Highlights)
Line 37: Line 37:
 
== Highlights ==
 
== Highlights ==
  
Here is where you brag about what your project can do.
+
The thing about this project is that it's really just an enabler; it enables anyone that connects to the server to come up with their own ideas about what they want to have the LED string display, and it lets them do it. That being said, here's a video to demonstrate some of the things you can have it do.
  
Include a [http://www.youtube.com/ YouTube] demo.
+
'''PUT VIDEO HERE'''
 +
 
 +
In the video there are 3 things demo'd:
 +
 
 +
*A red sine wave and a shorter-wavelengthed red sine wave
 +
*A single red light the races to the end of the strand and races back blue, then does the same thing but as a group of 10 lights.
 +
*A simplified no-controls version of pacman, which spawns some random white pellets and has a yellow group of pacman lights go down the strand until he's eaten them all, at which point he blinks a few times to show that he's won.
 +
 
 +
These are just some of the things someone could make. Creativity and time were my limiting factors for this demo, but I hope to see others make more interesting displays with this tool.
  
 
== Theory of Operation ==
 
== Theory of Operation ==

Revision as of 19:13, 17 November 2013


Team members: Taylor Purviance

Executive Summary

The idea of this project is to have a bone controlling a chain of LEDs and drive the LEDs to flash different colors and patterns. The patterns and colors being displayed will be programmed via a web interface that is accessible to the public, allowing anyone to program the lights.

At the moment, the project is up and running, allowing individual LEDs to be changed via a drag-and drop programming interface accessible via browser. However, the speed of communications / light changes is still a bit of a problem. Using the slow way, it would take 2 or 3 seconds to change all the lights.

Most of the effort of the project is now focused on changing the interface so that multiple light changes can be bundled in messages, making fewer messages and (hopefully) faster update times.

Installation Instructions

Give step by step instructions on how to install your project.

  • Include your github path as a link like this to the read-only git site: https://github.com/MarkAYoder/gitLearn.
  • Be sure your README.md is includes an up-to-date and clear description of your project so that someone who comes across you git repository can quickly learn what you did and how they can reproduce it.
  • Include a Makefile for you code.
  • Include any additional packages installed via opkg.
  • Include kernel mods.
  • If there is extra hardware needed, include links to where it can be obtained.

User Instructions

1. Run the setup script

Run the included setup.sh file.

2. Start the boneserver

Start the included boneserver.js file.

3. Navigate a the page via web browser

With the boneserver now running, point your web browser to your bone's IP address on port 8080.

4. Drag and drop blocks

Although there are a plethora of blocks available in blockly, you will likely be interested in the blocks under the "lights" category. One of the blocks if for setting a light at a position to a color. The position value should be between 0 and 159, while the red, green, and blue values should be between 0 and 127. However, this is just queuing up the changes locally. To display the changes you've made, use the send lights block. If you want more than one light to change at the same time, use the set lights block multiple times before using the send lights block. If you're doing some animation, you'll likely want to give it a number of milliseconds to delay after the lights are changed before they will be set again.

5. Click the "run" button

Once you are ready to see your code run, click the "run" button near the top of the web page. If you get a message saying something about "bad code" make sure that your blockly blocks have all of their input spots filled or simplify your design and try again.

Highlights

The thing about this project is that it's really just an enabler; it enables anyone that connects to the server to come up with their own ideas about what they want to have the LED string display, and it lets them do it. That being said, here's a video to demonstrate some of the things you can have it do.

PUT VIDEO HERE

In the video there are 3 things demo'd:

  • A red sine wave and a shorter-wavelengthed red sine wave
  • A single red light the races to the end of the strand and races back blue, then does the same thing but as a group of 10 lights.
  • A simplified no-controls version of pacman, which spawns some random white pellets and has a yellow group of pacman lights go down the strand until he's eaten them all, at which point he blinks a few times to show that he's won.

These are just some of the things someone could make. Creativity and time were my limiting factors for this demo, but I hope to see others make more interesting displays with this tool.

Theory of Operation

Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.

Work Breakdown

List the major tasks in your project and who did what.

Also list here what doesn't work yet and when you think it will be finished and who is finishing it.

Future Work

Suggest addition things that could be done with this project.

Conclusions

Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.