download report

Transcript g4_rotdisp_slides

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
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
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.
Hardware Schematic
Hall Effect Sensor
Used to detect
magnetic fields
Wide operating
Able to detect
magnetic field within
several centimeters
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
PIC16F873A Micro-Controller
Non-volatile memory ideal for storage of
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
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
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
Resets the 8-bit timer and waits to be called
Main Process Loop
Runs whenever interrupts are not active.
Responsible for reading new data stored in
Flash Program Memory and storing in
Also updates pointers so message appears
to scroll across display.
Timing Diagram
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
Allows for dynamic message updating
Connect with news sites and RSS feeds for
constantly updating headlines