Portable Synchronized Basketball Scoreboard Using Zigbee

Transcription

Portable Synchronized Basketball Scoreboard Using Zigbee
Portable Synchronized Basketball Scoreboard
Using Zigbee
by
Rhovie Emmanuel C. Concepcion
Rends C. Maniquis
Ian A. Punzalan
A Thesis Report Submitted to the School of EECE
in Partial Fulfillment of the Requirements of the Degree of
Bachelor of Science in Electrical Engineering
Mapua Institute of Technology
November 2012
ACKNOWLEDGEMENT
The researcherswould liketoexpresstheir de ep es t gratitudetoall the peoplewho
helped and supported them in making this project possible. This venture would
not be a success without them.
Firstandforemost,toGodtheCreatorofall for strength, skills, discipline, and character
development He gave them throughout the completion of the thesis.
ToEngr. R omni c C hua for sharing his ideas and expertise in program
designing. His knowledge and skills helped to improve the study. His encouragement and
personal guidance helped the team to work better.
To Engr. Mi ch ae l Pa c i s , En gr. N o e l Li ns a n ga n, a nd En gr. Vi c D en ni s
C hu a for theirunselfishandunfailingsupportasthesisadvisers. Their knowledge and skills
helped to improve the study.
To Engr. Conrado Ostia, Engr. Ronaldo Cabuang and Engr. Janette Fausto, the
panellists, for giving useful directions and construction comments.
To Concepcion Family, Maniquis Family and Punzalan Family for their
encouragement, moral support, financial support, and endless unconditional love.
Lastbutnottheleast,to
theirfriends,
EE
Youth
07,
andothermentors
whoneverfailedtoguidethem and givethem moralsupport.
iii
TABLE OF CONTENTS
TITLE PAGE
i
APPROVAL PAGE
ii
ACKNOWLEDGEMENT
iii
TABLE OF CONTENTS
iv
LIST OF TABLES
vi
LIST OF FIGURES
vii
ABSTRACT
viii
Chapter 1:
INTRODUCTION
1
Chapter 2:
REVIEW OF LITERATURE
5
A.
B.
C.
D.
E.
F.
Chapter 3:
Previous Study of Wireless Scoreboard
Introduction to Zigbee
Studies on Zigbee Wireless Sensor Networks
Applications of Zigbee
Microcontroller
Graphical User Interface
PORTABLE SYNCHRONIZED BASKETBALL SCOREBOARD
USING ZIGBEE
A.
B.
C.
D.
E.
F.
G.
H.
I.
J.
K.
L.
M.
N.
Abstract
Introduction
Previous Study of Wireless Scoreboard
Introduction to Zigbee
Studies on Zigbee Wireless Sensor Networks
Applications of Zigbee
Microcontroller
Graphical User Interface
Design Outline
Initial Planning
Conceptual Diagram
Conceptual Framework
Design Procedures
Building the Portable Basketball Scoreboard Using Zigbee
i. Scoreboard Display
ii. Inventory and Canvassing
5
6
8
9
11
12
13
13
13
17
18
20
21
23
24
25
25
26
27
28
28
31
32
iv
O.
P.
Q.
R.
S.
T.
U.
iii. Testing of 7 Segment LEDs
iv. Translating the Schematic Diagram to PCB
v. Creating Graphical User Interface
vi. Pin Configuration of Arduino
vii. Initial Testing of the Prototype
viii. Prototype Enclosure
Testing of the Prototype
i. Data Precision Test
ii. Range Test
Measuring Signal Strength
Measuring Time Delay
Statistical Treatment
Conclusion
Recommendation
References
33
34
36
37
38
38
39
39
43
45
49
54
55
56
56
Chapter 4:
CONCLUSION
59
Chapter 5:
RECOMMENDATION
60
REFERENCES
61
APPENDICES
63
v
LIST OF TABLES
Table 3.1: GUI Command Details
40
Table 3.2: Data Precision Testing
41
Table 3.3: Signal Strength Testing Results
46
Table 3.4: Time DelayTesting Results
50
vi
LIST OF FIGURES
Figure 1.1: Scoring Diagrams
1
Figure 1.2: Typical Scoreboards
2
Figure 2.1: Comparison of Existing Signals
7
Figure 3.1: Conceptual Diagram
25
Figure 3.2: Design Flow Chart
29
Figure 3.3: Scoreboard Display
31
Figure 3.4: Power Supply
32
Figure 3.5: Testing of LEDs
33
Figure 3.6: Schematic Diagram of Each LED
34
Figure 3.7: Translating the Schematic Diagram to PCB
35
Figure 3.8: Graphical User Interface
36
Figure 3.9: Pin Configuration of Arduino
37
Figure 3.10: Prototype Enclosure
38
Figure 3.11: Range Testing
44
Figure 3.12: Circuit A
45
Figure 3.13: Circuit B
45
Figure 3.14: X-CTU Program
45
Figure 3.15: Measurement of Time Delay
49
vii
ABSTRACT
The scoreboard of any sport shows the status of the game by displaying the
significant data like time and the team scores. Players and viewers rely on the numerical
figures that are shown on the scoreboard especially the scores of each team and the game
clock to determine which team is winning. Since the technologies nowadays are accelerating
very fast, the present scoreboard can be improved by reducing its size and making it wireless.
Existing scoreboard is permanently placed at a higher location where viewers can see it.
However, it usually takes time for people to set it up and when it encounters trouble, they
will have difficulty repairing the system.The scoreboard designed in this study is portable
because it can be easily assembled and repaired.It is also wireless.These features are in
keeping withcurrenttrends in every new gadget nowadays. The design also synchronizes the
scoreboard to a laptop through a Zigbee signal.
Keywords: Scoreboard, Portability, Zigbee, Synchronize
viii
Chapter 1
INTRODUCTION
Basketball is a team sport in which two teams of five players try to score points by
throwing or "shooting"" a ball through the top of a basketball hoop while following a set
of rules.. Basketball is one of the world's most popular and widely viewed sports (Borger,
2008).. Looking at Figure 1.1 (Scoring Diagram), one point can be earned when the ball
ba is
thrown by a free throw while two points inside the arc and three points beyond. At the end of
the game, the team with higher earned points
p
will be declared winner. Basketball scoreboard
is very essential to people who understand the game. Commonly the
the scoreboard is located
near the committee to be able to update the scores via a computer connected
connect to the gadget. In
this manner, the scores are updated using a program that sends the input from the laptop to
the scoreboard.
reboard. Digital scoreboard applies technology
chnology to the scoreboard because in the old
times, the scores are written on board which can be erased or even edited that may result to
cheating.
Figure 1.1 Scoring Diagram
Source: http://www.coaching-basketball-for-beginners.com/half-court-basketball
http://www.coaching
basketball-diagram.html
1
Traditional scoreboard uses a board with the team name placed at the top and the
corresponding score below its name. The game time is only declared verbally by the
announcer same with the shot clock. As time evolves, the scoreboard has been innovated and
it became technical by using a seven segment display as illustrated in Figure 1.2 (Typical
Scoreboard). The proposed new design in scoreboard is that it will be wireless and portable
through the use of ZigBee. The idea of the project came from the Synchronized Wireless
Clock wherein the clock is displaying the time of the computer. Since the clock is operating
wirelessly, the researchers came up with an idea that the concept can be applied in the
Basketball Scoreboard making the old design wireless and portable. So it is poised to become
a very significant enabling technology in many fields, as it is widely used in military
security, environment monitoring, and home automation (Cao et al, 2008).ZigBee is also
considered as a new standard intended for low cost devices in automation, home controls and
computer peripherals. It enables the broad-based deployment of wireless networks with low
cost, and low power solutions (Ondrei et al, 2006, Heile, 2004).
Figure 1.2 Typical Scoreboard
Source:http://antipolocity.olx.com.ph/tronix-electronic-basketball-scoreboard-iid-181750357
2
In any ball game, the use of scoreboard is very important because it is where the
players and audience are informed of the game status such as time elapsed or time left, the
team scores, and other information that the general audience should know. If scoreboards are
available in a game venue, they are normally permanently attached and cannot be moved
from one venue to another. If a venue has no scoreboard available, there are several things
can unwontedly happen and one of there is cheating. If a portable scoreboard is available, the
game can run smoothly. This paper will attempt to solve the aforementioned conditions by
creating a wireless portable scoreboard that can be used in basketball games.
The objectives of the study are the following:
1. to design a wireless and portable basketball scoreboard
2. to synchronize the laptop and scoreboard using Zigbee
The significance of the study is for the researchers to have a wider knowledge in
microcontrollers and other peripherals which are included in making the prototype. Data
transmission is also studied since it is wireless. It will be easy to operate and troubleshoot
unlike the existing ones which have wires.
The scoreboard that will be designed has the ability to display the remaining time,
team points, team foul and shot clock as illustrated in Figure 1.2. The system is limited in
using ZigBee as the medium for transferring the data from the laptop to the scoreboard. The
Graphical User Interface is also provided as the software to input the data to be displayed in
the scoreboard. However, like any wireless operating gadget, the expected performance of
the scoreboard is only found satisfactory within a maximum radius of 200 feet from the base
station which is the Zigbee transmitter. The study does not cover how to increase the
3
maximum allowable distance between the Zigbee transmitter and its receiver. Furthermore,
itdoes not include troubleshooting the prototype and repairing. The study also follows the old
ruleof playing basketball wherein there is no 14 reset shot clock.
4
Chapter 2
REVIEW OF LITERATURE
Previous Study of Wireless Scoreboard
The main study of this wireless scoreboard display system is the use of the radio
transmitter and receiver and a remote controller. The similarity between the radio
transmitter/receiver and ZigBee wireless device is that both have 2.4 GHz transmission
bandwidth, while the difference is the limitation of the displacement and speed that a radio
transmitter can compare to the ZigBee.
In a study(author,year), the designed scoreboard consists of a wireless scoreboard
display system with at least two scoreboard displays, two controllers, a radio transmitter in
each controller, and a radio receiver in each scoreboard display either together or separately
from one or both controllers. This design is quite complicated because it is difficult to control
two scoreboard displays from one controller or two controllers, and it is always necessary to
rewire the controllers. This is especially the case in indoor basketball games where
scoreboard displays are operated for the entire court using one controller or for split courts
using two controllers.
Radio transmitters 16 and 18 and radio receivers 24 and 26 are 2.4 GHZ spread
spectrum radio devices. The radio devices eliminate interference by the use of frequency
hopping from outside sources including cordless phones and other RF devices on the same
frequency (Uehran, 2005).The proponents will use wireless sensor signal which is actually
theZigBee rather than radio frequency.
5
The radio receivers 24 and 26 are housed in ABS plastic enclosures, which are easily
mounted inside the scoreboard displays 20 and 22 with a small dipole antenna mounted to the
face of or adjacent to the scoreboard displays 20 and 22. Outdoor scoreboard displays 20 and
22 can include rubber gaskets to keep moisture out of the enclosures. The radio receivers 24
and 26 can include a rotary switch or other selection device allowing the user to select
different operating channels, normally set once during installation. The instant invention can
be used in multi-field complexes, such as in baseball, enabling each system to operate
independently without interfering with one another. Currently, there are 16 channels
available to select from with the ability to expand to 77 non-interfering channels (Uehran,
2005).
The prototype design is an improvement of existing design because it uses a wireless
scoreboard with the aide of ZigBee, microcontrollers, and a laptop or personal computer.
Introduction to Zigbee
ZigBee is a low-cost, low-power, wireless mesh network standard. Due to its lowcost, it can be extensively distributed in wireless control and monitoring applications. Thanks
to its low-power consumption, it can use smaller batteries and still last for months or even
years. Mesh networking results a high reliability and greater range. It is cheaper and simpler
than other WPAN (wireless personal area network) like Bluetooth. Zigbee chips vendors
usually sell integrated radios and microcontrollers with between 60 KB and 256 KB flash
memory. The ZigBee Alliance is a group of companies working together to enable reliable,
cost-effective, low-power, wirelessly networked, monitoring and control products based on
an open global standard. Their goal is to provide the consumer with ultimate flexibility,
6
mobility, and ease of use by building wireless intelligence and capabilities into every day
devices. ZigBee technology will be embedded in a wide range of products and applications
for the needs of remote monitoring and control applications, including simplicity, reliability,
low-cost and low-power. With acceptance and implementation of ZigBee, interoperability
will be enabled in multi-purpose, self-organizing mesh networks.
Figure 2.1: Comparison of Existing Signals
Source:http://i.cmpnet.com/eetimes/news/07/02/DC1464_UTH_2_PG_38.jpg
As seen in Figure 2.1 (Comparison of Existing Signals), the Zigbee has a data rate of
100kilobytes per second and operates in 50 meters unlike in Bluetooth which operates at only
10 meters. Wi-fi also operates at 50 meters and has a data rate of 200megabits per second.
Wi-fi has very high data rate compared to Zigbee because it specializes in transferring large
sizes of data such as video and sounds. However, transferring large size requires larger power
to accommodate that high data rate.
7
Studies on ZigbeeWireless Sensor Networks
The Institute of Electrical and Electronics Engineers (IEEE) has a large collection of
studies. Researchers’ designs and projects are related to ZigBee wireless sensor network
technology. There are some studies that are important and somehow related to the design
prototype. These articles and studies are as follow:
IEEE members namely Wan-Ki, Chang-Sic, Han J. and Han I., (2007) implemented
ZigBee-based universal remote control for home appliances. Different consumer electronics
appliances are controlled and managed using remote control units based on Infrared (IR)
signal in home environments. Instead of IR technology, the group used ZigBee technology.
This study is intended for dynamic control scheme controlling and managing IR controllable
multiple legacy consumer electronics appliances based on ZigBee protocol or the
IEEE802.15. The design implementation is critical for clock synchronization as digital clocks
are included in consumer electronics and is widely used in home and workplaces. The paper
relates the controlling of the devices specifically digital clocks to be synchronized using
ZigBee. The design of the Synchronize Portable Scoreboard is similar to this because it has a
game clock which is similar to the remote controls for appliances. Game clock needs to be
stopped at some point in the game if there is a violation called by the referee and it has to be
resumed to continue the game. This mechanism is also related to the paper wherein the laptop
acts as a remote and the scoreboard is the appliances.
8
Applications of ZigBee
ZigBee commonly used as a remote control for equipment that require low level of
complexity such as home lighting systems, refrigerator and washing machines. The earlier
methods of remote control are the proprietary routing algorithms and Radio Frequency
technology (Zheng et al, 2006). Since the main objectives of this paper is to design a wireless
scoreboard Zigbee-controlled home appliances have similar application to the Portable
Synchronize Scoreboard. The laptop will control the scoreboard wirelessly by using the
installedGUI.
Humans are aware on how to fight chronic diseases such as cancer and heart attack.
Hospitals also consider the wireless technology as a tool in scanningpatients. Now most
hospitals use a fixed medical monitor to obtain the patient's physiological indicators, which
can take information by printer or LCD. Nurses constantly need to read important monitor
data in the ward and record it. In this method, some writing mistakes may be made and this
will limit the patient’s freedom of activity to some extent (Zhao et al., 2005).
Doctors,monitoring their patients’ condition, can only stay in his office then monitor the
patients via laptop or computer. They do not need to examine their patients. Wireless
technologies are used to rapidly exchange images, data, audio, and other information
between remote locations. These technologies are currently being applied to improve
healthcare around the world (A Framework for SIP-Based Wireless Medical Application,
2005; Jovanov, 2005; Cypher et al., 2006).
System designs for modern wireless sensor systems are based on low capability
microprocessors and limited range radios since such designs have small physical size and
limited energy budgets. But given the fact that these sensor nodes are based on low-cost
9
components, development supplies for wireless sensor network are somewhat expensive, just
like the sensor nodes. Instead of making the cost a few dollars less, these “low cost” systems
usually cost above a hundred dollars each. Such cost of the system is affected by the wide
variety of sensor nodes available and the limited market size for any one node. The said
concern prompted the researchers to develop this study which aims to develop a low-cost
prototyping platform that is based on existing open-source PCB designs and software
environments. This project used Arduino low-cost microprocessor platform, XBEE low-cost
Zigbee networking modules, and open-source TinyOS software system. (Bergmann et
al.,2010).
A study in Malaysia used Zigbee as a switch in electrical appliances. The purpose of
this project is to design an automation system that can be used to switch ON, OFF and know
the STATUS of the electrical appliances by using personal computer. This project focused on
developing an automation system with Zigbee wireless technology which is controlled by
programmable interface controller (PIC18F14K50). This overall project is divided into two
parts. The first part concerns the hardware development where all electronic components are
connected to a single board. Personal computer is the input component while fluorescent
lamp and fan are the output component which are controlled by controller circuit. Zigbee is a
new technology, which has at its centre the goal of eliminating wired connections between
home appliances and personal computer. Instead of connecting with wires, every appliance
has small transmitters or receivers (Kuppusamy, 2010).
10
Microcontroller
Microcontroller has an input device in order to get the input and an output device
such as LED or LCD display to exhibit the final process. It processes its input resulting to its
output depending on the design of the microcontroller. One example of the application of the
microcontroller is the television. It has a remote control as an Input device and the TV screen
as the output device. The signal that will be sent from the remote control is captured by the
microcontroller. Each button on the remote controller has a function. The microcontroller at
the receiving end, which is inside the television, controls the channel selection, the volume
and picture tube adjustments such as hue, brightness, contrast. In relation to the project
design proposal, the input data will pass by the Zigbee transmitter to its receiver and to the
microcontroller which also serve as a bridge to the scoreboard in transmitting data (Axelson,
1994).
Arduino is a popular open-source single-board microcontroller. This is designed to
make theprocess of using electronics in multidisciplinary projects more accessible. The
hardware consists of a simple open hardware design for the Arduino board with an Atmel
AVR processor and on-board input/output support. The software consists of a standard
programming language compiler and the boot loader that runs on the board (Shiffman, 2009).
Arduino can be used to develop interactive objects, taking inputs from a variety of
switches or sensors, and controlling a variety of lights, motors, and other physical outputs. In
addition, Arduino projects can be stand-alone and can communicate with software running
on a computer (e.g. Flash, Processing, Max MSP).
11
Graphical User Interface
A Graphical User Interface(GUI) component is a visual object with which the user
interacts via the mouse or the keyboard. An event-driven application can respond to or
handle events the GUI elements generate from an action of the user over them (Robles,
2007). The GUI is used to simplify the commands in a way that can be understood by
common people. The prototype is controlled by pressing the button which corresponds to a
command.
Most software systems today provide a GUI as the main interface to deliver
functionality for the customer. While many developers consider the GUI to be a less critical
part of the system, it is essential to customers, who must use it whenever they need to interact
with the system. In relation to the design proposal, the GUI will serve as the main control of
the scoreboard, the command software of GUI will serve as an input to be transmitted to the
hardware.
The GUI created by the group is the main program that will enable the user to upload
the scores in the scoreboard, to pause and resume the game clock, and to reset the shot clock
if needed. Furthermore, the GUI is very easy to use for the user to upload the data accurately
and correctly.
12
Chapter 3
PORTABLE SYNCHRONIZED BASKETBALL SCOREBOARD USING ZIGBEE
Abstract
The scoreboard of any sport shows the status of the game by displaying the
significant data like time and the team scores. Players and viewers rely on the numerical
figures that are shown on the scoreboard especially the scores of each team and the game
clock to determine which team is winning. Since the technologies nowadays are accelerating
very fast, the present scoreboard can be improved by reducing its size and making it wireless.
Existing scoreboard is permanently placed at a higher location where viewers can see it.
However, it usually takes time for people to set it up and when it encounters trouble, they
will have difficulty repairing the system. The scoreboard designed in this study is portable
because it can be easily assembled and repaired. It is also wireless. These features are in
keeping with current trends in every new gadget nowadays. The design also synchronizes the
scoreboard to a laptop through a Zigbee signal.
Keywords: Scoreboard, Portability, Zigbee, Synchronize
Introduction
Basketball is a team sport in which two teams of five players try to score points by
throwing or "shooting" a ball through the top of a basketball hoop while following a set
of rules. Basketball is one of the world's most popular and widely viewed sports (Borger,
2008). Looking at Figure 1.1 (Scoring Diagram), one point can be earned when the ball is
thrown by a free throw while two points inside the arc and three points beyond. At the end of
the game, the team with higher earned points will be declared winner. Basketball scoreboard
is very essential to people who understand the game. Commonly the scoreboard is located
near the committee to be able to update the scores via a computer connected to the gadget. In
this manner, the scores are updated using a program that sends the input from the laptop to
the scoreboard. Digital scoreboard applies technology to the scoreboard because in the old
13
times, the scores are written on board which can be erased or even edited that may result to
cheating.
Figure 1.1 Scoring Diagram
Source: http://www.coaching-basketball-for-beginners.com/half-court-basketball
http://www.coaching
basketball-diagram.html
Traditional scoreboard uses a board with the team name pplaced
laced at the top and the
corresponding score below its name. The game time is only declared verbally by the
announcer same with the shot clock. As time evolves, the scoreboard has been innovated and
it became technical by using a seven segment display as illustrated
illustrated in Figure 1.2 (Typical
Scoreboard). The proposed new design in scoreboard is that it will be wireless and portable
through the use of ZigBee. The idea of the project came from the Synchronized Wireless
Clock wherein the clock is displaying the ttime
ime of the computer. Since the clock is operating
wirelessly, the researchers came up with an idea that the concept can be applied in the
Basketball Scoreboard making the old design wireless and portable. So it is poised to become
a very significant enabling
ng technology in many fields, as it is widely used in military
security, environment monitoring, and home automation (Cao et al, 2008). ZigBee is also
considered as a new standard intended for low cost devices in automation, home controls and
14
computer peripherals. It enables the broad-based deployment of wireless networks with low
cost, and low power solutions (Ondrei et al, 2006, Heile, 2004).
Figure 1.2 Typical Scoreboard
Source:http://antipolocity.olx.com.ph/tronix-electronic-basketball-scoreboard-iid-181750357
In any ball game, the use of scoreboard is very important because it is where the
players and audience are informed of the game status such as time elapsed or time left, the
team scores, and other information that the general audience should know. If scoreboards are
available in a game venue, they are normally permanently attached and cannot be moved
from one venue to another. If a venue has no scoreboard available, there are several things
can unwontedly happen and one of there is cheating. If a portable scoreboard is available, the
game can run smoothly. This paper will attempt to solve the aforementioned conditions by
creating a wireless portable scoreboard that can be used in basketball games.
The objectives of the study are the following:
1. to design a wireless and portable basketball scoreboard
2. to synchronize the laptop and scoreboard using Zigbee
15
The significance of the study is for the researchers to have a wider knowledge in
microcontrollers and other peripherals which are included in making the prototype. Data
transmission is also studied since it is wireless. It will be easy to operate and troubleshoot
unlike the existing ones which have wires.
The scoreboard that will be designed has the ability to display the remaining time,
team points, team foul and shot clock as illustrated in Figure 1.2. The system is limited in
using ZigBee as the medium for transferring the data from the laptop to the scoreboard. The
Graphical User Interface is also provided as the software to input the data to be displayed in
the scoreboard. However, like any wireless operating gadget, the expected performance of
the scoreboard is only found satisfactory within a maximum radius of 200 feet from the base
station which is the Zigbee transmitter. The study does not cover how to increase the
maximum allowable distance between the Zigbee transmitter and its receiver. Furthermore, it
does not include troubleshooting the prototype and repairing. The study also follows the old
rule of playing basketball wherein there is no 14 reset shot clock.
16
Previous Study of Wireless Scoreboard
The main study of this wireless scoreboard display system is the use of the radio
transmitter and receiver and a remote controller. The similarity between the radio
transmitter/receiver and ZigBee wireless device is that both have 2.4 GHz transmission
bandwidth, while the difference is the limitation of the displacement and speed that a radio
transmitter can compare to the ZigBee.
In a study(author,year), the designed scoreboard consists of a wireless scoreboard
display system with at least two scoreboard displays, two controllers, a radio transmitter in
each controller, and a radio receiver in each scoreboard display either together or separately
from one or both controllers. This design is quite complicated because it is difficult to control
two scoreboard displays from one controller or two controllers, and it is always necessary to
rewire the controllers. This is especially the case in indoor basketball games where
scoreboard displays are operated for the entire court using one controller or for split courts
using two controllers.
Radio transmitters 16 and 18 and radio receivers 24 and 26 are 2.4 GHZ spread
spectrum radio devices. The radio devices eliminate interference by the use of frequency
hopping from outside sources including cordless phones and other RF devices on the same
frequency (Uehran, 2005).The proponents will use wireless sensor signal which is actually
the ZigBee rather than radio frequency.
The radio receivers 24 and 26 are housed in ABS plastic enclosures, which are easily
mounted inside the scoreboard displays 20 and 22 with a small dipole antenna mounted to the
face of or adjacent to the scoreboard displays 20 and 22. Outdoor scoreboard displays 20 and
17
22 can include rubber gaskets to keep moisture out of the enclosures. The radio receivers 24
and 26 can include a rotary switch or other selection device allowing the user to select
different operating channels, normally set once during installation. The instant invention can
be used in multi-field complexes, such as in baseball, enabling each system to operate
independently without interfering with one another. Currently, there are 16 channels
available to select from with the ability to expand to 77 non-interfering channels (Uehran,
2005).
The prototype design is an improvement of existing design because it uses a wireless
scoreboard with the aide of ZigBee, microcontrollers, and a laptop or personal computer.
Introduction to Zigbee
ZigBee is a low-cost, low-power, wireless mesh network standard. Due to its lowcost, it can be extensively distributed in wireless control and monitoring applications. Thanks
to its low-power consumption, it can use smaller batteries and still last for months or even
years. Mesh networking results a high reliability and greater range. It is cheaper and simpler
than other WPAN (wireless personal area network) like Bluetooth. Zigbee chips vendors
usually sell integrated radios and microcontrollers with between 60 KB and 256 KB flash
memory. The ZigBee Alliance is a group of companies working together to enable reliable,
cost-effective, low-power, wirelessly networked, monitoring and control products based on
an open global standard. Their goal is to provide the consumer with ultimate flexibility,
mobility, and ease of use by building wireless intelligence and capabilities into every day
devices. ZigBee technology will be embedded in a wide range of products and applications
for the needs of remote monitoring and control applications, including simplicity, reliability,
18
low-cost and low-power. With acceptance and implementation of ZigBee, interoperability
will be enabled in multi-purpose, self-organizing mesh networks.
Figure 2.1: Comparison of Existing Signals
Source:http://i.cmpnet.com/eetimes/news/07/02/DC1464_UTH_2_PG_38.jpg
As seen in Figure 2.1 (Comparison of Existing Signals), the Zigbee has a data rate of
100kilobytes per second and operates in 50 meters unlike in Bluetooth which operates at only
10 meters. Wi-fi also operates at 50 meters and has a data rate of 200megabits per second.
Wi-fi has very high data rate compared to Zigbee because it specializes in transferring large
sizes of data such as video and sounds. However, transferring large size requires larger power
to accommodate that high data rate.
19
Studies on ZigbeeWireless Sensor Networks
The Institute of Electrical and Electronics Engineers (IEEE) has a large collection of
studies. Researchers’ designs and projects are related to ZigBee wireless sensor network
technology. There are some studies that are important and somehow related to the design
prototype. These articles and studies are as follow:
IEEE members namely Wan-Ki, Chang-Sic, Han J. and Han I., (2007) implemented
ZigBee-based universal remote control for home appliances. Different consumer electronics
appliances are controlled and managed using remote control units based on Infrared (IR)
signal in home environments. Instead of IR technology, the group used ZigBee technology.
This study is intended for dynamic control scheme controlling and managing IR controllable
multiple legacy consumer electronics appliances based on ZigBee protocol or the
IEEE802.15. The design implementation is critical for clock synchronization as digital clocks
are included in consumer electronics and is widely used in home and workplaces. The paper
relates the controlling of the devices specifically digital clocks to be synchronized using
ZigBee. The design of the Synchronize Portable Scoreboard is similar to this because it has a
game clock which is similar to the remote controls for appliances. Game clock needs to be
stopped at some point in the game if there is a violation called by the referee and it has to be
resumed to continue the game. This mechanism is also related to the paper wherein the laptop
acts as a remote and the scoreboard is the appliances.
20
Applications of ZigBee
ZigBee commonly used as a remote control for equipment that require low level of
complexity such as home lighting systems, refrigerator and washing machines. The earlier
methods of remote control are the proprietary routing algorithms and Radio Frequency
technology (Zheng et al, 2006). Since the main objectives of this paper is to design a wireless
scoreboard Zigbee-controlled home appliances have similar application to the Portable
Synchronize Scoreboard. The laptop will control the scoreboard wirelessly by using the
installed GUI.
Humans are aware on how to fight chronic diseases such as cancer and heart attack.
Hospitals also consider the wireless technology as a tool in scanning patients. Now most
hospitals use a fixed medical monitor to obtain the patient's physiological indicators, which
can take information by printer or LCD. Nurses constantly need to read important monitor
data in the ward and record it. In this method, some writing mistakes may be made and this
will limit the patient’s freedom of activity to some extent (Zhao et al., 2005). Doctors,
monitoring their patients’ condition, can only stay in his office then monitor the patients via
laptop or computer. They do not need to examine their patients. Wireless technologies are
used to rapidly exchange images, data, audio, and other information between remote
locations. These technologies are currently being applied to improve healthcare around the
world (A Framework for SIP-Based Wireless Medical Application, 2005; Jovanov, 2005;
Cypher et al., 2006).
System designs for modern wireless sensor systems are based on low capability
microprocessors and limited range radios since such designs have small physical size and
limited energy budgets. But given the fact that these sensor nodes are based on low-cost
21
components, development supplies for wireless sensor network are somewhat expensive, just
like the sensor nodes. Instead of making the cost a few dollars less, these “low cost” systems
usually cost above a hundred dollars each. Such cost of the system is affected by the wide
variety of sensor nodes available and the limited market size for any one node. The said
concern prompted the researchers to develop this study which aims to develop a low-cost
prototyping platform that is based on existing open-source PCB designs and software
environments. This project used Arduino low-cost microprocessor platform, XBEE low-cost
Zigbee networking modules, and open-source TinyOS software system. (Bergmann et
al.,2010).
A study in Malaysia used Zigbee as a switch in electrical appliances. The purpose of
this project is to design an automation system that can be used to switch ON, OFF and know
the STATUS of the electrical appliances by using personal computer. This project focused on
developing an automation system with Zigbee wireless technology which is controlled by
programmable interface controller (PIC18F14K50). This overall project is divided into two
parts. The first part concerns the hardware development where all electronic components are
connected to a single board. Personal computer is the input component while fluorescent
lamp and fan are the output component which are controlled by controller circuit. Zigbee is a
new technology, which has at its centre the goal of eliminating wired connections between
home appliances and personal computer. Instead of connecting with wires, every appliance
has small transmitters or receivers (Kuppusamy, 2010).
22
Microcontroller
Microcontroller has an input device in order to get the input and an output device
such as LED or LCD display to exhibit the final process. It processes its input resulting to its
output depending on the design of the microcontroller. One example of the application of the
microcontroller is the television. It has a remote control as an Input device and the TV screen
as the output device. The signal that will be sent from the remote control is captured by the
microcontroller. Each button on the remote controller has a function. The microcontroller at
the receiving end, which is inside the television, controls the channel selection, the volume
and picture tube adjustments such as hue, brightness, contrast. In relation to the project
design proposal, the input data will pass by the Zigbee transmitter to its receiver and to the
microcontroller which also serve as a bridge to the scoreboard in transmitting data (Axelson,
1994).
Arduino is a popular open-source single-board microcontroller. This is designed to
make the process of using electronics in multidisciplinary projects more accessible. The
hardware consists of a simple open hardware design for the Arduino board with an Atmel
AVR processor and on-board input/output support. The software consists of a standard
programming language compiler and the boot loader that runs on the board (Shiffman, 2009).
Arduino can be used to develop interactive objects, taking inputs from a variety of
switches or sensors, and controlling a variety of lights, motors, and other physical outputs. In
addition, Arduino projects can be stand-alone and can communicate with software running
on a computer (e.g. Flash, Processing, Max MSP).
23
Graphical User Interface
A Graphical User Interface (GUI) component is a visual object with which the user
interacts via the mouse or the keyboard. An event-driven application can respond to or
handle events the GUI elements generate from an action of the user over them (Robles,
2007). The GUI is used to simplify the commands in a way that can be understood by
common people. The prototype is controlled by pressing the button which corresponds to a
command.
Most software systems today provide a GUI as the main interface to deliver
functionality for the customer. While many developers consider the GUI to be a less critical
part of the system, it is essential to customers, who must use it whenever they need to interact
with the system. In relation to the design proposal, the GUI will serve as the main control of
the scoreboard, the command software of GUI will serve as an input to be transmitted to the
hardware.
The GUI created by the group is the main program that will enable the user to upload
the scores in the scoreboard, to pause and resume the game clock, and to reset the shot clock
if needed. Furthermore, the GUI is very easy to use for the user to upload the data accurately
and correctly.
24
Design Outline
The following is the design outline of the prototype: 1) decide what are the data to be
displayed in the scoreboard; 2) gather existing schematic diagrams of existing electronic
scoreboard; 3) purchase the items to be used in building the project; 4) test the 7segment
led’s to be used; 5) design a GUI for data input; 6) synchronize the Zigbee to the laptop; 7)
test the project; 8) design the enclosure of the scoreboard.
Initial Planning
Before starting to work on the actual prototype, the circuits needed to buildthe
prototype must be decided. A microcontroller is neededto process the output from Zigbee and
for processing the output which will be the source input of the LED as a signal. Arduino
microcontroller which has an output of 64 bits is used. Since the scoreboard uses largeseven
segment display which is rated at 12 volts and a microcontroller that has an output of five
volts, there is a need to increase the voltage rating of the LED. To make this possible, a
Darlington Pair integrated circuit is used to amplify the voltage rating of the LED.
25
Conceptual Diagram
Zigbee Transmitter
User
Laptop
Scoreboard
Zigbee Receiver
Microcontroller
Figure 3.1 Conceptual Diagram
26
Conceptual Framework
The design conceptual diagram, as illustrated in Figure 3.1(Conceptual Diagram)
shows the overall concept and flow of the prototype design. Through the use of laptop, the
user can synchronize the data such as the updating the score and stop or run the game clock
and shot clock using the graphical user interface installed in the computer. The application
software will serve as the interface between the computer and the scoreboard. After receiving
information from the user, the laptop will transmit this information to the wireless
communication devices, which is the ZigBee module. The ZigBee module’s sole function is
the synchronization of the scoreboard..
The design of the portable scoreboard is 750mm X 500mm. Its weight can reach
approximately 1.5kg because the enclosure will contributes more than half of the main
peripherals. The main feature of the scoreboard is its capability to interact with the laptop
wirelessly. It displays shot clock, team scores and game time. The researchers only chose
those to minimize the dimension of the scoreboard and to enhance its portability.
27
Design Procedures
The actual design of the scoreboard is based on the scoreboard as shown in
Figure 1.2(Typical Scoreboard). To have a portable scoreboard, there is a need to reduce the
size of the new design scoreboard. To make this possible, only the necessary data needed in a
scoreboard was retained. The prototype included team scores, game and shot clock, team
fouls, period and time outs. The sizes of the LED display of the scoreboard were minimized.
Since the most important display are team scores and game clock, five inches LED display
was used to show this data while the remaining data used 3.5 inches of LEDs.
Building the Portable Synchronized Basketball Scoreboard Using Zigbee
A flowchart which served as a guide in building the prototypeis illustrated in Figure
3.2(Design Procedure Flow Chart).
The Design Flow Chart seen in Figure 3.2 (Design Flow Chart) is the guide to build
the prototype. First step is to find data sheets and schematic diagrams of the LEDs and
Integrated Circuit (IC) that will be used upon building the prototype. Then the usefulness of
the data gathered was assessed.Then the needed materials for the prototype were
prepared.Materials purchased were resistors, LEDs, ICs, breadboards and Printed Circuit
Board (PCB). These were tested before assembly in breadboard according to the schematic
diagram. The designed prototype underwent a series of testing.When everything was found in
order, the PCBs were prepared. The connections of PCB and breadboard are the same.
Hence, the schematic diagram would be translated in PCB. After which, the components
were assembled using the working components to the PCB and tested to check if the
prototype was working properly. If not, troubleshooting would be done in PCB.The
components were then placed in an enclosure. Then the components were subjected to final
28
testing to assess if the prototype was ready. Problems encountered during the final testing
would lead to troubleshooting on the prototype to measure data. The data to be gathered are
Signal Strength in varying distance and Time Delay in varying distance. After which, the
measured data were analyzed and through this, the conclusions were made.
A
START
TESTING
SEARCH DATASHEETS
AND SHEMATIC
DIAGRAMS
IS THE DATA
USEFUL?
TROUBLESHOOT
IS THE
PROTOTYPE
WORKING?
NO
NO
YES
TRANSLATE THE
SHCEMATIC DIAGRAM IN
PCB
YES
CANVASS/PURCHASE
MATERIALS FOR
PROTOTYPE
ASSEMBLE THE
PROTOTYPE USING THE
SCHEMATIC CIRCUIT IN
PCB
TESTING OF THE
MATERIALS
USE OTHER
MATERIALS
IS THE
MATERIALS
WORKING?
YES
ASSEMBLE THE
PROTOTYPE USING THE
SCHEMATIC CIRCUIT IN
BREADBOARD
A
TESTING
TROUBLESHOOT
NO
IS THE
PROTOTYPE
WORKING?
NO
YES
ASSEMBLE THE
PROTOTYPE IN THE
ENCLOSURE
B
29
B
PROTOTYPE FOR FINAL
TESTING
TROUBLESHOOT
IS THE
PROTOTYPE
READY?
DATA GATHERING
INTERPRETATION AND
ANALYSIS OF DATA
DRAWING OF CONCLUSION
END
Figure 3.2: Design Flow Chart
30
1. Scoreboard Display
Figure 3.3: Scoreboard Display
A Figure 3.3 (Scoreboard Display) shows the necessary data to be displayed
by the scoreboard like game clock, shot clock, team fouls, period or quarter and time
outs as arranged in the said figure. The topmost display is the game clock which
shows the remaining time per quarter. The maximum time of the game clock displays
is 10:00. Team scores are displayed under Home and Visitor. A team’s score can be
displayed in Home or in Visitor depending on the user. Home’s score is displayed in
the left portion of the scoreboard while the Visitor’s score is displayed in the right.
The Period shows the present quarter of the game. In every change in ball possession
the shot clock changes from 24 seconds. Upon this duration the team who has the
possession of the ball has to make a shot within this time. Therefore, the Shot clock
displays the remaining time that a team who has the ball has to make a shot. Both
teams have a Foul and Timeout. Team Foul displays how many foul a team has made.
31
It is important to count this because when a team has incurred five fouls in a quarter,
this team will be penalizedby awarding two free throws to the other team. The
Timeouts displays the remaining timeouts of each team. Five inches of LEDs was
used in displaying team scores and game clock and the remaining displays used 3.5
inches.
2. Inventory and Canvassing
The materials needed for the prototype were purchased after careful inventory
and canvassing from several electronic shops were made. The materials purchased
were seven segment LEDs, resistors, breadboards and wire and other components.
The power supply, shown in the Figure 3.4 (Power Supply), has output voltage of 5
volts and 12 volts. Since LEDs have different pin assignments depending on the
manufacturer, the seven segment LED display was chosen for uniformity.
Figure 3.4: Power Supply
32
3. Testing of 7 Segment LEDs
The LEDs was tested by tracing
tracing the pin assignments using breadboard
breadboard.
Figure 3.5: Testing of LEDs
As seen in Figure 3.5 (Testing of LEDs), both
oth LEDs have different pin
assignment but they are both found to be operating in common voltage at 12V supply.
There is a problem in the microcontroller side because its output is only 5V. There is
a IC found to step up the voltage to 12V which is the Darlington pair or
UNL2003A.The
.The microcontroller has 64 bits output and must be decoded by a 74LS48
which is a BCD to 7 Segment Decoder for the LEDs. The Figure 3.5 (Testing of
LEDs) shows the successful testing of LEDs.
33
4. Translating of Schematic Diagram in PCB
The schematic diagram was generated in the testing of LEDs using
breadboard. Through the schematic diagram shown in Figure 3.6 (Schematic Diagram
of Each LED), the connections can now be translated to a Printed Circuit Board
shown in Figure 3.7(Translating the Schematic Diagram to PCB)and it is also
subjected to testing. The schematic diagram can be translated using PCB software to
be printed and photo in blank Printed Circuit Board and etched. The PCB is also
checked if there are shorted connections. The group also used IC holders for the
Darlington Pair and decoder. After completing a sample circuit, it was also subjected
to a testing by a counter circuit to verify if the LED will have the expected output. If
the sample is verified, then, all LEDs will be translated to PCB and checked.
Figure 3.6: Schematic Diagram of Each LED
In Figure 3.6(Schematic Diagram of Each LED), is another representation of
each LED connected in series with the 100Ω resistor while that resistor is connected
in IC UNL2003A which is a Darlington Pair circuit. The Arduino is the
microcontroller thatprocess the signal received by the Zigbee Receiver. Since the
34
Arduino has an output of binary signal that needs to be decoded by a BCD. 74LS248
is the BCD decoder which decodes the signal coming from the Arduino. That signal
must be decoded because the LEDs uses decimal signal as its input. 74LS48 is
connected to a Darlington Pair IC to regulate the voltage that will be used by the
LEDs. Also, it is typical to connect the pins of each LED to a resistor to lessen the
current in the circuit. The group decides to use a 100Ω resistor. The LEDs used in the
prototype has a input of 12V while the ICs and the microcontroller has a supply of
5V.
Figure 3.7: Translating the Schematic Diagram to PCB
The Figure 3.7 (Translating the Schematic Diagram to PCB)is the PCB used
in LEDs. The PCB in 2.3 inches and 5 inches are similar.
35
5. Creating Graphical User Interface
The Graphical User Interface as shown Figure 3.8 (Graphical User
Interface)will serve as the controlling software for the scoreboard. Microsoft Visual
Studio which be used for the program of the Arduino AT MEGA 2560 while the
language used in program is C#.
Figure 3.8: Graphical User Interface
As seen in Figure 3.8 (Graphical User Interface), the scoreboard and the GUI
have similar arrangement. The buttons are arranged in the upper portion of the GUI.
Each button corresponds to a command that will change the display of the GUI and in
the scoreboard. The detailed command is presented in Table 3.1 (GUI Command
Details).
36
6. Pin Configuration of Arduino
The signal received from the laptop was processed by the Arduino circuit. The
Arduino provides a binary signal and translates to decimal to be used by the LEDs.
The pin configuration is shown in Figure 3.9 (Pin Configuration of Arduino)
Figure 3.9: Pin Configuration of Arduino
Figure 3.9(Pin Configuration of Arduino) is the pin assignment of each LED for
each display. Each LED has four wires, labeled as A, B, C, D as an input to the BCD
IC which is to be connected in microcontroller which is the Arduino. Each wire
corresponds to the connection in microcontroller. For example in Period LED; A is
connected in pin #4, B is connected in pin#3, C is connected in pin#2 and lastly the D
37
is connected in common ground. There is a “pinA#” where “A” is the analog section
found in the Arduino microcontroller. For example in the ones value of the time
which is the right most part where it’s A is connected in pin#A11, B is connected in
pin#A10, C is connected in pin#A9 and D is connected in pin#A8. Each LED’s has
corresponding connection to the Arduino illustrated in the said figure. If there is error
in connecting these wires, there will be error in the display in the scoreboard but the
error will not appear in the GUI.
7. Initial Testing of the Prototype
The testing was done by simply testing the initial condition of the scoreboard.
As long as the scoreboard displays the same data both in the laptop and in the
scoreboard, this test will be accepted. The objective of this test is to determine if there
is a pin shorted to another pin or to the ground. Troubleshooting is done until the
scoreboard is operating at expected condition.
8. Prototype Enclosure
Figure 3.10: Prototype Enclosure
After the scoreboard has been tested, the last procedure is designing its
enclosure. The glass shown in Figure 3.10 (Prototype Enclosure) is used at the front
38
and back portion of the scoreboard while aluminum is used in its corners. This glass
is acrylic in color red that enhances the red light emitted by the each LED. This
enclosure also acts as a protection for the inner components of the scoreboard.
Aluminum is used in corners because aluminum absorbs the heat produced by the
power supply, LEDs and other components of the scoreboard.
Testing of the Prototype
Several testing was done to examine the behavior of the prototype. This includes the
following:
1. Data Precision Test
This test is to determine if the GUI is sending accurately the right command that
corresponds to each button shown. Pressing each button, should lead to acorresponding
changein the display of the GUI and this change must be also reflected in the scoreboard.
Procedure:
1. Connect the Zigbee receiver and transceiver to the scoreboard and to the
computer respectively.
2. Open the Scoreboard application software.
3. Choose the COM setting of the Zigbee for the computer.
4. Click one button for trial testing.
5. Record the result.
6. Repeat procedure 5 and 6 for another button.
7. Repeat procedure 5 to 7 for another trial.
39
Button Name
Command Details
HomeScorePlus1_btn
HomeScorePlus2_btn
HomeScorePlus3_btn
HomeScoreMinus1_btn
HomeFoulsPlus1_btn
HomeFoulsMinus1_btn
HomeTimeoutPlus1_btn
HomeTimeoutMinus1_btn
AwayScorePlus1_btn
AwayScorePlus2_btn
AwayScorePlus3_btn
AwayScoreMinus1_btn
AwayFoulsPlus1_btn
AwayFoulsMinus1_btn
AwayTimeoutPlus1_btn
AwayTimeoutMinus1_btn
Play_btn
Stop_btn
ResetClock_btn
Increases Home Score by 1 point
Increases to Home Score by 2 points
Increases to Home Score by 3 points
Decreases to Home Score by 1 point
Increases the Home Team Foul by 1
Decreases the Home Team Foul by 1
Increases the Home Timeout by 1
Deceases the Home Timeout by 1
Increases Away Score by 1 point
Increases to Away Score by 2 points
Increases to Away Score by 3 points
Decreases to Away Score by 1 point
Increases the Away Team Foul by 1
Decreases the Away Team Foul by 1
Increases the Away Timeout by 1
Deceases the Away Timeout by 1
Run the Game Clock
Stops the Game Clock
Resets the Shot Clock to 24
Table 3.1: GUI Command Details
Table 3.1: (GUI Command Details) is the list functions of each button
seen in the GUI. As results, all of the buttons in the GUI results to correspond in their
certain commands. The HomeScorePlus1_btn adds 1 point to Home’s score,
HomeScorePlus2_btn adds 2 points and HomeScorePlus3_btn adds 3 points while
HomeScoreMinus1_btn deducts 1 point to Home’s score. The AwayScorePlus1_btn
adds 1 point to Away’s score, AwayScorePlus2_btn adds 2 points and
AwayScorePlus3_btn adds 3 points while AwayScoreMinus1_btn deducts 1 point to
Away’s score. HomeFoulsPlus1_btn adds 1 value in Home’s team foul while the
AwayFoulsPlus1_btn adds 1 value in Away’s team foul. HomeTimeoutPlus1_btn
adds 1 value in Home’s Timeout while HomeTimeoutMinus1_btn deducts value by 1.
AwayTimeoutPlus1_btn
adds
1
value
in
Away’s
Timeout
while
40
AwayTimeoutMinus1_btn deducts value by 1. Play_btn lets the time runs awhile the
Stop_btn freezes the time. The ResetClock_btn resets the shot clock to 24 seconds.
Through this test, all buttons correspond to their command in the GUI and the
Scoreboard. Therefore, the GUI and the Scoreboard are synchronized. These details
must be reflected in GUI and in the scoreboard.
Button Name
HomeScorePlus1_btn
HomeScorePlus2_btn
HomeScorePlus3_btn
HomeScoreMinus1_btn
HomeFoulsPlus1_btn
HomeFoulsMinus1_btn
HomeTimeoutPlus1_btn
HomeTimeoutMinus1_btn
AwayScorePlus1_btn
AwayScorePlus2_btn
AwayScorePlus3_btn
AwayScoreMinus1_btn
AwayFoulsPlus1_btn
AwayFoulsMinus1_btn
AwayTimeoutPlus1_btn
AwayTimeoutMinus1_btn
Play_btn
Stop_btn
ResetClock_btn
Initial State
0
0
0
2
0
2
0
2
0
0
0
2
0
2
0
2
10:00
--
0
Final State
GUI
Scoreboard
1
1
2
2
3
3
1
1
1
1
1
1
1
1
1
1
1
1
2
2
3
3
1
1
1
1
1
1
1
1
1
1
09:59…
09:59…
--24
24
Table 3.2: Data Precision Testing
By pressing each button,one sees a change in the scoreboard and in the GUI.
Therefore, the display in the GUI and in the scoreboard must be the same. Otherwise,
troubleshooting must be done. When a button is pressed, it mustcorrespond to the
command details as seen Table 3.1 (GUI Command Details). For further examination
of each of the buttons seen in Table 3.2 (Data Precision Testing), the group created a
41
data wherein there is initial state and final state of the display of the scoreboard and
the GUI. Initial state is the display of the scoreboard and GUI when the button is not
pressed and the final state is the display of the scoreboard and GUI when the button is
pressed.
Assuming the initial state of Home’s score is 0, when HomeScorePlus1_btn is
pressed, the score will be 1, if HomeScorePlus2_btn is pressed, the score will be 2
and if HomeScorePlus3_btn is pressed, the score will be 3. This also corresponds to
Away’s score. Assuming the initial state of the Away’s score is 0, when
AwayScorePlus1_btn is pressed, the score will be 1, if AwayScorePlus2_btn is
pressed, the score will be 2 and if AwayScorePlus3_btn is pressed, the score will be
3. However, when the user needs to deducts a point to a certain team, he must press
HomeScoreMinus1_btn or AwayScoreMinus1_btn. Assuming the initial state of both
team scores is 2 and HomeScoreMinus1_btn is pressed, Home’s score will result to 1.
Also, if AwayScoreMinus1_btn is pressed, Away’s score will result also to 1. When
team fouls are to be increased, HomeFoulsPlus1_btn or AwayFoulsPlus1_btn must be
pressed. Assuming both team fouls is 0, when HomeFoulsPlus1_btn is pressed, it will
result to 1. Also, when AwayFoulsPlus1_btn is pressed, it will also result to 1. When
a team take a timeout, that team’s timeout should be deducted by 1. Assuming both
team timeouts is 2, when HomeTimeoutMinus1_btn is pressed, it will result to 1.
Also, when AwayTimeoutMinus1_btn is pressed, it will also result to 1. When the
user pressed the wrong button like the Away’s timeout instead of Home’s timeout, he
must press AwayTimeoutPlus1_btn to retain the value of the Away’s timeout or vice
versa. Assuming both team timeouts is 0, when HomeTimeoutPlus1_btn it will result
42
to 1. Also if the AwayTimeoutPlus1_btn is pressed, it will result to 1. Assuming the
game clock has initially displayed of 10:00, when Play_btn is pressed the game clock
begins to decrease per second. To reset the shot clock, the ResetClock_btn must be
pressed. Assuming the shot clock is 0, when the ResetClock_btn is pressed, it will
return to 24. To stop the game clock and shot clock, Stop_btn must be pressed.
2. Range Test
The objective of this testing is to determine the maximum distance that the Zigbees
can communicate with each other. The test is done by letting the time run and the
transmitter connected to the laptop is varied.
Procedure:
1. Connect the Zigbee receiver and transceiver to the scoreboard and to the
computer respectively;
2. Open the Scoreboard application software;
3. Choose the COM setting of the Zigbee for the computer;
4. Click one button for trial testing;
5. Let the game clock run and let the laptop and the scoreboard vary their
distance.
6. If the clock is running, create more distance from the laptop to the scoreboard.
7. Repeat the number 6 until the game clock in the scoreboard is not running.
8. Measure the maximum distance.
43
Figure 3.11 Range Testing
Figure 3.11 (Range Testing) shows maximum distance that the scoreboard and
the laptop communicate with each other. The scoreboard and laptop are found to have
communication when the game clock is running. Otherwise, there will be an error in
their communication and the game clock in the scoreboard will stop while the
laptop’s game clock runs. The maximum distance measured between the laptop and
the scoreboard is found to be 60 meters. Beyond this value, there will be an error.
44
Measuring Signal Strength
Circuit A, seen Figure 3.12 (Circuit A), is connectedto the laptop and it sends data to
Circuit B, as shown in Figure 3.13 (Circuit B), then from Circuit B, it loops back to circuit A
checking if the data sent by Circuit A will be sent back by Circuit B. By the use of the
program X-CTU seen in Figure 3.14 (X-CTU Program), the Signal Strength can be
measured. In every trial there is a five-meter difference and this test is composed of 12 trials
in total of 60 meters.
Figure3.12: Circuit A
Figure3.13: Circuit B
Figure 3.14: X-CTU Program
45
Distance
(m)
5
10
15
20
25
30
35
40
45
50
55
60
Signal Strength
Signal Strength Signal Strength
Without
With
Obstruction
Obstruction
(dB)
(dB)
-49
-54
-46
-58
-55
-67
-64
-60
-56
-57
-68
-69
-56
-60
-63
-65
-62
-76
-65
-67
-76
-76
-75
-81
Table 3.3:Signal Strength Test Results
The data shows that the signal is better when the system is operating at closer
distance. Signal strength of a Zigbee is measured in decibels (dB). The Signal
Strength of the Zigbee is better at the value closer to 0. However, the more negative
of the value means that the Signal Strength is weak. Zigbee was testedwith and
without obstruction. The condition “without obstruction” means that the transmitter is
literally in the line of sight of the scoreboard without blockage. While in the other
condition which is “with obstruction”, the transmitter is blocked from seeing the
scoreboard.
Table 3.3 (Signal Strength Test Results) presents the behavior of the signal
strength of the Zigbee with or without obstruction. With the signal strength without
obstruction at the distance 5 meters to 20 meters, the signal strength is seen to weaken
46
from -49 dB to -64dB and improves at 25 meters with -56dB but decreases to -68dB
at 30 meter distance. The signal strength gets better at 35 meter distance then it
decreases slowly until it reaches the 60 meter distance with -75dB.
The signal strength with obstruction starts with -54dB at 5 meters until
decreases to -67dB at 15 meters. After which, the signal improves at -60dB with 20
meter distance and gets better at 25 meters with a signal strength of -57dB. At 30
meters, the measured signal strength is -69dB and improves to -60dB at 35 meters.
The signal strength was -65dB at 40 meter distance and weakens to -76dB at 45
meters. After which, the signal improves at 50 meters with a measurement of -67dB.
At a distance of 55 meters, the signal strength is -76dB and weakens to -81dB at 60
meters.
As the distance increases, the signal strength weakens because it approaches
farther from 0. But when the system operates at closer distance, the resulting signal
strength is better. As seen in the Table 3.3 (Signal Strength Test Results), without
obstruction has better results compared to the other because in wireless technology,
without obstruction has a good signal reception because there is no interfering with
the path of the signal. Therefore, the signal can travel faster at open space. The results
show that most of the data at without obstruction has better signal strength. Therefore,
to have good signal strength, the system is advised to operate with minimum
obstruction. The best signal that the group measured was -49dB.
47
Signal Strength
-40
-45
Distance(m)
5 15 25 35 45 55
-50
-55
Signal
Strenth -60
(dB)
-65
Without
Obstruction
With Obstruction
-70
-75
-80
Graph 3.1: Distance VS Signal Strength
As seen in the Graph 3.1 (Distance VS Signal Strength), the data gathered
shows that if the distance is changed, it will mean a change in signal strength. The
larger the distance, it will produce a lower signal strength. Moreover, the graph also
shows that the prototype has a better Signal Strength at without obstruction. Looking
at the graph, the best signal strength is achieved at 10 meters when there is no
obstruction while the best signal strength with obstruction is experienced at 5 meters.
As expected, the lowest signal strength of the prototype is experienced at the farthest
distance which is 60 meters. The lowest signal strength of the prototype when there is
no obstruction is -75dB while -81dB when there is obstruction. Therefore it is found
that the distance is inversely proportional with the signal strength.
48
Measuring Time Delay
Time delay is very common in wireless transmission of data. Theoretically, the time
delay increases when the distance between the transmitter and receiver increases. The
researchers created a program to measure the time delay. What the program does is it sends
data from the laptop using the Zigbee to the scoreboard then the data loops back from the
scoreboard going back again to the laptop. The measured time by the laptop is the two way
process of sending back and forth of the signal. Therefore, the time delay of the system is
getting the average time of the 5 trials then dividing it by two. The display of the scoreboard
upon this testing is that it shows the time of the execution in 24 hour basis.
Time Received
Time Sent
Figure 3.15: Measurement of Time Delay
As seen in Figure 3.15 (Measurement of Time Delay) the time sent is the
encircled value while the boxed value is the time received.The Time Sent is the
recorded time when the laptop sends data to the scoreboard. Since the scoreboard
49
send back that data, the laptop records the time the moment it received the data. This
value is labeled Time Received. The difference of Time Sent and Time Received is
the two way transmission of data. The average of the Time Difference is divided by
two to obtain the Time Delay.
Time Delay
Distance
(m)
5
10
15
20
25
30
Trials
Time Sent
(sec)
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
0.1597992
0.1139795
0.6224184
0.2736329
0.7656076
0.0373133
0.3345609
0.0640364
0.0703246
0.6501308
0.0997028
0.1747385
0.6004915
0.2805358
0.1105944
0.5607538
0.3408179
0.2228898
0.0229469
0.7029898
0.0665037
0.3265447
0.2065893
0.6266277
0.5766682
0.1567516
Time
Received
(sec)
0.2568048
0.2099850
0.7164238
0.3626380
0.8656134
0.1333188
0.4355667
0.1670422
0.1723304
0.7441362
0.2107086
0.2727441
0.7004916
0.3805360
0.2005945
0.6607539
0.4308180
0.3028899
0.1229470
0.8029900
0.1765039
0.4265448
0.3165895
0.7166278
0.6666683
0.2667518
Time
Difference
(sec)
0.0970056
0.0960055
0.0940054
0.0890051
0.1000058
0.0960055
0.1010058
0.1030058
0.1020058
0.0940054
0.1110058
0.0980056
0.1000001
0.1000002
0.0900001
0.1000001
0.0900001
0.0800001
0.1000001
0.1000002
0.1100002
0.1000001
0.1100002
0.0900001
0.0900001
0.1100002
Average
Time
Difference
(sec)
0.09520548
0.09920566
0.09980236
0.09400012
0.10000014
0.09520548
Real
Time
4:45:48
4:49:21
4:51:23
4:53:12
4:55:00
4:56:44
4:57:23
4:58:59
4:59:39
5:00:10
5:01:13
5:02:06
5:03:23
5:03:57
5:04:05
5:05:58
5:05:44
5:07:35
5:08:16
5:08:46
5:14:42
5:15:11
5:15:43
5:16:10
5:16:39
5:17:39
Time
Delay (sec)
0.04760274
0.04960283
0.04990118
0.04700006
0.05000007
0.05100007
50
35
40
45
50
55
60
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
0.8167960
0.8968437
0.2168791
0.7469247
0.3370165
0.8252332
0.3152814
0.2153261
0.8153591
0.7765584
0.0366904
0.6267794
0.2568265
0.4268800
0.7540179
0.1240646
0.4641617
0.8043106
0.7143637
0.0444691
0.2145142
0.1045588
0.3446082
0.6746526
0.7747241
0.7347675
0.8948312
0.6248967
0.6634502
0.4435423
0.0536161
0.3936570
0.2837185
0.6137973
0.9167961
0.9968438
0.3168793
0.8469248
0.4270166
0.9252333
0.4152816
0.3153262
0.9153593
0.8765586
0.1266905
0.7267796
0.3568267
0.5368801
0.8540181
0.2240648
0.5641619
0.8943107
0.8143638
0.1544693
0.3145143
0.2045590
0.4346083
0.7746527
0.8747243
0.8247676
0.9948314
0.7248968
0.7634503
0.5435424
0.1436133
0.4936572
0.3837186
0.7037975
0.1000001
0.1000001
0.1000002
0.1000001
0.0900001
0.1000001
0.1000002
0.1000001
0.1000002
0.1000002
0.0900001
0.1000002
0.1000002
0.1100001
0.1000002
0.1000002
0.1000002
0.0900001
0.1000001
0.1100002
0.1000001
0.1000002
0.0900001
0.1000001
0.1000002
0.0900001
0.1000002
0.1000001
0.1000001
0.1000001
0.0899972
0.1000002
0.1000001
0.0900002
0.09520548
0.09520548
0.09520548
0.09520548
0.09520548
0.09599956
5:18:10
5:18:44
5:19:10
5:19:42
5:20:48
5:23:10
5:23:45
5:24:17
5:24:40
5:26:24
5:28:27
5:29:30
5:30:04
5:30:42
5:32:04
5:32:38
5:33:47
5:32:33
5:36:11
5:37:27
5:37:59
5:38:31
5:39:06
5:39:37
5:40:28
5:40:59
5:41:44
5:42:31
5:49:29
5:50:35
5:52:26
5:51:57
5:52:41
5:53:37
0.04900007
0.05000008
0.04900008
0.05000007
0.04900007
0.04799978
Table 3.4: Time DelayTesting Results
51
As seen in the Table 3.4 (Tine Delay Testing Results), in five meter distance,
the time delay of the prototype is 0.04760274 second. From that value, the time delay
increases to 0.04960283 second which occurs at 10 meter distance. It also increases to
0.04990118 second upon reaching the 15 meter distance. However, at 20 meter
distance of the prototype and scoreboard, the time delay decreases from 0.04990118
second to 0.04700006 second. But it increases at the 25 meter distance which is
0.05000007 second. In 30 meter distance, the time delay went to 0.05100007 second
and decreases to 0.04900007 second upon reaching 35 meter distance. At 40 meters,
the time delay is 0.05000008 second but decreases to 0.04900008 second at 45 meter
distance. At 50 meters, the time delay measured is exactly same at 25 meters which is
0.05000007 second. The time delay decreases as the distance approaches to 55 meters
from 0.05000007 to 0.04900007 second. It also improved when the distance increased
to 60 meters where the time delay measured is 04799978 second.
The smallest time delay occurred at 20 meter distance while the largest
occurred at 30 meter distance. It is also shown that the time delay of the prototype is
varying because the largest time delay measured does not occur in the farthest
distance while the lowest time delay does not happen in shortest distance. Time time
delay at 25 meters and 50 meters are the same whereas the time delay of the 5 meters
and the 60 meters is almost the same for the reason that their difference is roughly
100 microseconds.
52
Time Delay
Average Time (second)
0.05200000
0.05100000
0.05000000
0.04900000
0.04800000
Time Delay
0.04700000
0.04600000
0.04500000
5 10 15 20 25 30 35 40 45 50 55 60
Distance (meter)
Graph 3.2: Distance VS Time Delay
As seen in the Graph 3.2 (Distance VS Time Delay), Time Delay is not
constantly increasing for the reason that in 5 meters to 15 meters, the time delay
increasesthen abruptly decreases down to 20 meter distance. After which, the time
delay increases from 25 to 30 meters then decreases in 35 meter distance. At 40 meter
distance, the delay increases and decreases at 45 meters then increases at 50 meters
then decreases in 60 meters.
Time delay does not have a constant characteristic curve because of its
varying values. The prototype can operate within the said distance with a maximum
time delay of 0.05000007 second and minimum of 0.047000006 second based on the
data gathered by the group.
53
Statistical Treatment
Gathering data in time delay is done by taking five samples or trials per distance. In
statistics, the data will be accurate when there is more samples. After five trials are done, The
results are reviewed by looking if there is a data that is far from the majority. If there is, that
data will be replaced by taking another trial. If it exists again, then this data will be accepted.
Using these five trials, the average is taken and by this parameter, the delay can now be
compared to other distance as long as the system is operating at the optimum distance
determined by the range test.
In measuring the signal strength, the software X_CTU is used. This program helps to
record the signal strength of Zigbee. The less negative the value means the signal strength is
better. However, there are times when the signal strength is better at farther distance. It is
expected to have lower signal strength at farther distance andthe Zigbee conforms to this
condition as seen in Graph 3.1 (Distance VS Signal Strength).
Getting the total time delay of all the trials divided by 12 is the average or mean time
delay of the system along the 60 meters radius. The total time delay is divided by 12 because
there are 12 trials with five samples for each trial. This value can be assumed to be the time
delay within the said distance. However, the results of measuring the time delay has
maximum time delay of 0.05000007 second and minimum of 0.047000006 second.
54
Mean
Mean=(0.04760274+0.04960283+0.04990118+0.04700006+0.05000007+0.05100007
+0.04900007+0.0500008+0.04900008+0.05000007+0.04900007+0.047999978)/12
Mean = 0.049175592 second
The prototype has an average time delay of 0.049175592 second upon
operating the optimum distance of 60 meters. When the distance of the laptop and the
scoreboard is changing time to time, the average time delay will be closer to the mean
value.
Conclusion
The research proved the possibility of designing and building a wireless scoreboard
that is synchronized with a laptop via Zigbee. From the data gathered, it is found out that the
scoreboard will operate within the measured optimal distance with or without obstruction
with the measured maximum time delay. When the prototype gets out of the 60 meter radius
distance, the scoreboard may be found to have miscommunication and produce error in the
laptop. Based on the gathered results upon testing the scoreboard, the signal strength of the
Portable Synchronized Basketball Scoreboard is seen to be better than having obstruction.
The scoreboard is expected to display in higher position where people watching the game
cannot block its display. It is also found to be working without problem whenever there is
obstruction between the transmitter and the receiver. Like in various wireless gadgets, the
scoreboard can only communicate with themselves within the gathered data which is 60
meters. This distance is accepted due to the fact that a typical basketball courtis 50 feet wide
and 94 feet long while the scoreboard and laptop operate at a196.850 feet or 60 meters
55
distance from each other. When the prototype is operating, its averagetime delay
is0.049175592 second within the 60 meter radius.
Recommendation
The security of the transmission of data to the scoreboard is no longer covered by this
research. Other laptops with connected Zigbee transmitter can also send data to the
scoreboard. When this happens, the accuracy of the time may be affected because it can be
changed by an anonymous user. Thus, further studies on the same topic may be about
improvements on transmitting the data such as having a 1:1 connection between laptop and
scoreboard.
One potential study that may be taken is increasing the distance between the laptop
and the scoreboard by using multiple Zigbee to bridge the signal with other Zigbee.
References
Axelson, J. (1994). The Microcontroller Idea Book. 8052-Basic Microcontrollers.
Madison,Alabama: Lakeview Research
Borger, J. (December 6, 2008). "They think it's all over". The Guardian (London). Retrieved
December 24, 2008, from http://www.guardian.co.uk/football/2008/dec/06/footballbrand-globalisation-chinabasketball
Cypher D., Chevrollier N., Montavont N., & Golmie N. (2006, April). Prevailing over Wires
in Healthcare Environments: Benefits and Challenges. IEEE Communications
Magazine, Vol. 44, No. 4, pp. 56-63.
56
Heile B. (2004, June 8). Emerging Standards: Where do ZigBee/UWB fit. Retrieved
November 8, 2011, from
http://www.jzctc.com/Downloads/ZIGB/2006316131536817.pdf
Institute of Electrical and Electronics Engineers. (2003). IEEE Standard for Local and
Metropolitan Area Networks: Specifications for Low- Rate Wireless Personal Area
Networks.
Jovanov E., & Milenkovic A. (2005, September). A WBAN System for Ambulatory
Monitoring of Physical Activity and Health Status: Applications and Challenges.
IEEE Engineering inMedicine and Biology, pp. 3810-3813.
Lakas A. (2005, May). A Framework for SIP-Based Wireless Medical Application.
Vehicular Technology Conference, vol. 5, pp. 2755-2759.
Lee M.J, Jianliang Z., Young-Bae K. & Shrestha, D.M. (2006, April) Emerging standards
for wireless mesh technology. IEEE Wireless Communications Magazine, Vol. 13,
Issue 2, pp.56 – 63.
Liting, C., Wei, J., & Zhaoli, Z. (2008). Networked Wireless Meter-Reading System based
on ZigBee Technology. Control and Decision Conference, pp. 3455 - 3460
Loke L., Robles L. (2007). Self-Study Module: GUI Building in Java, p. 2.
Ondrej, S., Zdenek, B., Petr, F., & Ondrej, H., (2006, April). ZigBee Technology and Device
Design. International Conference on Networking, International Conference on
Systems and International Conference on Mobile Communications and Learning
Technologies, IEEE, pp.129-139.
57
Robinson B., Brooks P. (2009). An Initial Study of Customer-Reported GUI Defects. IEEE
International Conference on Software Testing, Verification, and Validation
Workshops, pp.267-274.
Tanel J., Taavi M., Indrek R. (2006). PIC Microcontroller learning system. Estonia.: Tallinn
University of Technology, Department of Electrical Drives and Power Electronics
Uehran, R. (2005). Wireless Scoreboard Display System. Brookings, SD, US.: Daktronics Inc.
Ze Z., & Li C. (2005, September). EasiMed: A Remote Health Care Solution. IEEE
Engineering in Medicine and Biology, pp. 2145-2148.
ZigBee Alliance. (2004, December). Document 053474r06, ZigBee Specification, v. 1.0
Zucatto, F., Biscassi, C.A., Monsignore, F., Fidelix, F., Coutinho, S., &Rocha, M.L. (2007).
ZigBee for Building Control Wireless Sensor Networks.
58
Chapter IV
CONCLUSION
The research proved the possibility of designing and building a wireless scoreboard
that is synchronized with a laptop via Zigbee. From the data gathered, it is found out that the
scoreboard will operate within the measured optimal distance with or without obstruction
with the measured maximum time delay. When the prototype gets out of the 60 meter radius
distance, the scoreboard may be found to have miscommunication and produce error in the
laptop. Based on the gathered results upon testing the scoreboard, the signal strength of the
Portable Synchronized Basketball Scoreboard is seen to be better than having obstruction.
The scoreboard is expected to display in higher position where people watching the game
cannot block its display. It is also found to be working without problem whenever there is
obstruction between the transmitter and the receiver. Like in various wireless gadgets, the
scoreboard can only communicate with themselves within the gathered data which is 60
meters. This distance is accepted due to the fact that a typical basketball court is 50 feet wide
and 94 feet long while the scoreboard and laptop operate at a 196.850 feet or 60 meters
distance from each other. When the prototype is operating, its average time delay is
0.049175592 second within the 60 meter radius.
59
Chapter V
RECOMMENDATION
The security of the transmission of data to the scoreboard is no longer covered by this
research. Other laptops with connected Zigbee transmitter can also send data to the
scoreboard. When this happens, the accuracy of the time may be affected because it can be
changed by an anonymous user. Thus, further studies on the same topic may be about
improvements on transmitting the data such as having a 1:1 connection between laptop and
scoreboard.
One potential study that may be taken is increasing the distance between the laptop
and the scoreboard by using multiple Zigbee to bridge the signal with other Zigbee.
60
REFERENCES
Axelson, J. (1994). The Microcontroller Idea Book.8052-Basic
Microcontrollers.Madison,Alabama: Lakeview Research
Borger, J. (December 6, 2008). "They think it's all over". The Guardian (London). Retrieved
December 24, 2008, from http://www.guardian.co.uk/football/2008/dec/06/footballbrand-globalisation-chinabasketball
Cypher D., Chevrollier N., Montavont N., &Golmie N. (2006, April).Prevailing over Wires
in Healthcare Environments: Benefits and Challenges.IEEE Communications
Magazine, Vol. 44, No. 4, pp. 56-63.
Heile B. (2004, June 8). Emerging Standards: Where doZigBee/UWB fit. Retrieved
November 8, 2011,
fromhttp://www.jzctc.com/Downloads/ZIGB/2006316131536817.pdf
Institute of Electrical and Electronics Engineers. (2003). IEEE Standard for Local and
Metropolitan Area Networks: Specifications for Low- Rate Wireless Personal Area
Networks.
JovanovE.,&Milenkovic A. (2005, September). A WBAN System for Ambulatory
Monitoring of Physical Activity and Health Status: Applications and Challenges.
IEEE Engineering inMedicine and Biology, pp. 3810-3813.
Lakas A. (2005, May). A Framework for SIP-Based Wireless Medical Application.Vehicular
Technology Conference, vol. 5, pp. 2755-2759.
Lee M.J, Jianliang Z., Young-Bae K. & Shrestha, D.M. (2006, April) Emerging standards
for wireless mesh technology. IEEE Wireless Communications Magazine, Vol. 13,
Issue 2, pp.56 – 63.
61
Liting, C., Wei, J., &Zhaoli, Z. (2008). Networked Wireless Meter-Reading System based on
ZigBee Technology. Control and Decision Conference, pp. 3455 - 3460
Loke L., Robles L. (2007). Self-Study Module: GUI Building in Java, p. 2.
Ondrej, S., Zdenek, B., Petr, F., &Ondrej, H., (2006, April).ZigBee Technology and Device
Design.International Conference on Networking, International Conference on
Systems and International Conference on Mobile Communications and Learning
Technologies, IEEE, pp.129-139.
Robinson B., Brooks P. (2009). An Initial Study of Customer-Reported GUI Defects.IEEE
International Conference on Software Testing, Verification, and Validation
Workshops, pp.267-274.
Tanel J., Taavi M., Indrek R. (2006). PIC Microcontroller learning system.Estonia.:Tallinn
University of Technology, Department of Electrical Drives and Power Electronics
Uehran, R. (2005). Wireless Scoreboard Display System. Brookings, SD, US.: Daktronics
Inc.
ZeZ.,& Li C. (2005, September). EasiMed: A Remote Health Care Solution. IEEE
Engineering in Medicine and Biology, pp. 2145-2148.
ZigBee Alliance.(2004, December). Document 053474r06, ZigBee Specification, v. 1.0
Zucatto, F., Biscassi, C.A., Monsignore, F., Fidelix, F., Coutinho, S., &Rocha, M.L. (2007).
ZigBee for Building Control Wireless Sensor Networks.
62
APPENDICES
Appendix A
OPERATIONS MANUAL
1. System Requirement
o Pentium 4 processor 1.6GHz or equivalent
o 512MB RAM or higher
o Microsoft Windows XP or higher
2. Installation Procedure
o Attach the Zigbee Transceiver to the laptop.
o Attach the Zigbee Receiver to the scoreboard.
o Turn on the Scoreboard.
o Run the scoreboard application on the laptop.
3. Troubleshooting
a. Scoreboard digits are all zeros
o Choose the right COM Port when starting the application
4. Error Definition
a. Check COM Port Settings – Error in com port setting.
63
Appendix B
Picture of Prototype
Figure 6.1: Full Prototype
The figure above shows the full prototype connected to a laptop computer.
64
Appendix C
PROGRAM LISTING
C# Program
frmScoreboard.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace ScoreBoard
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmScoreboard());
}
}
}
namespace ScoreBoard
{
partial class frmScoreboard
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise,
false.</param>
65
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.lblScoreboard = new System.Windows.Forms.Label();
this.gbScoreBoard = new System.Windows.Forms.GroupBox();
this.lblHTFouls = new System.Windows.Forms.Label();
this.lblAwayScore = new System.Windows.Forms.Label();
this.lblHomeScore = new System.Windows.Forms.Label();
this.lblAT = new System.Windows.Forms.Label();
this.lblHT = new System.Windows.Forms.Label();
this.lblAF = new System.Windows.Forms.Label();
this.lblHF = new System.Windows.Forms.Label();
this.lblATimeout = new System.Windows.Forms.Label();
this.lblATFouls = new System.Windows.Forms.Label();
this.lblHTimeout = new System.Windows.Forms.Label();
this.lblPeriodNumber = new System.Windows.Forms.Label();
this.lblPeriod = new System.Windows.Forms.Label();
this.lblSC = new System.Windows.Forms.Label();
this.lblTimerSC = new System.Windows.Forms.Label();
this.gbxTimer = new System.Windows.Forms.GroupBox();
this.lblMiliSeconds = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.lblTimerMinutes = new System.Windows.Forms.Label();
this.lblTimerSeconds = new System.Windows.Forms.Label();
this.lblColon = new System.Windows.Forms.Label();
this.lblAway = new System.Windows.Forms.Label();
this.lblHomeName = new System.Windows.Forms.Label();
this.tmrTime = new System.Windows.Forms.Timer(this.components);
this.msMenuBar = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
66
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.serialPort1 = new System.IO.Ports.SerialPort(this.components);
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.btnPlay = new System.Windows.Forms.Button();
this.btnChangeTime = new System.Windows.Forms.Button();
this.btnOptions = new System.Windows.Forms.Button();
this.btnResetShotClock = new System.Windows.Forms.Button();
this.gbAwayTimeout = new System.Windows.Forms.GroupBox();
this.btnAwayTimeoutSub = new System.Windows.Forms.Button();
this.btnAwayTimeoutAdd = new System.Windows.Forms.Button();
this.gbAyawFoul = new System.Windows.Forms.GroupBox();
this.btnAwayFoulSub = new System.Windows.Forms.Button();
this.btnAwayFoulAdd = new System.Windows.Forms.Button();
this.gbAwayScore = new System.Windows.Forms.GroupBox();
this.btnAwayAdd3 = new System.Windows.Forms.Button();
this.btnAwaySub1 = new System.Windows.Forms.Button();
this.btnAwayAdd2 = new System.Windows.Forms.Button();
this.btnAwayAdd1 = new System.Windows.Forms.Button();
this.gbHomeTimeout = new System.Windows.Forms.GroupBox();
this.btnHomeTimeoutSub = new System.Windows.Forms.Button();
this.btnHomeTimeoutAdd = new System.Windows.Forms.Button();
this.gbHomeFoul = new System.Windows.Forms.GroupBox();
this.btnHomeFoulSub = new System.Windows.Forms.Button();
this.btnHomeFoulAdd = new System.Windows.Forms.Button();
this.gbHomeScore = new System.Windows.Forms.GroupBox();
this.btnHomeAdd3 = new System.Windows.Forms.Button();
this.btnHomeSub1 = new System.Windows.Forms.Button();
this.btnHomeAdd2 = new System.Windows.Forms.Button();
this.btnHomeAdd1 = new System.Windows.Forms.Button();
this.gbScoreBoard.SuspendLayout();
this.gbxTimer.SuspendLayout();
this.msMenuBar.SuspendLayout();
this.groupBox1.SuspendLayout();
this.gbAwayTimeout.SuspendLayout();
this.gbAyawFoul.SuspendLayout();
this.gbAwayScore.SuspendLayout();
this.gbHomeTimeout.SuspendLayout();
this.gbHomeFoul.SuspendLayout();
this.gbHomeScore.SuspendLayout();
this.SuspendLayout();
//
// lblScoreboard
//
this.lblScoreboard.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Left)
67
| System.Windows.Forms.AnchorStyles.Right)));
this.lblScoreboard.BackColor = System.Drawing.Color.Black;
this.lblScoreboard.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblScoreboard.Font = new System.Drawing.Font("Microsoft Sans Serif", 48F,
System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblScoreboard.ForeColor = System.Drawing.Color.Red;
this.lblScoreboard.Location = new System.Drawing.Point(12, 24);
this.lblScoreboard.Name = "lblScoreboard";
this.lblScoreboard.Size = new System.Drawing.Size(984, 79);
this.lblScoreboard.TabIndex = 0;
this.lblScoreboard.Text = "PC SCOREBOARD";
this.lblScoreboard.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// gbScoreBoard
//
this.gbScoreBoard.Anchor = System.Windows.Forms.AnchorStyles.None;
this.gbScoreBoard.BackgroundImageLayout =
System.Windows.Forms.ImageLayout.None;
this.gbScoreBoard.Controls.Add(this.lblHTFouls);
this.gbScoreBoard.Controls.Add(this.lblAwayScore);
this.gbScoreBoard.Controls.Add(this.lblHomeScore);
this.gbScoreBoard.Controls.Add(this.lblAT);
this.gbScoreBoard.Controls.Add(this.lblHT);
this.gbScoreBoard.Controls.Add(this.lblAF);
this.gbScoreBoard.Controls.Add(this.lblHF);
this.gbScoreBoard.Controls.Add(this.lblATimeout);
this.gbScoreBoard.Controls.Add(this.lblATFouls);
this.gbScoreBoard.Controls.Add(this.lblHTimeout);
this.gbScoreBoard.Controls.Add(this.lblPeriodNumber);
this.gbScoreBoard.Controls.Add(this.lblPeriod);
this.gbScoreBoard.Controls.Add(this.lblSC);
this.gbScoreBoard.Controls.Add(this.lblTimerSC);
this.gbScoreBoard.Controls.Add(this.gbxTimer);
this.gbScoreBoard.Controls.Add(this.lblAway);
this.gbScoreBoard.Controls.Add(this.lblHomeName);
this.gbScoreBoard.Location = new System.Drawing.Point(12, 213);
this.gbScoreBoard.Name = "gbScoreBoard";
this.gbScoreBoard.Size = new System.Drawing.Size(984, 465);
this.gbScoreBoard.TabIndex = 1;
this.gbScoreBoard.TabStop = false;
//
// lblHTFouls
//
this.lblHTFouls.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.lblHTFouls.BackColor = System.Drawing.Color.Black;
this.lblHTFouls.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
68
this.lblHTFouls.Font = new System.Drawing.Font("Microsoft Sans Serif", 51.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblHTFouls.ForeColor = System.Drawing.Color.Red;
this.lblHTFouls.Location = new System.Drawing.Point(27, 347);
this.lblHTFouls.Margin = new System.Windows.Forms.Padding(0);
this.lblHTFouls.Name = "lblHTFouls";
this.lblHTFouls.Size = new System.Drawing.Size(120, 90);
this.lblHTFouls.TabIndex = 25;
this.lblHTFouls.Text = "0";
this.lblHTFouls.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblAwayScore
//
this.lblAwayScore.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.lblAwayScore.BackColor = System.Drawing.Color.Black;
this.lblAwayScore.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblAwayScore.Font = new System.Drawing.Font("Microsoft Sans Serif", 72F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblAwayScore.ForeColor = System.Drawing.Color.Red;
this.lblAwayScore.Location = new System.Drawing.Point(704, 155);
this.lblAwayScore.Margin = new System.Windows.Forms.Padding(0);
this.lblAwayScore.Name = "lblAwayScore";
this.lblAwayScore.Size = new System.Drawing.Size(250, 110);
this.lblAwayScore.TabIndex = 24;
this.lblAwayScore.Text = "0";
this.lblAwayScore.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblHomeScore
//
this.lblHomeScore.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.lblHomeScore.BackColor = System.Drawing.Color.Black;
this.lblHomeScore.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblHomeScore.Font = new System.Drawing.Font("Microsoft Sans Serif", 72F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblHomeScore.ForeColor = System.Drawing.Color.Red;
this.lblHomeScore.Location = new System.Drawing.Point(28, 155);
this.lblHomeScore.Margin = new System.Windows.Forms.Padding(0);
this.lblHomeScore.Name = "lblHomeScore";
this.lblHomeScore.Size = new System.Drawing.Size(250, 110);
this.lblHomeScore.TabIndex = 23;
this.lblHomeScore.Text = "0";
this.lblHomeScore.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblAT
//
this.lblAT.Anchor = System.Windows.Forms.AnchorStyles.Right;
69
this.lblAT.AutoSize = true;
this.lblAT.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblAT.ForeColor = System.Drawing.Color.White;
this.lblAT.Location = new System.Drawing.Point(831, 308);
this.lblAT.Name = "lblAT";
this.lblAT.Size = new System.Drawing.Size(123, 29);
this.lblAT.TabIndex = 19;
this.lblAT.Text = "TIMEOUT";
this.lblAT.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblHT
//
this.lblHT.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.lblHT.AutoSize = true;
this.lblHT.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblHT.ForeColor = System.Drawing.Color.White;
this.lblHT.Location = new System.Drawing.Point(153, 308);
this.lblHT.Name = "lblHT";
this.lblHT.Size = new System.Drawing.Size(123, 29);
this.lblHT.TabIndex = 18;
this.lblHT.Text = "TIMEOUT";
this.lblHT.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblAF
//
this.lblAF.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.lblAF.AutoSize = true;
this.lblAF.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblAF.ForeColor = System.Drawing.Color.White;
this.lblAF.Location = new System.Drawing.Point(716, 308);
this.lblAF.Name = "lblAF";
this.lblAF.Size = new System.Drawing.Size(93, 29);
this.lblAF.TabIndex = 17;
this.lblAF.Text = "FOULS";
this.lblAF.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblHF
//
this.lblHF.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.lblHF.AutoSize = true;
this.lblHF.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblHF.ForeColor = System.Drawing.Color.White;
70
this.lblHF.Location = new System.Drawing.Point(41, 308);
this.lblHF.Name = "lblHF";
this.lblHF.Size = new System.Drawing.Size(93, 29);
this.lblHF.TabIndex = 16;
this.lblHF.Text = "FOULS";
this.lblHF.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblATimeout
//
this.lblATimeout.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.lblATimeout.BackColor = System.Drawing.Color.Black;
this.lblATimeout.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblATimeout.Font = new System.Drawing.Font("Microsoft Sans Serif", 51.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblATimeout.ForeColor = System.Drawing.Color.Red;
this.lblATimeout.Location = new System.Drawing.Point(834, 347);
this.lblATimeout.Margin = new System.Windows.Forms.Padding(0);
this.lblATimeout.Name = "lblATimeout";
this.lblATimeout.Size = new System.Drawing.Size(120, 90);
this.lblATimeout.TabIndex = 15;
this.lblATimeout.Text = "0";
this.lblATimeout.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblATFouls
//
this.lblATFouls.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.lblATFouls.BackColor = System.Drawing.Color.Black;
this.lblATFouls.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblATFouls.Font = new System.Drawing.Font("Microsoft Sans Serif", 51.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblATFouls.ForeColor = System.Drawing.Color.Red;
this.lblATFouls.Location = new System.Drawing.Point(704, 347);
this.lblATFouls.Margin = new System.Windows.Forms.Padding(0);
this.lblATFouls.Name = "lblATFouls";
this.lblATFouls.Size = new System.Drawing.Size(120, 90);
this.lblATFouls.TabIndex = 14;
this.lblATFouls.Text = "0";
this.lblATFouls.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblHTimeout
//
this.lblHTimeout.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.lblHTimeout.BackColor = System.Drawing.Color.Black;
this.lblHTimeout.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblHTimeout.Font = new System.Drawing.Font("Microsoft Sans Serif", 51.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
71
this.lblHTimeout.ForeColor = System.Drawing.Color.Red;
this.lblHTimeout.Location = new System.Drawing.Point(156, 347);
this.lblHTimeout.Margin = new System.Windows.Forms.Padding(0);
this.lblHTimeout.Name = "lblHTimeout";
this.lblHTimeout.Size = new System.Drawing.Size(120, 90);
this.lblHTimeout.TabIndex = 13;
this.lblHTimeout.Text = "0";
this.lblHTimeout.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblPeriodNumber
//
this.lblPeriodNumber.Anchor = System.Windows.Forms.AnchorStyles.None;
this.lblPeriodNumber.BackColor = System.Drawing.Color.Black;
this.lblPeriodNumber.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblPeriodNumber.Font = new System.Drawing.Font("Microsoft Sans Serif", 56.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblPeriodNumber.ForeColor = System.Drawing.Color.Red;
this.lblPeriodNumber.Location = new System.Drawing.Point(421, 179);
this.lblPeriodNumber.Margin = new System.Windows.Forms.Padding(0);
this.lblPeriodNumber.Name = "lblPeriodNumber";
this.lblPeriodNumber.Size = new System.Drawing.Size(140, 110);
this.lblPeriodNumber.TabIndex = 11;
this.lblPeriodNumber.Text = "00";
this.lblPeriodNumber.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblPeriod
//
this.lblPeriod.Anchor = System.Windows.Forms.AnchorStyles.None;
this.lblPeriod.AutoSize = true;
this.lblPeriod.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblPeriod.ForeColor = System.Drawing.Color.White;
this.lblPeriod.Location = new System.Drawing.Point(422, 140);
this.lblPeriod.Name = "lblPeriod";
this.lblPeriod.Size = new System.Drawing.Size(137, 37);
this.lblPeriod.TabIndex = 10;
this.lblPeriod.Text = "PERIOD";
this.lblPeriod.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblSC
//
this.lblSC.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.lblSC.AutoSize = true;
this.lblSC.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblSC.ForeColor = System.Drawing.Color.White;
72
this.lblSC.Location = new System.Drawing.Point(380, 301);
this.lblSC.Name = "lblSC";
this.lblSC.Size = new System.Drawing.Size(225, 37);
this.lblSC.TabIndex = 9;
this.lblSC.Text = "SHOT CLOCK";
this.lblSC.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblTimerSC
//
this.lblTimerSC.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.lblTimerSC.BackColor = System.Drawing.Color.Black;
this.lblTimerSC.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.lblTimerSC.Font = new System.Drawing.Font("Microsoft Sans Serif", 56.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblTimerSC.ForeColor = System.Drawing.Color.Red;
this.lblTimerSC.Location = new System.Drawing.Point(421, 343);
this.lblTimerSC.Margin = new System.Windows.Forms.Padding(0);
this.lblTimerSC.Name = "lblTimerSC";
this.lblTimerSC.Size = new System.Drawing.Size(140, 110);
this.lblTimerSC.TabIndex = 8;
this.lblTimerSC.Text = "00";
this.lblTimerSC.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// gbxTimer
//
this.gbxTimer.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.gbxTimer.Controls.Add(this.lblMiliSeconds);
this.gbxTimer.Controls.Add(this.label1);
this.gbxTimer.Controls.Add(this.lblTimerMinutes);
this.gbxTimer.Controls.Add(this.lblTimerSeconds);
this.gbxTimer.Controls.Add(this.lblColon);
this.gbxTimer.Font = new System.Drawing.Font("Microsoft Sans Serif", 1.5F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.gbxTimer.Location = new System.Drawing.Point(307, 22);
this.gbxTimer.Name = "gbxTimer";
this.gbxTimer.Size = new System.Drawing.Size(373, 106);
this.gbxTimer.TabIndex = 5;
this.gbxTimer.TabStop = false;
//
// lblMiliSeconds
//
this.lblMiliSeconds.BackColor = System.Drawing.Color.Black;
this.lblMiliSeconds.Font = new System.Drawing.Font("Microsoft Sans Serif", 54.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblMiliSeconds.ForeColor = System.Drawing.Color.Red;
this.lblMiliSeconds.Location = new System.Drawing.Point(312, 3);
73
this.lblMiliSeconds.Margin = new System.Windows.Forms.Padding(0);
this.lblMiliSeconds.Name = "lblMiliSeconds";
this.lblMiliSeconds.Size = new System.Drawing.Size(60, 100);
this.lblMiliSeconds.TabIndex = 6;
this.lblMiliSeconds.Text = "0";
this.lblMiliSeconds.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label1
//
this.label1.BackColor = System.Drawing.Color.Black;
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 51.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.ForeColor = System.Drawing.Color.Red;
this.label1.Location = new System.Drawing.Point(277, 3);
this.label1.Margin = new System.Windows.Forms.Padding(0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(35, 100);
this.label1.TabIndex = 5;
this.label1.Text = ".";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblTimerMinutes
//
this.lblTimerMinutes.BackColor = System.Drawing.Color.Black;
this.lblTimerMinutes.Font = new System.Drawing.Font("Microsoft Sans Serif", 54.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblTimerMinutes.ForeColor = System.Drawing.Color.Red;
this.lblTimerMinutes.Location = new System.Drawing.Point(2, 4);
this.lblTimerMinutes.Margin = new System.Windows.Forms.Padding(0);
this.lblTimerMinutes.Name = "lblTimerMinutes";
this.lblTimerMinutes.Size = new System.Drawing.Size(120, 100);
this.lblTimerMinutes.TabIndex = 2;
this.lblTimerMinutes.Text = "00";
this.lblTimerMinutes.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblTimerSeconds
//
this.lblTimerSeconds.BackColor = System.Drawing.Color.Black;
this.lblTimerSeconds.Font = new System.Drawing.Font("Microsoft Sans Serif", 54.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblTimerSeconds.ForeColor = System.Drawing.Color.Red;
this.lblTimerSeconds.Location = new System.Drawing.Point(157, 3);
this.lblTimerSeconds.Margin = new System.Windows.Forms.Padding(0);
this.lblTimerSeconds.Name = "lblTimerSeconds";
this.lblTimerSeconds.Size = new System.Drawing.Size(120, 100);
this.lblTimerSeconds.TabIndex = 4;
74
this.lblTimerSeconds.Text = "00";
this.lblTimerSeconds.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblColon
//
this.lblColon.BackColor = System.Drawing.Color.Black;
this.lblColon.Font = new System.Drawing.Font("Microsoft Sans Serif", 51.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblColon.ForeColor = System.Drawing.Color.Red;
this.lblColon.Location = new System.Drawing.Point(122, 4);
this.lblColon.Margin = new System.Windows.Forms.Padding(0);
this.lblColon.Name = "lblColon";
this.lblColon.Size = new System.Drawing.Size(35, 100);
this.lblColon.TabIndex = 3;
this.lblColon.Text = ":";
this.lblColon.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblAway
//
this.lblAway.Anchor =
((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Right)));
this.lblAway.Font = new System.Drawing.Font("Microsoft Sans Serif", 51.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblAway.ForeColor = System.Drawing.Color.White;
this.lblAway.Location = new System.Drawing.Point(704, 70);
this.lblAway.Name = "lblAway";
this.lblAway.Size = new System.Drawing.Size(250, 90);
this.lblAway.TabIndex = 1;
this.lblAway.Text = "AWAY";
this.lblAway.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblHomeName
//
this.lblHomeName.Font = new System.Drawing.Font("Microsoft Sans Serif", 51.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblHomeName.ForeColor = System.Drawing.Color.White;
this.lblHomeName.Location = new System.Drawing.Point(28, 70);
this.lblHomeName.Name = "lblHomeName";
this.lblHomeName.Size = new System.Drawing.Size(250, 90);
this.lblHomeName.TabIndex = 0;
this.lblHomeName.Text = "HOME";
this.lblHomeName.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// tmrTime
//
75
this.tmrTime.Tick += new System.EventHandler(this.timer1_Tick);
//
// msMenuBar
//
this.msMenuBar.BackColor = System.Drawing.SystemColors.ActiveCaption;
this.msMenuBar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem});
this.msMenuBar.Location = new System.Drawing.Point(0, 0);
this.msMenuBar.Name = "msMenuBar";
this.msMenuBar.Size = new System.Drawing.Size(1008, 24);
this.msMenuBar.TabIndex = 9;
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new
System.Windows.Forms.ToolStripItem[] {
this.optionsToolStripMenuItem,
this.exitToolStripMenuItem});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.ShortcutKeys =
((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt |
System.Windows.Forms.Keys.X)));
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.fileToolStripMenuItem.Text = "File";
//
// optionsToolStripMenuItem
//
this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
this.optionsToolStripMenuItem.ShortcutKeys =
((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt |
System.Windows.Forms.Keys.O)));
this.optionsToolStripMenuItem.Size = new System.Drawing.Size(155, 22);
this.optionsToolStripMenuItem.Text = "Options";
this.optionsToolStripMenuItem.Click += new
System.EventHandler(this.btnOptions_Click);
//
// exitToolStripMenuItem
//
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
this.exitToolStripMenuItem.ShortcutKeys =
((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt |
System.Windows.Forms.Keys.X)));
this.exitToolStripMenuItem.Size = new System.Drawing.Size(155, 22);
this.exitToolStripMenuItem.Text = "Exit";
this.exitToolStripMenuItem.Click += new
System.EventHandler(this.exitToolStripMenuItem_Click);
76
//
// groupBox1
//
this.groupBox1.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.groupBox1.Controls.Add(this.btnPlay);
this.groupBox1.Controls.Add(this.btnChangeTime);
this.groupBox1.Controls.Add(this.btnOptions);
this.groupBox1.Controls.Add(this.btnResetShotClock);
this.groupBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox1.ForeColor = System.Drawing.SystemColors.Control;
this.groupBox1.Location = new System.Drawing.Point(345, 78);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(315, 141);
this.groupBox1.TabIndex = 16;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Game Control";
//
// btnPlay
//
this.btnPlay.Enabled = false;
this.btnPlay.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnPlay.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnPlay.Location = new System.Drawing.Point(6, 22);
this.btnPlay.Name = "btnPlay";
this.btnPlay.Size = new System.Drawing.Size(90, 110);
this.btnPlay.TabIndex = 31;
this.btnPlay.Text = "Play";
this.btnPlay.UseVisualStyleBackColor = true;
this.btnPlay.Click += new System.EventHandler(this.btnPlay_Click);
//
// btnChangeTime
//
this.btnChangeTime.Enabled = false;
this.btnChangeTime.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnChangeTime.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnChangeTime.Location = new System.Drawing.Point(102, 79);
this.btnChangeTime.Name = "btnChangeTime";
this.btnChangeTime.Size = new System.Drawing.Size(93, 52);
this.btnChangeTime.TabIndex = 30;
this.btnChangeTime.Text = "Time";
this.btnChangeTime.UseVisualStyleBackColor = true;
this.btnChangeTime.Click += new System.EventHandler(this.btnChangeTime_Click);
//
77
// btnOptions
//
this.btnOptions.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnOptions.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnOptions.Location = new System.Drawing.Point(199, 79);
this.btnOptions.Name = "btnOptions";
this.btnOptions.Size = new System.Drawing.Size(110, 52);
this.btnOptions.TabIndex = 29;
this.btnOptions.Text = "Option";
this.btnOptions.UseVisualStyleBackColor = true;
this.btnOptions.Click += new System.EventHandler(this.btnOptions_Click);
//
// btnResetShotClock
//
this.btnResetShotClock.Enabled = false;
this.btnResetShotClock.Font = new System.Drawing.Font("Microsoft Sans Serif",
21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnResetShotClock.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnResetShotClock.Location = new System.Drawing.Point(102, 21);
this.btnResetShotClock.Name = "btnResetShotClock";
this.btnResetShotClock.Size = new System.Drawing.Size(207, 52);
this.btnResetShotClock.TabIndex = 28;
this.btnResetShotClock.Text = "Reset Clock";
this.btnResetShotClock.UseVisualStyleBackColor = true;
this.btnResetShotClock.Click += new
System.EventHandler(this.btnResetShotClock_Click);
//
// gbAwayTimeout
//
this.gbAwayTimeout.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.gbAwayTimeout.Controls.Add(this.btnAwayTimeoutSub);
this.gbAwayTimeout.Controls.Add(this.btnAwayTimeoutAdd);
this.gbAwayTimeout.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.gbAwayTimeout.ForeColor = System.Drawing.SystemColors.Control;
this.gbAwayTimeout.Location = new System.Drawing.Point(913, 78);
this.gbAwayTimeout.Name = "gbAwayTimeout";
this.gbAwayTimeout.Size = new System.Drawing.Size(80, 141);
this.gbAwayTimeout.TabIndex = 15;
this.gbAwayTimeout.TabStop = false;
this.gbAwayTimeout.Text = "Timeout";
//
// btnAwayTimeoutSub
//
this.btnAwayTimeoutSub.Enabled = false;
78
this.btnAwayTimeoutSub.Font = new System.Drawing.Font("Microsoft Sans Serif",
21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnAwayTimeoutSub.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnAwayTimeoutSub.Location = new System.Drawing.Point(6, 79);
this.btnAwayTimeoutSub.Name = "btnAwayTimeoutSub";
this.btnAwayTimeoutSub.Size = new System.Drawing.Size(67, 52);
this.btnAwayTimeoutSub.TabIndex = 28;
this.btnAwayTimeoutSub.Text = "-1";
this.btnAwayTimeoutSub.UseVisualStyleBackColor = true;
this.btnAwayTimeoutSub.Click += new
System.EventHandler(this.btnAwayTimeoutSub_Click);
//
// btnAwayTimeoutAdd
//
this.btnAwayTimeoutAdd.Enabled = false;
this.btnAwayTimeoutAdd.Font = new System.Drawing.Font("Microsoft Sans Serif",
21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnAwayTimeoutAdd.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnAwayTimeoutAdd.Location = new System.Drawing.Point(6, 22);
this.btnAwayTimeoutAdd.Name = "btnAwayTimeoutAdd";
this.btnAwayTimeoutAdd.Size = new System.Drawing.Size(68, 52);
this.btnAwayTimeoutAdd.TabIndex = 26;
this.btnAwayTimeoutAdd.Text = "+1";
this.btnAwayTimeoutAdd.UseVisualStyleBackColor = true;
this.btnAwayTimeoutAdd.Click += new
System.EventHandler(this.btnAwayTimeoutAdd_Click);
//
// gbAyawFoul
//
this.gbAyawFoul.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.gbAyawFoul.Controls.Add(this.btnAwayFoulSub);
this.gbAyawFoul.Controls.Add(this.btnAwayFoulAdd);
this.gbAyawFoul.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.gbAyawFoul.ForeColor = System.Drawing.SystemColors.Control;
this.gbAyawFoul.Location = new System.Drawing.Point(827, 78);
this.gbAyawFoul.Name = "gbAyawFoul";
this.gbAyawFoul.Size = new System.Drawing.Size(80, 141);
this.gbAyawFoul.TabIndex = 14;
this.gbAyawFoul.TabStop = false;
this.gbAyawFoul.Text = "Fouls";
//
// btnAwayFoulSub
//
this.btnAwayFoulSub.Enabled = false;
79
this.btnAwayFoulSub.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnAwayFoulSub.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnAwayFoulSub.Location = new System.Drawing.Point(6, 79);
this.btnAwayFoulSub.Name = "btnAwayFoulSub";
this.btnAwayFoulSub.Size = new System.Drawing.Size(68, 52);
this.btnAwayFoulSub.TabIndex = 28;
this.btnAwayFoulSub.Text = "-1";
this.btnAwayFoulSub.UseVisualStyleBackColor = true;
this.btnAwayFoulSub.Click += new System.EventHandler(this.btnAwayFoulSub_Click);
//
// btnAwayFoulAdd
//
this.btnAwayFoulAdd.Enabled = false;
this.btnAwayFoulAdd.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnAwayFoulAdd.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnAwayFoulAdd.Location = new System.Drawing.Point(6, 22);
this.btnAwayFoulAdd.Name = "btnAwayFoulAdd";
this.btnAwayFoulAdd.Size = new System.Drawing.Size(68, 52);
this.btnAwayFoulAdd.TabIndex = 26;
this.btnAwayFoulAdd.Text = "+1";
this.btnAwayFoulAdd.UseVisualStyleBackColor = true;
this.btnAwayFoulAdd.Click += new
System.EventHandler(this.btnAwayFoulAdd_Click);
//
// gbAwayScore
//
this.gbAwayScore.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.gbAwayScore.Controls.Add(this.btnAwayAdd3);
this.gbAwayScore.Controls.Add(this.btnAwaySub1);
this.gbAwayScore.Controls.Add(this.btnAwayAdd2);
this.gbAwayScore.Controls.Add(this.btnAwayAdd1);
this.gbAwayScore.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.gbAwayScore.ForeColor = System.Drawing.SystemColors.Control;
this.gbAwayScore.Location = new System.Drawing.Point(666, 78);
this.gbAwayScore.Name = "gbAwayScore";
this.gbAwayScore.Size = new System.Drawing.Size(155, 141);
this.gbAwayScore.TabIndex = 13;
this.gbAwayScore.TabStop = false;
this.gbAwayScore.Text = "Away Score";
//
// btnAwayAdd3
//
this.btnAwayAdd3.Enabled = false;
80
this.btnAwayAdd3.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnAwayAdd3.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnAwayAdd3.Location = new System.Drawing.Point(80, 22);
this.btnAwayAdd3.Name = "btnAwayAdd3";
this.btnAwayAdd3.Size = new System.Drawing.Size(68, 52);
this.btnAwayAdd3.TabIndex = 29;
this.btnAwayAdd3.Text = "+3";
this.btnAwayAdd3.UseVisualStyleBackColor = true;
this.btnAwayAdd3.Click += new System.EventHandler(this.btnAwayAdd3_Click);
//
// btnAwaySub1
//
this.btnAwaySub1.Enabled = false;
this.btnAwaySub1.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnAwaySub1.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnAwaySub1.Location = new System.Drawing.Point(80, 79);
this.btnAwaySub1.Name = "btnAwaySub1";
this.btnAwaySub1.Size = new System.Drawing.Size(68, 52);
this.btnAwaySub1.TabIndex = 28;
this.btnAwaySub1.Text = "-1";
this.btnAwaySub1.UseVisualStyleBackColor = true;
this.btnAwaySub1.Click += new System.EventHandler(this.btnAwaySub1_Click);
//
// btnAwayAdd2
//
this.btnAwayAdd2.Enabled = false;
this.btnAwayAdd2.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnAwayAdd2.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnAwayAdd2.Location = new System.Drawing.Point(6, 80);
this.btnAwayAdd2.Name = "btnAwayAdd2";
this.btnAwayAdd2.Size = new System.Drawing.Size(68, 52);
this.btnAwayAdd2.TabIndex = 27;
this.btnAwayAdd2.Text = "+2";
this.btnAwayAdd2.UseVisualStyleBackColor = true;
this.btnAwayAdd2.Click += new System.EventHandler(this.btnAwayAdd2_Click);
//
// btnAwayAdd1
//
this.btnAwayAdd1.Enabled = false;
this.btnAwayAdd1.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnAwayAdd1.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnAwayAdd1.Location = new System.Drawing.Point(6, 21);
81
this.btnAwayAdd1.Name = "btnAwayAdd1";
this.btnAwayAdd1.Size = new System.Drawing.Size(68, 52);
this.btnAwayAdd1.TabIndex = 26;
this.btnAwayAdd1.Text = "+1";
this.btnAwayAdd1.UseVisualStyleBackColor = true;
this.btnAwayAdd1.Click += new System.EventHandler(this.btnAwayAdd1_Click);
//
// gbHomeTimeout
//
this.gbHomeTimeout.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.gbHomeTimeout.Controls.Add(this.btnHomeTimeoutSub);
this.gbHomeTimeout.Controls.Add(this.btnHomeTimeoutAdd);
this.gbHomeTimeout.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.gbHomeTimeout.ForeColor = System.Drawing.SystemColors.Control;
this.gbHomeTimeout.Location = new System.Drawing.Point(98, 78);
this.gbHomeTimeout.Name = "gbHomeTimeout";
this.gbHomeTimeout.Size = new System.Drawing.Size(80, 141);
this.gbHomeTimeout.TabIndex = 12;
this.gbHomeTimeout.TabStop = false;
this.gbHomeTimeout.Text = "Timeout";
//
// btnHomeTimeoutSub
//
this.btnHomeTimeoutSub.Enabled = false;
this.btnHomeTimeoutSub.Font = new System.Drawing.Font("Microsoft Sans Serif",
21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnHomeTimeoutSub.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnHomeTimeoutSub.Location = new System.Drawing.Point(7, 80);
this.btnHomeTimeoutSub.Name = "btnHomeTimeoutSub";
this.btnHomeTimeoutSub.Size = new System.Drawing.Size(67, 52);
this.btnHomeTimeoutSub.TabIndex = 28;
this.btnHomeTimeoutSub.Text = "-1";
this.btnHomeTimeoutSub.UseVisualStyleBackColor = true;
this.btnHomeTimeoutSub.Click += new
System.EventHandler(this.btnHomeTimeoutSub_Click);
//
// btnHomeTimeoutAdd
//
this.btnHomeTimeoutAdd.Enabled = false;
this.btnHomeTimeoutAdd.Font = new System.Drawing.Font("Microsoft Sans Serif",
21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnHomeTimeoutAdd.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnHomeTimeoutAdd.Location = new System.Drawing.Point(6, 22);
this.btnHomeTimeoutAdd.Name = "btnHomeTimeoutAdd";
this.btnHomeTimeoutAdd.Size = new System.Drawing.Size(68, 52);
82
this.btnHomeTimeoutAdd.TabIndex = 26;
this.btnHomeTimeoutAdd.Text = "+1";
this.btnHomeTimeoutAdd.UseVisualStyleBackColor = true;
this.btnHomeTimeoutAdd.Click += new
System.EventHandler(this.btnHomeTimeoutAdd_Click);
//
// gbHomeFoul
//
this.gbHomeFoul.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.gbHomeFoul.Controls.Add(this.btnHomeFoulSub);
this.gbHomeFoul.Controls.Add(this.btnHomeFoulAdd);
this.gbHomeFoul.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.gbHomeFoul.ForeColor = System.Drawing.SystemColors.Control;
this.gbHomeFoul.Location = new System.Drawing.Point(12, 78);
this.gbHomeFoul.Name = "gbHomeFoul";
this.gbHomeFoul.Size = new System.Drawing.Size(80, 141);
this.gbHomeFoul.TabIndex = 11;
this.gbHomeFoul.TabStop = false;
this.gbHomeFoul.Text = "Fouls";
//
// btnHomeFoulSub
//
this.btnHomeFoulSub.Enabled = false;
this.btnHomeFoulSub.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnHomeFoulSub.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnHomeFoulSub.Location = new System.Drawing.Point(6, 80);
this.btnHomeFoulSub.Name = "btnHomeFoulSub";
this.btnHomeFoulSub.Size = new System.Drawing.Size(68, 52);
this.btnHomeFoulSub.TabIndex = 28;
this.btnHomeFoulSub.Text = "-1";
this.btnHomeFoulSub.UseVisualStyleBackColor = true;
this.btnHomeFoulSub.Click += new System.EventHandler(this.btnHomeFoulSub_Click);
//
// btnHomeFoulAdd
//
this.btnHomeFoulAdd.Enabled = false;
this.btnHomeFoulAdd.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnHomeFoulAdd.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnHomeFoulAdd.Location = new System.Drawing.Point(6, 22);
this.btnHomeFoulAdd.Name = "btnHomeFoulAdd";
this.btnHomeFoulAdd.Size = new System.Drawing.Size(68, 52);
this.btnHomeFoulAdd.TabIndex = 26;
this.btnHomeFoulAdd.Text = "+1";
83
this.btnHomeFoulAdd.UseVisualStyleBackColor = true;
this.btnHomeFoulAdd.Click += new
System.EventHandler(this.btnHomeFoulAdd_Click);
//
// gbHomeScore
//
this.gbHomeScore.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.gbHomeScore.Controls.Add(this.btnHomeAdd3);
this.gbHomeScore.Controls.Add(this.btnHomeSub1);
this.gbHomeScore.Controls.Add(this.btnHomeAdd2);
this.gbHomeScore.Controls.Add(this.btnHomeAdd1);
this.gbHomeScore.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.gbHomeScore.ForeColor = System.Drawing.SystemColors.Control;
this.gbHomeScore.Location = new System.Drawing.Point(184, 78);
this.gbHomeScore.Name = "gbHomeScore";
this.gbHomeScore.Size = new System.Drawing.Size(155, 141);
this.gbHomeScore.TabIndex = 10;
this.gbHomeScore.TabStop = false;
this.gbHomeScore.Text = "Home Score";
//
// btnHomeAdd3
//
this.btnHomeAdd3.Enabled = false;
this.btnHomeAdd3.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnHomeAdd3.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnHomeAdd3.Location = new System.Drawing.Point(82, 21);
this.btnHomeAdd3.Name = "btnHomeAdd3";
this.btnHomeAdd3.Size = new System.Drawing.Size(68, 52);
this.btnHomeAdd3.TabIndex = 29;
this.btnHomeAdd3.Text = "+3";
this.btnHomeAdd3.UseVisualStyleBackColor = true;
this.btnHomeAdd3.Click += new System.EventHandler(this.btnHomeAdd3_Click);
//
// btnHomeSub1
//
this.btnHomeSub1.Enabled = false;
this.btnHomeSub1.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnHomeSub1.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnHomeSub1.Location = new System.Drawing.Point(82, 79);
this.btnHomeSub1.Name = "btnHomeSub1";
this.btnHomeSub1.Size = new System.Drawing.Size(68, 52);
this.btnHomeSub1.TabIndex = 28;
this.btnHomeSub1.Text = "-1";
84
this.btnHomeSub1.UseVisualStyleBackColor = true;
this.btnHomeSub1.Click += new System.EventHandler(this.btnHomeSub1_Click);
//
// btnHomeAdd2
//
this.btnHomeAdd2.Enabled = false;
this.btnHomeAdd2.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnHomeAdd2.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnHomeAdd2.Location = new System.Drawing.Point(8, 79);
this.btnHomeAdd2.Name = "btnHomeAdd2";
this.btnHomeAdd2.Size = new System.Drawing.Size(68, 52);
this.btnHomeAdd2.TabIndex = 27;
this.btnHomeAdd2.Text = "+2";
this.btnHomeAdd2.UseVisualStyleBackColor = true;
this.btnHomeAdd2.Click += new System.EventHandler(this.btnHomeAdd2_Click);
//
// btnHomeAdd1
//
this.btnHomeAdd1.Enabled = false;
this.btnHomeAdd1.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnHomeAdd1.ForeColor = System.Drawing.SystemColors.ControlText;
this.btnHomeAdd1.Location = new System.Drawing.Point(8, 21);
this.btnHomeAdd1.Name = "btnHomeAdd1";
this.btnHomeAdd1.Size = new System.Drawing.Size(68, 52);
this.btnHomeAdd1.TabIndex = 26;
this.btnHomeAdd1.Text = "+1";
this.btnHomeAdd1.UseVisualStyleBackColor = true;
this.btnHomeAdd1.Click += new System.EventHandler(this.btnHomeAdd1_Click);
//
// frmScoreboard
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoSize = true;
this.BackColor = System.Drawing.Color.Blue;
this.ClientSize = new System.Drawing.Size(1008, 730);
this.ControlBox = false;
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.gbAwayTimeout);
this.Controls.Add(this.gbAyawFoul);
this.Controls.Add(this.gbAwayScore);
this.Controls.Add(this.gbHomeTimeout);
this.Controls.Add(this.gbHomeFoul);
this.Controls.Add(this.gbHomeScore);
85
this.Controls.Add(this.gbScoreBoard);
this.Controls.Add(this.lblScoreboard);
this.Controls.Add(this.msMenuBar);
this.MainMenuStrip = this.msMenuBar;
this.MaximumSize = new System.Drawing.Size(1024, 768);
this.MinimumSize = new System.Drawing.Size(1024, 766);
this.Name = "frmScoreboard";
this.Text = "SCOREBOARD";
this.Load += new System.EventHandler(this.frmScoreboard_Load);
this.gbScoreBoard.ResumeLayout(false);
this.gbScoreBoard.PerformLayout();
this.gbxTimer.ResumeLayout(false);
this.msMenuBar.ResumeLayout(false);
this.msMenuBar.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.gbAwayTimeout.ResumeLayout(false);
this.gbAyawFoul.ResumeLayout(false);
this.gbAwayScore.ResumeLayout(false);
this.gbHomeTimeout.ResumeLayout(false);
this.gbHomeFoul.ResumeLayout(false);
this.gbHomeScore.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lblScoreboard;
private System.Windows.Forms.GroupBox gbScoreBoard;
private System.Windows.Forms.Label lblAway;
private System.Windows.Forms.Label lblHomeName;
private System.Windows.Forms.Label lblPeriod;
private System.Windows.Forms.Label lblSC;
private System.Windows.Forms.GroupBox gbxTimer;
private System.Windows.Forms.Label lblColon;
private System.Windows.Forms.Label lblHF;
private System.Windows.Forms.Label lblHT;
private System.Windows.Forms.Label lblAF;
private System.Windows.Forms.Timer tmrTime;
private System.Windows.Forms.Label lblAT;
private System.Windows.Forms.Label lblHomeScore;
private System.Windows.Forms.Label lblAwayScore;
public System.Windows.Forms.Label lblTimerSC;
public System.Windows.Forms.Label lblTimerMinutes;
public System.Windows.Forms.Label lblTimerSeconds;
86
public System.Windows.Forms.Label lblATimeout;
public System.Windows.Forms.Label lblHTFouls;
private System.Windows.Forms.Label lblATFouls;
private System.Windows.Forms.Label lblHTimeout;
private System.Windows.Forms.MenuStrip msMenuBar;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem optionsToolStripMenuItem;
public System.Windows.Forms.Label lblPeriodNumber;
private System.IO.Ports.SerialPort serialPort1;
public System.Windows.Forms.Label lblMiliSeconds;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Button btnChangeTime;
private System.Windows.Forms.Button btnOptions;
private System.Windows.Forms.Button btnResetShotClock;
private System.Windows.Forms.GroupBox gbAwayTimeout;
private System.Windows.Forms.Button btnAwayTimeoutSub;
private System.Windows.Forms.Button btnAwayTimeoutAdd;
private System.Windows.Forms.GroupBox gbAyawFoul;
private System.Windows.Forms.Button btnAwayFoulSub;
private System.Windows.Forms.Button btnAwayFoulAdd;
private System.Windows.Forms.GroupBox gbAwayScore;
private System.Windows.Forms.Button btnAwayAdd3;
private System.Windows.Forms.Button btnAwaySub1;
private System.Windows.Forms.Button btnAwayAdd2;
private System.Windows.Forms.Button btnAwayAdd1;
private System.Windows.Forms.GroupBox gbHomeTimeout;
private System.Windows.Forms.Button btnHomeTimeoutSub;
private System.Windows.Forms.Button btnHomeTimeoutAdd;
private System.Windows.Forms.GroupBox gbHomeFoul;
private System.Windows.Forms.Button btnHomeFoulSub;
private System.Windows.Forms.Button btnHomeFoulAdd;
private System.Windows.Forms.GroupBox gbHomeScore;
private System.Windows.Forms.Button btnHomeAdd3;
private System.Windows.Forms.Button btnHomeSub1;
private System.Windows.Forms.Button btnHomeAdd2;
private System.Windows.Forms.Button btnHomeAdd1;
private System.Windows.Forms.Button btnPlay;
}
}
87
C# Program
Delay Program
namespace Delay
{
partial class frmMain
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise,
false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.gbCOMPort = new System.Windows.Forms.GroupBox();
this.cbCOMPort = new System.Windows.Forms.ComboBox();
this.btnSave = new System.Windows.Forms.Button();
this.lblCOMPort = new System.Windows.Forms.Label();
this.sp = new System.IO.Ports.SerialPort(this.components);
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.btnSendBytes = new System.Windows.Forms.Button();
this.lblEndTime = new System.Windows.Forms.Label();
this.lblStartTime = new System.Windows.Forms.Label();
this.txtEndTime = new System.Windows.Forms.TextBox();
this.txtStartTime = new System.Windows.Forms.TextBox();
88
this.gbCOMPort.SuspendLayout();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// gbCOMPort
//
this.gbCOMPort.Controls.Add(this.cbCOMPort);
this.gbCOMPort.Controls.Add(this.btnSave);
this.gbCOMPort.Controls.Add(this.lblCOMPort);
this.gbCOMPort.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.gbCOMPort.Location = new System.Drawing.Point(12, 12);
this.gbCOMPort.Name = "gbCOMPort";
this.gbCOMPort.Size = new System.Drawing.Size(560, 59);
this.gbCOMPort.TabIndex = 16;
this.gbCOMPort.TabStop = false;
this.gbCOMPort.Text = "COM Port Options";
//
// cbCOMPort
//
this.cbCOMPort.DropDownStyle =
System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbCOMPort.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbCOMPort.FormattingEnabled = true;
this.cbCOMPort.Items.AddRange(new object[] {
"24",
"30"});
this.cbCOMPort.Location = new System.Drawing.Point(208, 22);
this.cbCOMPort.Name = "cbCOMPort";
this.cbCOMPort.Size = new System.Drawing.Size(240, 24);
this.cbCOMPort.TabIndex = 0;
this.cbCOMPort.SelectedIndexChanged += new
System.EventHandler(this.cbCOMPort_SelectedIndexChanged);
//
// btnSave
//
this.btnSave.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnSave.Location = new System.Drawing.Point(454, 21);
this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(100, 24);
this.btnSave.TabIndex = 15;
this.btnSave.Text = "SAVE";
this.btnSave.UseVisualStyleBackColor = true;
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
89
//
// lblCOMPort
//
this.lblCOMPort.AutoSize = true;
this.lblCOMPort.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCOMPort.Location = new System.Drawing.Point(6, 25);
this.lblCOMPort.Name = "lblCOMPort";
this.lblCOMPort.Size = new System.Drawing.Size(196, 16);
this.lblCOMPort.TabIndex = 13;
this.lblCOMPort.Text = "What COM port should be used:";
this.lblCOMPort.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// sp
//
this.sp.DataReceived += new
System.IO.Ports.SerialDataReceivedEventHandler(this.sp_DataReceived);
//
// groupBox1
//
this.groupBox1.Controls.Add(this.btnSendBytes);
this.groupBox1.Controls.Add(this.lblEndTime);
this.groupBox1.Controls.Add(this.lblStartTime);
this.groupBox1.Controls.Add(this.txtEndTime);
this.groupBox1.Controls.Add(this.txtStartTime);
this.groupBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.groupBox1.Location = new System.Drawing.Point(12, 77);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(560, 89);
this.groupBox1.TabIndex = 17;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "COM Port Options";
//
// btnSendBytes
//
this.btnSendBytes.Enabled = false;
this.btnSendBytes.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnSendBytes.Location = new System.Drawing.Point(327, 19);
this.btnSendBytes.Name = "btnSendBytes";
this.btnSendBytes.Size = new System.Drawing.Size(227, 49);
this.btnSendBytes.TabIndex = 22;
this.btnSendBytes.Text = "SEND 5 BYTES TO ZIGBEE";
this.btnSendBytes.UseVisualStyleBackColor = true;
this.btnSendBytes.Click += new System.EventHandler(this.btnSendBytes_Click);
90
//
// lblEndTime
//
this.lblEndTime.AutoSize = true;
this.lblEndTime.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblEndTime.Location = new System.Drawing.Point(6, 52);
this.lblEndTime.Name = "lblEndTime";
this.lblEndTime.Size = new System.Drawing.Size(66, 16);
this.lblEndTime.TabIndex = 21;
this.lblEndTime.Text = "End Time";
this.lblEndTime.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lblStartTime
//
this.lblStartTime.AutoSize = true;
this.lblStartTime.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblStartTime.Location = new System.Drawing.Point(6, 24);
this.lblStartTime.Name = "lblStartTime";
this.lblStartTime.Size = new System.Drawing.Size(69, 16);
this.lblStartTime.TabIndex = 20;
this.lblStartTime.Text = "Start Time";
this.lblStartTime.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// txtEndTime
//
this.txtEndTime.Location = new System.Drawing.Point(81, 49);
this.txtEndTime.Name = "txtEndTime";
this.txtEndTime.ReadOnly = true;
this.txtEndTime.Size = new System.Drawing.Size(240, 22);
this.txtEndTime.TabIndex = 19;
//
// txtStartTime
//
this.txtStartTime.Location = new System.Drawing.Point(81, 21);
this.txtStartTime.Name = "txtStartTime";
this.txtStartTime.ReadOnly = true;
this.txtStartTime.Size = new System.Drawing.Size(240, 22);
this.txtStartTime.TabIndex = 18;
//
// frmMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(584, 179);
91
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.gbCOMPort);
this.Name = "frmMain";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Delay";
this.FormClosing += new
System.Windows.Forms.FormClosingEventHandler(this.frmMain_FormClosing);
this.Load += new System.EventHandler(this.frmMain_Load);
this.gbCOMPort.ResumeLayout(false);
this.gbCOMPort.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.GroupBox gbCOMPort;
public System.Windows.Forms.ComboBox cbCOMPort;
private System.Windows.Forms.Button btnSave;
private System.Windows.Forms.Label lblCOMPort;
private System.IO.Ports.SerialPort sp;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Button btnSendBytes;
private System.Windows.Forms.Label lblEndTime;
private System.Windows.Forms.Label lblStartTime;
private System.Windows.Forms.TextBox txtEndTime;
private System.Windows.Forms.TextBox txtStartTime;
}
}
92
Appendix D
Datasheet
93
94
95
96
97
98
99
100
101
102
103
104
105
106
Xbee Shield
Overview
The Xbee shield allows an Arduino board to communicate wirelessly using Zigbee. It is based on
the Xbee module from MaxStream. The module can communicate up to 100 feet indoors or 300
feet outdoors (with line-of-sight). It can be used as a serial/usb replacement or you can put it into
a command mode and configure it for a variety of broadcast and mesh networking options. The
shields breaks out each of the Xbee's pins to a through-hole solder pad. It also provides female
pin headers for use of digital pins 2 to 7 and the analog inputs, which are covered by the shield
(digital pins 8 to 13 are not obstructed by the shield, so you can use the headers on the board
itself).
The Xbee shield was created in collaboration with Libelium, who developed it for use in their
SquidBee motes (used for creating sensor networks).
107
Schematic
XbeeShieldSchematic.pdf (Eagle schematics and board layouts available from the Libelium
SquidBee wiki download page.)
Jumper Settings
The Xbee shield has two jumpers (the small removable plastic sleeves that each fit onto two of
the three pins labelled Xbee/USB). These determine how the Xbee's serial communication
connects to the serial communication between the microcontroller (ATmega8 or ATmega168)
and FTDI USB-to-serial chip on the Arduino board.
With the jumpers in the Xbee position (i.e. on the two pins towards the interior of the board), the
DOUT pin of the Xbee module is connected to the RX pin of the microcontroller; and DIN is
connected to TX. Note that the RX and TX pins of the microcontroller are still connected to the
TX and RX pins (respectively) of the FTDI chip - data sent from the microcontroller will be
transmitted to the computer via USB as well as being sent wirelessly by the Xbee module. The
microcontroller, however, will only be able to receive data from the Xbee module, not over USB
from the computer.
With the jumpers in the USB position (i.e. on the two pins nearest the edge of the board), the
DOUT pin the Xbee module is connected to the RX pin of the FTDI chip, and DIN on the Xbee
module is connected to the TX pin of the FTDI chip. This means that the Xbee module can
communicate directly with the computer - however, this only works if the microcontroller has
108
been removed from the Arduino board. If the microcontroller is left in the Arduino board, it will
be able to talk to the computer normally via USB, but neither the computer nor the
microcontroller will be able to talk to the Xbee module.
Networking
The Arduino XBee shield can be used with different XBee modules. The instructions below are
for the XBee 802.15.4 modules (sometimes called "Series 1" to distinguish them from the Series
2 modules, although "Series 1" doesn't appear in the official name or product description).
Addressing
There are multiple parameters that need to be configured correctly for two modules to talk to
each other (although with the default settings, all modules should be able to talk to each other).
They need to be on the same network, as set by the ID parameter (see "Configuration" below for
more details on the parameters). The modules need to be on the same channel, as set by the CH
parameter. Finally, a module's destination address (DH and DL parameters) determine which
modules on its network and channel will receive the data it transmits. This can happen in a few
ways:
•
If a module's DH is 0 and its DL is less than 0xFFFF (i.e. 16 bits), data transmitted by
that module will be received by any module whose 16-bit address MY parameter equals
DL.
109
•
If DH is 0 and DL equals 0xFFFF, the module's transmissions will be received by all
modules.
•
If DH is non-zero or DL is greater than 0xFFFF, the transmission will only be received
by the module whose serial number equals the transmitting module's destination address
(i.e. whose SH equals the transmitting module's DH and whose SL equals its DL).
Again, this address matching will only happen between modules on the same network and
channel. If two modules are on different networks or channels, they can't communicate
regardless of their addresses.
Configuration
Here are some of the more useful parameters for configuring your Xbee module. For step-bystep instructions on reading and writing them, see the guide to the Xbee shield. Make sure to
prepend AT to the parameter name when sending a command to the module (e.g. to read the ID
parameter, you should send the command ATID).
Command
Description
Valid Values
Default Value
ID
The network ID of the Xbee module.
0 - 0xFFFF
3332
CH
The channel of the Xbee module.
0x0B - 0x1A
0X0C
110
SH and
The serial number of the Xbee module (SH
0 - 0xFFFFFFFF different for each
SL
gives the high 32 bits, SL the low 32 bits).
(for both SH and module
Read-only.
SL)
MY
The 16-bit address of the module.
0 - 0xFFFF
DH and
The destination address for wireless
DL
BD
0
0 - 0xFFFFFFFF 0 (for both DH
communication (DH is the high 32 bits, DL the (for both DH and and DL)
low 32).
DL)
The baud rate used for serial communication
0 (1200 bps)
with the Arduino board or computer.
1 (2400 bps)
3 (9600 baud)
2 (4800 bps)
3 (9600 bps)
4 (19200 bps)
5 (38400 bps)
6 (57600 bps)
7 (115200 bps)
Note: although the valid and default values in the table above are written with a prefix of "0x" (to
indicate that they are hexadecimal numbers), the module will not include the "0x" when
reporting the value of a parameter, and you should omit it when setting values.
111
Here are a couple more useful commands for configuring the Xbee module (you'll need to
prepend AT to these too).
Command
Description
RE
Restore factory default settings (note that like
parameter changes, this is not permanent
unless followed by the WR command).
WR
Write newly configured parameter values to
non-volatile (long-term) storage. Otherwise,
they will only last until the module loses
power.
CN
Exit command mode now. (If you don't send
any commands to the module for a few
seconds, command mode will timeout and exit
even without a CN command.)
112