g4_rotdisp_slides
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
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.
Hardware Schematic
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.
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
device
Allows for dynamic message updating
Connect with news sites and RSS feeds for
constantly updating headlines
Questions?