ECE497 Project Christmas Light Controller

From eLinux.org
Revision as of 12:17, 8 November 2016 by Woodsjl (talk | contribs) (Theory of Operation)
Jump to: navigation, search

thumb‎ Embedded Linux Class by Mark A. Yoder


Team members: Josh Woods and Ricky Rung

Grading Template

I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

00 Executive Summary
00 Installation Instructions 
00 User Instructions
00 Highlights
00 Theory of Operation
00 Work Breakdown
00 Future Work
00 Conclusions
00 Demo
00 Late
Comments: I'm looking forward to seeing this.

Score:  10/100

(Inline Comment)

Executive Summary

This project is about creating a user interface to control 5 meter long strands of 160 LED lights. This interface will allow a user to select from light shows that are statically written on the bone or enter a small amount of code to generate a light show of their own. The user will also be able to select a song to be played while enjoying the light show.

Light patterns and writing code is working and can be added to the display queue. The display queue will play each pattern for a predetermined time period before going to the next pattern.

The audio queue only works for the first song added to the queue on start up of the server. We need to include a help file to show users what functions they can use in their code. We need to make a video of the program in use.

This will be a fun and exciting Christmas feature for the ECE department.

Needed Hardware

You will the 5 meter Adafruit's LPD8806 LED String.

5 Volt 10 amp Power Supply https://www.adafruit.com/product/658.

USB audio dongle https://www.sabrent.com/product/USB-SBCV/usb-2-0-external-2-1-surround-sound-adapter.

Installation Instructions

Follow these steps to enjoy the light show

  • Clone this repository ECTree.
  • Connect the 5 V power supply to the Vcc and Ground pins of the LED strip
  • Connect the clk pin of LED strip to P9_22 of the bone
  • Connect the dO pin of the lED strip to the P9_18 pin of the bone
  • connect the audio dongle to the usb port of the bone
  • run the install.sh file from the cloned repo (this needs to be run one time)
  • run the setup.sh file from the cloned repo (this needs to be run every boot up)


User Instructions

  • run the web.js file to start the server
  • point any web browser to the IP of the bone and port 887
  • enjoy the light shows

Highlights

Our user interface will work on any browser including a phone's browser. All light display patterns made by user will be saved for future use. The code is written in a way that allows it to be easily expanded to include more audio and display patterns.

Include a YouTube demo.

Theory of Operation

We have a server that is listening on port 80 for user's to connect. once a user connects the web page request all current queue information and displays that information for the user to know how long until their pattern or song will be played. The server handles all of the request from many users to maintain unity among all the users so that everyone sees the same queue. the display patterns are sent from the user to the server using a json object and not actual code to prevent bad code spinning the server out of control.

Work Breakdown

  • getting lights to interact with the bone : Ricky
  • build a server : Josh & Ricky
  • build user interface : Josh & Ricky
  • pattern queue : Josh & Ricky
  • audio queue : Josh
  • beautifying website : Ricky

Future Work

If we had more time, we would have liked to make the lights "dance" to the beat of the music.

Conclusions

I, Josh, really enjoyed working on this project because I got to learn and explore some of the aspects of web programming. It will be nice to come back to campus after fall break and see the project in use and see how much action the lights will be getting.




thumb‎ Embedded Linux Class by Mark A. Yoder