180 likes | 188 Views
Patrick Boyd. Group 4 Rotationally Refreshed Display. Daniel Hill. Why Did We Build It?. We wanted to create a stock ticker like device This design appealed over others due to the “floating” image and cylindrical display
E N D
Patrick Boyd Group 4Rotationally Refreshed Display Daniel Hill
Why Did We Build It? • We wanted to create a stock ticker like device • This design appealed over others due to the “floating” image and cylindrical display • We had seen similar projects elsewhere, but never using a cylinder shape
What is It? • An array of 16 LEDs connected by a swing arm to a DC motor • Control components are located on the swing arm
What Is It? • A Hall effect sensor (trigged by a magnet) is used to detect each complete rotation. • Displays messages stored in memory on what appears to be a cylindrical display.
Hall Effect Sensor • Used to detect magnetic fields • Wide operating voltage • Able to detect magnetic field within several centimeters
LEDs • Orange for high visibility • High power (up to 150mA) and very bright (7 lumen max) • Had to be affordable as we needed to order around 20 ($1 each compared to $4 for others)
PIC16F873A Micro-Controller • Small, inexpensive micro-controller used to control input and output signals for display. • Operates at a range of voltages, uses an external oscillator and can handle an external interrupt.
PIC16F873A Micro-Controller • Non-volatile memory ideal for storage of messages. • Large number of software controllable I/O lines. • 1024 bytes of Registers spread across 4 256 byte memory banks • 8 bit architecture with 35 instructions • Separate Data and Program memory • Uses a single accumulator register for operations
How Does It Work? • The DC motor is set to spin, and this is not controlled by the system • The micro-controller counts the cycles between when the Hall sensor triggers • From this we can determine how long the swing arm takes to fully rotate. • The micro-controller uses this information to determine which LEDs should be on at what point in the rotation
Software Overview • Message data stored in Flash Program Memory • Majority of operation controlled by two interrupt handlers: • External Interrupt triggered by Hall Effect Sensor • Interrupt triggered by the 8-bit hardware timer • Main process loop handles other upkeep tasks
External Interrupt Handler • Triggered by the Hall Effect Sensor, indicating that the arm has completed a full rotation. • Uses the on board 16-bit timer to calculate the speed of the motor. • Calculates and stores the timing required to properly calibrate the 8-bit timer.
Timer Interrupt Handler • Is triggered by the 8-bit timer whenever a new column of pixels needs to be drawn. • Calls a subroutine to output data to the LED drivers. • Resets the 8-bit timer and waits to be called again.
Main Process Loop • Runs whenever interrupts are not active. • Responsible for reading new data stored in Flash Program Memory and storing in registers. • Also updates pointers so message appears to scroll across display.
Technical Challenges • Due to the rotation of the project there we a number of different issues: • Had to have a lightweight design • Can't weight motor down too much • More powerful ARM board not available • Harder to get signals across to the components • Commutators used to transfer power and ground • Mechanical point of failure • Have to protect against slippage of commutator brushes
Future Work • Add third commutator line • Can be used for serial data transfer with outside device • Allows for dynamic message updating • Connect with news sites and RSS feeds for constantly updating headlines