1 Updated : 12/16/2008 Version 1.1
Creation of an Auto-Tracking Theatrical Spotlight
First Semester Report
Fall Semester 2008
By
Eminet Ayele
James Hagan
Andrew Katers
Nicholas Powers
Prepared to partially fulfill the requirements for ECE401
Report Approved: ___________________________________________________ Project Advisor
___________________________________________________ Senior Design Coordinator
2 Updated : 12/16/2008 Version 1.1
Abstract
What are the two big factors that can influence the effectiveness of a production on the
stage, or a presentation? Time and money. There are people behind the stage and the curtain
directing and assisting the actors, controlling the lights, and cueing the show. What is the
common element between all of these things? The potential for human error. In order to
increase the effectiveness of a production or presentation the potential for human error can be
eliminated from certain systems. One of the systems that can be changed is manual control of
spotlights. Our project is going to be the development of a device that will be able to
supplement the manual control of spotlights with the potential for automated tracking of an
actor/ presenter on stage.
Recent technological developments in the wireless field have allowed us to develop a
project that differs from existing implementations. We will be utilizing a specific set of
hardware from Texas Instruments combined with a motorized theatrical light from Electronic
Theatre Controls. This specific set of hardware is unique in the capabilities it affords us when
developing a wireless tracking solution. The hardware from TI has a specific built-in feature
know as “Z- Locator” which allows the team to determine the X-Y location of the presenter. The
X-Y data will then be used to properly position the light so that it targets a desired position.
Throughout the semester we have been experimenting with this system to determine
how viable it would be for this application. We have tested the radio functions of the
processors in a theatrical environment which is similar to real life situations regarding
interfering noise. It was determined that the hardware we are using is sufficient enough for the
environment and accuracy which we require for proper functionality. The next steps for the
project will be to continue programming the processors and create circuit boards for all of the
needed components.
3 Updated : 12/16/2008 Version 1.1
Index
Title 1
Abstract 2
Index 3
List of Figures 4
I. Introduction 5
a. Previous Work 5
b. Current Work 6
II. Components 7
a. TI Hardware 7
b. ETC Hardware 7
III. System Breakdown 8
a. Control Module 8
b. DMX Processor 9
c. DMX-512 11
d. Triangulation Processor 12
IV. Hardware 15
V. Timeline 16
VI. Conclusion 17
Appendix A – Abbreviations 18
Appendix A – Budget 19
Appendix B – UCA Signal Analysis 20
4 Updated : 12/16/2008 Version 1.1
List of Figures
FIGURE 1 FOGBox 5
FIGURE 2 SLIDEBox 5
FIGURE 3 WALLBox 5
FIGURE 4 Wireless Box 5
FIGURE 5 CC2430 6
FIGURE 6 CC2431 6
FIGURE 7 Grid Layout 6
FIGURE 8 ETC Source Four Revolution 7
FIGURE 9 System Breakdown 8
FIGURE 10 Main Program Flowchart 9
FIGURE 11 Subprogram Flowchart 10
FIGURE 12 DMX Capture 11
FIGURE 13 Triangulation Flowchart 13
FIGURE 14 Calibration Mode Flowchart 15
FIGURE 15 Timeline 16
5 Updated : 12/16/2008 Version 1.1
Chapter I: Introduction to the RAMBox:
a. Summary of previous work
The first RAMBox project was started in 2003. At the time there were no devices that could control a PowerPoint slide show through the DMX-512 Protocol. Seeing a need for this the team decided to create a device that could accomplish this goal. The team created a device that would receive a signal through the DMX Protocol and transmit the given command to a waiting computer program which would interpret the signal and use it to control the computer functions. The device was quiet successful and the resulting design was purchased by ROSCO Industries. ROSCO then developed the design into a commercial product which they sold as “Keystroke.”
During the following years the project continued to thrive and resulted in several other functional DMX devices. “FOGBox” (Figure 1) was used to control a fog machine onstage through the DMX network, “SLIDEBox”( Figure 2) was used to advance a slide projector, and “WALLBox” ( Figure 3) was a DMX controlled power strip. More recently the project has moved into the wireless realm with “WIRELESSBox” (Figure 4) which allowed the transmission of DMX signal without expensive cabling. Last year’s project was the development of a wireless controller for LED panels & a stage prop candle.
Figure 1 Figure 2
Figure 3 Figure 4
6 Updated : 12/16/2008 Version 1.1
b. Current Work
At the beginning of this semester, the RAMBox team made a decision to design an auto tracking theatrical stage light. This careful decision was based on the history of RAMBOX to make theatrical devices more capable and resourceful using the DMX-512 protocol. In addition to that the team recognized the broad capabilities of the TI development kits that were already a part of the RAMBox project from the previous year. This design can be applied to a wide variety of situations such as public speaking forums, professional presentations, and theatrical stage performances.
The brief plan of this year’s project is to auto track a presenter or an actor in a stage with a theatrical stage light by having him/her wear a transmitter. This is accomplished by using the two CC2430 and CC2431 TI development kits that were donated to last year’s RAMBox project.
One CC2430 will be working as blind node, while we have many of the reference nodes. (Figure 7). The blue dot represents the actor while the reference nodes are placed at specific locations on the stage (red dots). Reference nodes are a stationary devices with a well-known and stable location (X/Y position), that can tell the Blind node where its location is on request. We need between 3 and 16 reference nodes to calculate the location of a blind node (the more nodes we use, the greater the accuracy). Then blind node, when requested, will calculate its location based off the data it received and sends that information to the controller.
Figure 5 Figure 6
Stage
= Reference
Node
= Blind Node
Figure 7
7 Updated : 12/16/2008 Version 1.1
Chapter II: Components
a. TI Hardware
Texas Instruments has provided multiple development kits to the project that are being carried
over from the previous year’s project. These consist of a 2430/2431DK development board that is used
to run diagnostics and program the actual 2430/2431DVM modules (Figures 5 and 6). The reason these
were chosen for this specific project is due to some unique features they posses. Both chips are based
off of the Intel 8051 processor. The 2431DVM also contains extra logic for the TI Z-Locator software
stack. All of this hardware was inherited with the project and thus required no spending as of yet.
The 8051 processor is a 16 bit processor containing 16kb of program memory and 128 bytes of
data memory. It runs at a clock speed of 32MHz. This processor is overkill for this project but has
provided us with a unique opportunity with its extensive feature list. It is programmable in C which helps
to minimize the learning curve and there exists a significant amount of demo code to ease the learning
process.
The main point to these chips sits with the Z-Locator hardware of the 2431DVM. This allows the
processor to determine its location on an X-Y grid relative to a set of known reference nodes consisting
of 2430DVM’s.(Figure 7) This is key to our project since it allows us to pinpoint the actor’s position on
stage and translate that into angles that the light will be adjusted to. These processors are also low
power and compact making them ideal for carried modules.
b. ETC Hardware
Electronic Theatre Controls has provided the project with a
Source Four Revolution Light (Figure 8). This is the other key to our
project which will help to minimize the amount of necessary
engineering. The light is a 2-axis motorized theatrical light that is
completely compatible with the DMX-512 protocol. It uses
approximately 19 channels to control various functions of the light.
The acquisition of this light meant that we do not need to engineer
our own mount and motor system for a traditional theatre light.
This is significant since motor controls can be notoriously difficult
and being stuck on this problem would have slowed us down quite
a bit. Figure 8
8 Updated : 12/16/2008 Version 1.1
Chapter III: System Breakdown
When the system is broken down it falls into 3 major parts; The Grid/Blind node system, the
Control Module, and the light. The Grid consists of 2430DVM Reference Node chips with known X-Y
coordinates and the Blind Node which determines its location from the Reference Nodes.
The Control Module consists of 2 processors; The DMX Processor and the Triangulation
Processor. The DMX Processor will handle all DMX interactions such as determining the inputs from the
light board and outputting the lights DMX code which contains the necessary angles to center on the
blind node on stage. The Triangulation Processor handles the data flowing from the blind node and
determines the appropriate angles for the light to point at relative to its location from the blind node.
The light is the final part of the system. Its actual function is limited to receiving the completed
DMX signal and then orienting itself in the appropriate direction so that is will center on the blind node.
a. Control Module
The control module consists of two Texas Instrument CC2430 processors. These
processors are responsible for triangulation calculations and DMX 512 bit stream encoding and
decoding. The purpose for two different processors is to ensure a fast response of the light to
changes in location of the presenter. Since the controller module is reading a continuous bit
stream from the DMX slider board, processing time is of a major concern. By splitting the tasks
Stage
= Reference
Node
= Blind Node
Triangulation
Processor
Light Board
DMX
Processor
Other DMX Equipment
Control Module
Figure 9
9 Updated : 12/16/2008 Version 1.1
of this module between two processors, we will be able to dedicate a portion of the processing
to reading and outputting this stream.
b. DMX Processor
The DMX processor is the process by which the light board or the control module will
connect to and communicate with the Source 4 light. The main DMX process will initialize all of
its registers, gather the triangulation information needed from the Triangulation process, and
then read in the correct light board channel to determine which mode the control module is
currently in. The channel slider on the light board can move from a bit value of zero to 255.
There are currently three modes that the light can enter: Active mode, Bypass mode, and
Calibration mode. If the value on the slider is between zero and 64, we are in Active mode. If
the value on the slider is between 65 and 250, we are in Bypass mode. And if the value on the
slider is greater than 250, we are in Calibration mode. The flowcharts for the main DMX
process and the three separate modes are shown in figures 10 and 11.
Figure 11 Main Program for
DMX Processor
Initialize
Registers and
Memory
Read In
Desired
DMX
Channels
Which Mode?
Check Value of
“Mode” Channel
Active
Mode
(value less
than 64)
Bypass Mode
(value
between 65
and 254)
Calibration
Mode
(value =
255)
Get DMX Start
Address from
Triangulation
Processor
MAIN PROGRAM Figure 10
10 Updated : 12/16/2008 Version 1.1
In Active mode the light will be following the actor or presenter where ever they move to on
stage. The light will enter Active mode after running a check on the correct channel to
determine if it is within the correct value. Once in Active mode the light will track the actor by
first gathering the correct angles from the Triangulation process. The Triangulation process
then will turn the angles into a DMX value and send them over to the DMX process so they can
be inserted into the DMX bit stream. Once the DMX process has the triangulation values, it will
store them into a register and insert them into the DMX serial bit stream that travels to the
light using a UART Chip (Universal Asynchronous Receiver/Transmitter). This will happen
multiple times a second. After each execution the Control module will again check what the
slider value is at.
Active Mode for
DMX Processor
Get Current Light
angles from
Triangulation
Processor
Send DMX
String to the
Light
End Active
Mode
Insert Angles into
Outgoing DMX
Data
ACTIVE MODE
CALIBRATION
MODE
Calibration Mode for
DMX Processor
Set Program Flag
High for
Triangulation
Processor
Send DMX
String to the
Light
Request for
Rotation Value 2?
End Calibration
Mode
No
Yes
Give Rotation
Value 1 to
Triangulation
Processor
Give Rotation
Value 2 to
Triangulation
Processor
Bypass Mode For
DMX Processor
Send DMX
String to the
Light
End Bypass
Mode
BYPASS MODE
Figure 11
11 Updated : 12/16/2008 Version 1.1
Bypass mode will mostly be hardware. The main DMX process will check that the
module is in Bypass mode and it will feed the DMX values from the light board directly through
to the light. This mode is used mostly for a stationary spot light or if the light board operator
wants a desired position for the light other than the actor or presenter on stage.
Calibration mode is how the light will be programmed to the stage, so that it will know
when an actor moves from point A to point B, how far it needs to sweep the stage. This mode
will be the most complex of the three. This mode is primarily run by the Triangulation process
instead of the DMX process. How it works is the actor will move to one point on the stage. The
user at the light board will then center the light on the actor how they want it to appear. Once
the light is set the actor will press a button on their blind node to signal to the control module
that the spot is set. The DMX processor will then take the current DMX values for the light and
relay them over to the triangulation processor. The Triangulation processor will then use this
value to calculate the correct triangulation angles to the light. This process will then be
completed three additional times to accurately calibrate the light to the stage.
c. DMX 512
DMX 512 is a protocol by which all light boards communicate with lighting equipment. It
was originally designed to only communicate with the lighting equipment but it is also used to
operate anything that can be controlled digitally. Some of the problems with DMX 512 is it is
unidirectional, serial, and asynchronous. The unidirectionality to the signal means that there is
no error checking with the DMX signal. So it should not be used for any complex systems that
need that error checking such as pyrotechnics and hydraulics.
Figure 12
12 Updated : 12/16/2008 Version 1.1
A DMX signal consists of 512 separate channels of 8 bit data blocks, a Mark before break, and a
break. Figure 12 clearly shows a recorded DMX signal. The logic high seen at the beginning is
the end of the DMX signal and is called the Mark before Break. This mark signals the end of the
DMX stream. The logic low following the Mark is called the Break. This Break preps the devices
that there will be an incoming signal. To determine the difference between each channel there
is a start and stop bit surrounding the 8 bits of data for that channel. The stop bit for the
previous channel is two logic high bits and then the start bit for the next channel following the 2
logics high bits is one logic low bit. After this logic low bit is seen the following 8 bits of data are
the value used for that particular channel.
d. Triangulation Processor
The triangulation processor is responsible for the triangulation calculations which
translate location of the presenter into angles of rotation of the light. To accomplish this, it will
need to communicate both with the parallel DMX processor within the control module and with
the blind node worn by the presenter.
To acquire information regarding the location of the presenter, the triangulation
processor will communicate with the blind node using the internal radio. This processor will
request the “X” and “Y” location
For communication with the DMX processor, we have decided to wire a direct link
between the two processors using one of the I/O ports on each chip. Because of this, they will
be able to pass data as an entire byte. By using this method, data will be updated in a quick and
efficient manner. In addition to the 8-bit port for the passing of data, we will be using two bits
on an additional port to communicate the desired data and if that data is present on the port.
Below is the program flow chart for main program of the triangulation processor. After
initialization, the processor will decide which mode it should be in. If the processor does not
sense that it is in calibration mode, it will constantly poll the location of the presenter from the
blind node. This process relates to the routines within the red dotted lines. Once the processor
has acquired the “X” and “Y” location from the blind node, it will need to calculate the
corresponding angles which will allow the light to point at the presenter. In addition to figuring
the angles, it will compare these angles with a table which will determine the proper 8-bit
binary value which is needed to insert into the commands of the light. Upon completing the
13 Updated : 12/16/2008 Version 1.1
calculations, the triangulation processor will place the first of the two binary values which
represent the rotation of the light into the register linked with the DMX processor. At this
point, the triangulation processor will once again request the location of the presenter from the
blind node and start the process over again.
Main Program for
Triangulation Processor
Set Up
Registers and
Memory
Acquire
DMX Start
Point
Send Start Value
to DMX
Processor when
Requested
In Program
Mode?
Request
X and Y
from Blind
Node
Store First Angle
for DMX
Processor
Calibration
Mode
**NOTE THAT THIS PROGRAM CONSTANTLY
UPDATES THE ANGLES BUT ONLY GIVES THE
ANGLES TO THE DMX PROCESSOR UPON
INTERRUPT. THIS CAN HAPPEN ANY TIME
INSIDE THE DOTTED LINES
Start Angle
Request Interupt
Give Second
Angle Value to
DMX
Processor
End Interupt
PROGRAM FLOW CHARTS FOR TRIANGULATION PROCESSOR
GREEN = GET DATA FROM ANOTHER PROCESSOR
YELLOW = SEND DATA TO ANOTHER PROCESSOR
BLUE = USE INTERNAL PERIPHERALS
Triangulate Angles
The process of triangulation calculations will continuously occur ensuring that the most
recent information about the location of the presenter is available for the DMX processor.
During this process, the first value needed by the DMX processor will be setting in the I/O port,
but we have devised a protocol which will allow the other value to be passed over the port
whenever requested. This process involves handshakes between the two processors. Once the
DMX processor has acquired this first value, it will signal the triangulation processor to store
the second value on the port by setting its handshake bit high. This high signal tells the
triangulation processor to load the second value on the port and, upon completion, the
processor will signal with a voltage high handshake to let the DMX processor know that the
second value is ready for polling. This process will continually repeat unless the triangulation
processor senses that the user has entered the calibration process.
Figure 13
14 Updated : 12/16/2008 Version 1.1
Triangulation Calculations:
There is a need to calibrate the triangulation processor to the parameters of every
installation. We understand that every stage will be of a different size and every light will be
placed at a different location relative to the stage. Because of this, we have created a
calibration process which will allow the system to adjust to these differences. During the
calibration process, the triangulation processor switches from having a passive role in the
control module in which it gives data to the DMX processor upon request to the active role of
acquiring information. In order to calibrate the system, the triangulation processor will need
both the location of the presenter on the stage and the angle of the light when it is pointing at
the presenter. To accomplish this, the processor will wait for a signal from the blind node
stating that it is time to acquire the information.
Retrieving the location of the presenter will be done through communications with the
blind node through the built in radio. To acquire information regarding the rotation of the light,
the triangulation processor will use the linked I/O port between itself and the DMX processor.
The DMX processor will constantly place the most current lateral rotation of the light on this
port. Once the triangulation processor has read this value, it will signal the DMX processor to
pass the vertical angle value by setting the handshake value high. When the DMX processor
returns a signal high handshake, the triangulation processor will collect the second angle value
and wait for the user to indicate another location on the stage is ready to record.
Z
Xx 1tan
Z
Yy 1tan
15 Updated : 12/16/2008 Version 1.1
PROGRAM FLOW CHARTS FOR TRIANGULATION PROCESSOR
GREEN = GET DATA FROM ANOTHER PROCESSOR
Start Calibration
Mode
Wait Untill Ready
to Grab Location
Data
Request
X and Y
from Blind
Node
Acquire First
Angle From
DMX
Processor
Acquire
Second Angle
From DMX
Processor
Flag DMX
Processor for
Second Angle
Acquired 4
Sets of Data?
Calculate Location
of Light
Store Light
Coordinates in
Flash Memory
End Calibration
Mode
NO
Once four different locations on the stage have been recorded, the triangulation
processor will proceed to determine where it is located relative to the stage. This requires
calculating the “X”, “Y”, and “Z” location in space. With the use of four different sets of data,
we have determined that the processor will be able to calculate twelve different values for the
“Z” coordinate and six values for both the “X” and “Y” coordinates. Upon calculation of these
values, the different values for each direction will be averaged to ensure the most accurate
representation of the location of the light.
Calibration Calculations:
Chapter IV: Hardware Layout
We have divided the major hard ware layout we need to do for this project in two three areas:
Reference node: this is the line powered node. For the PCB design, we will include voltage
regulators, antennas, and selector switches. Since we have more than one reference nodes, we
will need to design and obtain many of these layouts.
21
21
tantan
xxZ
tanZxX Z
Yy 1tan
Figure 14
16 Updated : 12/16/2008 Version 1.1
Blind node: unlike the reference nodes, this is completely wireless and thus battery powered. In
addition to the basic hardware layouts that were mentioned above for the reference node, this
will need a battery pack on the PCB design.
Control Module: because of the complexity of this controller, we will need to implement two
CC2430 processors on the hardware implementation. In addition to that we will need
transceivers for the voltage conversion on this controller.
Chapter V: Timeline
Timelines for RAMTrack Auto Tracking Spotlight
August September October November December
Tria
ng
ula
tio
n P
roce
sso
rT
ria
ng
ula
tio
n P
roce
sso
rD
MX
Pro
ce
sso
rD
MX
Pro
ce
sso
rH
ard
wa
reH
ard
wa
re
Find Source for Manufacturing of
Create Program for Sending DMX Code
Create Program for Receiving DMX Code
Test Radio Functions and Z-Location Engine
Determine Calculations
for Triangulations
Research DMX and UART Protocol
Create Circuit for Transmission of DMX Code
Create Circuit for Receiving DMX Code
Research Radio and Z-Location Engine
Create Initialization Procedure for Main Program
Design Circuit Board for Reference Nodes
Create Triangulation Code
Determine Hardware Needed
Create Code for Reference Nodes
For timeline, we have split the design process into three different parts. There is the hardware,
triangulation processor, and DMX processor schedules. The main part of each of the timelines
focused on research and requirements of the processors. Since we have several processors
which need to be constantly communicating with each other, we felt there was a need to make
sure every part of the process was researched adequately. Failure to fully understand all of the
used peripherals on the processors would result in future confusion and delays.
Once we understood exactly how the processors can be used, we needed to determine
how the different processors were going to interact with each other and derive protocols for
Figure 15
17 Updated : 12/16/2008 Version 1.1
these interactions. This consisted of determining data transfer protocols and hardware
interconnections.
Finally, we would be ready to start programming the processors. This came with its own
problems. The main problem is the requirement that the flash programmer designed for the
processors required that they be programmed using C language. Since everybody in the group
was new to this language, there have been delays in the programming portion of the schedule
while we create a better understanding of C.
Chapter VI: Conclusion
Where we are at
The project has managed to complete some major milestones in many of our necessary
parts. Currently most of the necessary hardware has been gathered to allow for system testing.
Wireless signal analysis in the theatre atmosphere has been completed which allowed us to
determine necessary broadcast strength and channel to avoid the majority of interference and
still maintain necessary battery lifetimes. We will be broadcasting at +13dB on channel 21 of
the 2.4GHz spectrum. All program flowcharting has been completed. This means that we can
now move onto programming the functions for our processors. The interface to the light is in
design along with the Control Module. The triangulation software is currently being coded and
nearing completion.
Where we are going
Next semester has quite a few significant goals. The first and most important is to
solidify the wireless linking of the blind, reference and control nodes. This is necessary for
obvious reasons and it must also be incredibly stable and reliable. This link is key to having the
carried blind node and interference cannot be tolerated in order to maintain the needed
accuracy. This should not be a problem if we stay on our determined broadcast strengths and
channels. The DMX translation and handling software needs to be coded so that we can handle
signals from the light board and construct the DMX signal for the light. The last piece of the
puzzle will be final hardware design for each module in a prototype stage.
18 Updated : 12/16/2008 Version 1.1
Appendix A – Abbreviations
DMX - Digital MultipleX signal
19 Updated : 12/16/2008 Version 1.1
Appendix B - Budget
Project Allowance: $250 per semester
Current Spending: $0
Remaining Budget: $250
Anticipated Expenses:
PCB Board Manufacturing: TBD
Node Hardware: Approx $100
Extra 2430/2431DVM’s Approx $500
Donations:
ETC: Source Four Revolution $3500
Total: $3500
20 Updated : 12/16/2008 Version 1.1
Appendix C – UCA Signal Analysis PER/1000 RSSI
[db]
Base Case(6 inches) 0 54
5 Feet 0 80
10 Feet 228 98
15 Feet 228 97
20 Feet 583 100
25 Feet 583 100
30 Feet 940 100
35 Feet 940 100
40 Feet 940 100
45 Feet 940 100
50 Feet 940 100
55 Feet 940 100
60 Feet 940 100
65 Feet 940 100
Black Box Theater
Base Case(6 inches) 0 50
5 Feet 0 76
10 Feet 0 88
15 Feet 8 87
20 Feet 0 89
25 Feet 0 89
30 Feet 2 92
Thrust Theater
Base Case(6 inches) 0 58
5 Feet 0 80
10 Feet 0 84
15 Feet 31 91
20 Feet 0 84
25 Feet 3 90
30 Feet 0 93 PER/1000 RSSI [db]
35 Feet 478 98 channel 26, Power 0 333 97
35 Feet channel 26, Power 13
50 87
35 Feet channel 11, Power 13
0 93
35 Feet (hand On the way) channel 11, Power 13
497 100
35 Feet (hand On the way) channel 11, Power 19
1 96
35 Feet (hand On the way) channel 26 Power 13
27 94
35 Feet (body On the way) channel 26 Power 13
0 92
21 Updated : 12/16/2008 Version 1.1
40 Feet 286 96
Back Of the Theater-Back of the Stage 582 100
Back Of the Theater- Front Stage 20 91
Organ Hall
Base Case(6 inches) 0 72
5 Feet 83 90
10 Feet 83 93
15 Feet 0 87
20 Feet 272 98
25 Feet 101 93
30 Feet 35 95
35 Feet 498 97
Art Classroom
Base Case(6 inches) 21 66
5 Feet 69 84
10 Feet 83 83
15 Feet 279 93
20 Feet 292 96
25 Feet 70 90
30 Feet 143 94 PER/1000 RSSI [db]
35 Feet 799 100 High Power, Power 13
63 83
35 Feet High Power, Power 19
53 80
35 Feet channel 26, Power 0 93 646
35 Feet channel 26, Power 13
0 88