Download Preliminary Design Review Laser Choreographer

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts

Fault tolerance wikipedia , lookup

Embedded system wikipedia , lookup

Immunity-aware programming wikipedia , lookup

Transcript
Critical Design Review
Laser Choreographer
2500FX
Team ThunderForce
February 26, 2004
Table of Contents
Introduction
Features
System Overview
Software
Hardware
February 26, 2004
Expansions and
Upgrades
Risks and
Contingency Plans
Questions
Laser Choreographer 2500FX
Overview
Designed to aid the in choreography of
large groups of performers
Projects laser dots to represent the
location of each performer at any time in a
show
Includes software to write the
choreography and control the projector
February 26, 2004
Laser Choreographer 2500 FX
System Overview
PC Software
Operation and
Choreography
Creation
Serial Interface
MC68881 FPU
Jeremy
Jeremy
Nick
RAM
MC68000 CPU
Jeremy
Jeremy
Documentation
Matt
Laser Driver
EEPROM
Jeremy
FPGA/
Prepurchased
Lars
February 26, 2004
Power
Laser
Quentin
Quentin
Scanners
Lars/Matt
Laser Choreography
PC Software Goals
To be able to input data from a standard drill or
choreography sheet into the program in a
natural, easy-to-understand way
To be flexible and extensible to accommodate
the extending of the scope of the hardware
To generate a compiled and optimized set of
point data to send to the projection system,
supporting such features as animation
February 26, 2004
Laser Choreography
PC Software Goals
February 26, 2004
Laser Choreography PC Software
Backend Base Classes
Common Functions to the Base Classes
– Constructor
– Destructor
Recursively deletes all of the members of its
children when called
– addChild()
Instantiates a new child class, adds a pointer to the
child[ ] pointer array, and returns a pointer to the
new child
February 26, 2004
Laser Choreography PC Software
Backend Base Classes
More Common Functions of the Base
Classes
– removeChild()
Deletes the child specified, which in turn causes
everything under that child to also be destroyed,
preventing memory leaks
– visitor()
The heart of the compiler. Recursively steps
through all entire tree, grabbing the appropriate
information from each node. This information is
then parsed, and printed out in the desired format.
February 26, 2004
Laser Choreography PC Software
Backend Base Classes Hierarchy
February 26, 2004
Laser Choreography PC Software
Backend Code Example
cShow::~cShow()
{
// The page is removed, so kill all of its
// children mercilessly
// NOTE: If all goes well, calling the
// destructors of the children pages
// should propagate down to include all
// dots and formations as well as the
// member pages
for(int i = 0; i < pageCount; i++)
delete pages[i];
}
February 26, 2004
Laser Choreography PC Software
Backend Code Example
int cPage::visitor()
{
int returnCode;
// COMPILER: Print out any page information
// in this section
printf("Page:\n==========\n");
// COMPILER END
// Call the visitors of all the children
returnCode = visitForms();
return returnCode;
}
February 26, 2004
Laser Choreography PC Software
Backend Code Example
int cPage::visitForms()
{
// Iterate through the children, calling their // visitors
for(int i = 0; i < formCount; i++)
forms[i]->visitor();
return 1;
}
February 26, 2004
Laser Choreography PC Software
Backend – Looking Forward
Children classes should only be created by their parent
class, and can therefore retain a pointer to the class that
they were spawned from. This helps in various front-end
tasks, such as clicking on a dot, and determining which
formation it belongs to
The visitor allows for very quick and easy changes to the
compiled file. Data can either be printed on the fly, or
collected into a new data structure to be sorted to best
suit the constraints of the hardware
For the formations, all the drawing functions were made
as general parametric curve drawing functions, and thus
can be used for both the backend and the front-end GUI
drawing routines, to ensure consistency
February 26, 2004
Laser Choreography PC Software
Schedule
Right now, we have a fully functioning
software package, able to choreograph
shows, as well as create the compiled
output files for the Laser Choreographer to
read in and project on the field
Next phase of the project: GUI
construction to make these data structures
easy to manipulate for the end user
February 26, 2004
Laser Choreography PC Software
Schedule
February 26, 2004
Laser Choreographer 2500FX
Embedded Systems Hardware
Hardware Components
–
–
–
–
–
–
–
–
MC68000 CPU
MC68881 FPU
AMD 27C512 EPROM x2
KM681000ALP-7 SRAM (128K) x2
Max 233 RS232 Transceiver
National 16550 UART
Spartan XCS10 FPGA
Xilinx XC18V256 EEPROM
February 26, 2004
Laser Choreographer 2500FX
Embedded Systems Hardware
Parts List
– 2 Banana Plug Sockets
– 1 9-pin female serial
connector
– 1 power bus strip
– 1 74HC14 Logic Inverter
– 1 push button switch
– 1 68 pin PGA socket
– 10 20-pin sockets (DIP)
– 2 28-pin sockets (DIP)
– 2 32-pin sockets (DIP)
– 1 40-pin socket (DIP)
– 1 12MHz clock generator
– 3 20-pin headers
February 26, 2004
–
–
–
–
–
–
–
–
–
–
–
–
–
6 10-pin SIPs (Isolated 4.7k)
10 .01 micro Farad Capacitors
1 220 micro Farad Capacitor
1 1Mohm resistor
1 Motorola 68000 Processor
1 Motorola 68881 or MC
68882 FPU
5 74LS245 Bus Transceiver
1 LM340 5V voltage regulator
2 AMD 27C512 EPROMs
2 KM681000ALP-7 SDRAM(2)
1 Wire Wrap Board
1 MAX233 RS232 Transceiver
1 16550 UART
Laser Choreographer 2500FX
Embedded Systems Hardware
February 26, 2004
Laser Choreographer 2500FX
Embedded Systems Firmware
Boot Monitor
–
–
–
–
–
Set up stack
Test RAM
Initialize laser device
Initialize UART
Start main process
Main Process
– 3 states
Idle
Output Loop
Datafile download to
RAM
Interrupts
– Input from serial
device
– Reset
February 26, 2004
Laser Choreographer 2500FX
Embedded Systems
Where are we now?
– Processor running code stored on EPROM
nop, nop, jmp
– Working on connecting RAM and UART
– Developed plans for FPGA bus control
– Researching FPU
– Starting to develop more advanced code
February 26, 2004
Laser Choreographer 2500FX
Project Schedule – Embedded
February 26, 2004
Laser Choreographer 2500FX
FPGA – Embedded Systems
Bus Master Functionality
– We use a state in the state-machine to act as a bus
controller
– Allows for easy chip select
– Prevents other devices from picking garbage off the
bus
February 26, 2004
Laser Choreographer 2500FX
FPGA – Embedded Systems
CPU sends a 4 – bit address to FPGA
This address is decoded and using “One-hot” encoding
one of the 16 peripheral chips will be enabled
Short delay is inserted to stall clock to allow proper
propagation time
CPU
FPGA –
Address
Decoder
EPROM
RAM
…
February 26, 2004
Laser Choreographer 2500FX
FPGA – Embedded Systems
Boundary Scan circuit
to enable
reprogramming of
Xilinx XC18V256
Address Decoder –
Chip Selection
February 26, 2004
Laser Choreographer 2500FX
FPGA – Embedded Systems
Simulation of Address Decoder
February 26, 2004
Laser Choreographer 2500FX
Optical Systems Overview
Laser
Data Bus
Optical
Systems
Driver FPGA
LCD
Photogate
Positioning
System
February 26, 2004
Laser Choreographer 2500FX
FPGA – Optical Systems Driver
Scanner Interface
– Buffers angles and passes them to driver
circuit when mirrors ready to be positioned
Photogate Interface
– Opens or closes photogate based upon
blanking information received from the
processor
Laser Interface
– No interface; diode remains constantly on
February 26, 2004
Laser Choreographer 2500FX
OSD State Machine
Four states
– Rest: No motion of the mirrors, photogate closed. The
projector is in this state whenever not actively
projecting a page or animation.
– DrawNone: Mirrors moving to the next dot location,
photogate closed. The projector is in this state
between projecting dots
– DrawDot: No motion of the mirrors, photogate open.
The projector is in this state only in the instant a dot is
being placed on the field.
– DrawLine: Mirrors moving to the next dot location,
photogate open. The projector is in this state
whenever a label is being drawn.
February 26, 2004
Laser Choreographer 2500FX
OSD State Machine
February 26, 2004
Rest
DrawNone
DrawLine
DrawDot
Laser Choreographer 2500FX
Project Schedule - FPGA
February 26, 2004
Laser Choreographer 2500FX
Optical Positioning System
GSI Lumonics G325DT Scanners in an XY
configuration
– 25 degrees optical excursion
– 35 uA/degree Position detection sensitivity
A660 Driver Board
– Ideally can find used components
– Have full schematics to build our own, if
absolutely necessary
February 26, 2004
Laser Choreographer 2500FX
Projection Mathematics
Determine exact location and orientation
of projector relative to field
Use vector subtraction to generate
projection vectors
Calculate direction cosines and send to
scanner
February 26, 2004
Laser Choreographer 2500FX
Projection Mathematics
P
PB
qPAB
A
AB
B
February 26, 2004
C
Laser Choreographer 2500FX
Projection Mathematics
q PAB  q PBA    q APB
q PBC  q PCB    q BPC
q PAC  q PCA    q APC
PA cos(q PAB )  PB cos(q PBA )  AB
PB cos(q PBC )  PC cos(q PCB )  BC
PA cos(q PAC )  PC cos(q PCA )  AC
AB  PA  PB  2( PA)( PB) cos(q APB )
2
2
2
BC  PB  PC  2( PB)( PC ) cos(q BPC )
2
2
2
AC  PA  PC  2( PA)( PC ) cos(q APC )
2
February 26, 2004
2
2
Laser Choreographer 2500FX
Project Schedule - Optics
February 26, 2004
Laser Choreographer 2500FX –
Power Systems
All ICs are currently running off of a 9 Volt
source
– Simplifies power requirements
– Individual ICs provided either 3.3V or 5V via
voltage regulators
Scanner driver board may require unusual
voltages, such as +/- 22VAC or +/- 35VAC
February 26, 2004
Laser Choreographer 2500FX –
Power System Schematic
February 26, 2004
Laser Choreographer 2500FX –
Power System Parts
C1 - 14000uF or 10000uf 40 VDC Electrolytic Capacitor
C2 - 100uF 50Vdc Electrolytic Capacitor
C3 - 0.1uF Disc Capacitor
C4 - 0.01uF Disc Capacitor
R1 - 5K Pot
R2 - 240 Ohm 1/4 W Resistor
U1 - LM338K 1.2 to 30 Volt 5 Amp Regulator
BR1 - 10 Amp 50 PIV Bridge Rectifier
T1 - 24 V 5 Amp Transformer
S1 - SPST Toggle Switch
MISC - Wire, Line Cord, Case, Binding Posts
February 26, 2004
Laser Choreographer 2500FX –
Backup Power System
Goal is to maintain information stored in
RAM when device is powered off
– Show data
– Calibration Information
Ideally will use large capacity
rechargeable battery for long duration
February 26, 2004
Laser Choreographer 2500FX
Project Schedule - Power
February 26, 2004
Laser Choreographer 2500FX
Risks and Contingencies
Optical Systems
– Risk: Finding affordable, suitable scanner
– Contingency: March 11th deadline to obtain
scanner before falling back on stepper motors
– Risk: Interfacing to the scanner with Team
ThunderForce built driver board
– Contingency: Try to locate used board
through GSI Lumonics
February 26, 2004
Laser Choreographer 2500FX
Questions
PC Software
– Nick
Embedded Systems
– Jeremy
FPGA
– Lars
Optical Systems
– Matt and Lars
February 26, 2004
Laser
– Quinton
Power
– Quinton
Projection
Mathematics
– Matt