20101209_ELEC254_Project_Report_Group_2
Shared by: liamei12345
-
Stats
- views:
- 4
- posted:
- 10/22/2011
- language:
- English
- pages:
- 22
Document Sample


12/9/2010
Project Report
Group #2
G-Hockey
HKUST
ECE
ELEC254 MICROELECTRONIC EXPERIMENTS
WANG Wei Liao Jiaqing Jin Ming
07610880 07596058 08583151
ee_wwxad ee_ljq ee_jmx
ELEC254 Project Report Group #2 G-Hockey
Table of Contents
1 Abstract .............................................................................................................. 2
2 Introduction......................................................................................................... 2
3 Overall Description ............................................................................................... 3
3.1 Setup Instructions ....................................................................................... 3
3.2 Operating Instructions.................................................................................. 3
3.3 Game Flow and Functionalities ...................................................................... 3
3.4 Control Configuration ................................................................................... 6
3.5 Limitations .................................................................................................. 7
4 Hardware Implementation ..................................................................................... 8
4.1 Hardware Overview ..................................................................................... 8
4.2 Component Breakdown ................................................................................ 8
4.3 System Block Diagram ................................................................................. 9
4.4 Principle of operations .................................................................................. 9
4.5 Picture of Motherboard Circuit ..................................................................... 12
4.6 System Schematic ..................................................................................... 13
5 Software Implementation: ................................................................................... 13
5.1 Software Overview .................................................................................... 13
5.2 Introduction to Keil C ................................................................................. 14
5.3 General descriptions of major functions ........................................................ 14
6 Problems encountered and solutions ..................................................................... 18
7 Conclusion and Future Improvement ..................................................................... 18
8 Appendix A – Links ............................................................................................. 19
9 Appendix B – Project Expense .............................................................................. 20
10 Appendix C – Contacts ..................................................................................... 21
11 Appendix D - Source Code ................................................................................ 21
Page 1 of 22
ELEC254 Project Report Group #2 G-Hockey
1 Abstract
ELEC254 - Microprocessor Experiments is one of the most interesting courses in the ECE
department. It brings us into the new region of computer controlled world and allows us to
make the ideas that we have been conceiving for a long time into reality. It is a course mixed
with knowledge of digital circuits (ELEC151/152), analog circuits (ELEC102/202/304), as well
as computer programming (Assembly/C). We cherish this unique opportunity for us to build a
project that can integrate all the knowledge we learned.
We came up with the G-Hockey game because it is both interesting and challenging. As far as
we know, this kind of real-time decision and control is very difficult in 8051 and it is even more
difficult to bring a good gaming experience for the players. To achieve that, we decided to use
only gamepads with accelerometers attached on it as inputs, and all the selections and move
in the game is controlled by tilting the gamepad in different angles. As a result we did not
include any button in the system. Moreover, we included a speaker to play sound effects to
bring more fun. In the software, we map 128*64 pixels of the LCD into 1024*512 coordinates
into the memory, allowing the smooth movement of the ball and reducing the jumping
phenomena into minimum.
Much more efforts have been made to improve the detail of the project and finally we
successfully demonstrate our abilities. The training we have gone through in the ELEC254
course is invaluable for us as Electronic Engineers and all of us feel the happiness of learning
and improving.
2 Introduction
Air hockey is a popular cell-phone mini-game. Inspired by Wii and iPhone games, we came up
with a purely motion controlled hockey game which could add more fun than the original one.
We call it G-Hockey.
The game is about bouncing a ball with a bat into opponent’s gate. It is a simple but
challenging practice as the player needs to follow the ball’s movement, anticipate the bouncing
against bats or walls and react to opponent’s action at the same time.
With our system, players can use game pads to control the movement of bats or select items
in menus. One LCD of resolution 128*64 pixels shows the progress of the game along with
welcome screen and menus, and a second LCD will light up when two player are playing in the
“Dual Mode”. Also, a speaker provides sound effects accordingly during the game.
The game supports both single-player and dual modes. In single-player mode, player can play
under 4 difficulties (practice, normal, hard and lonely) against different levels of AIs. In dual
mode, two human players can compete against each other. The game is designed with lots of
features such as real time display, various game modes and AI, game menu, pure motion
control as well as complex graphic and sound effects. All these features add to an
all-in-one-pack game that aims to offer players enjoyable gaming experiences.
Page 2 of 22
ELEC254 Project Report Group #2 G-Hockey
3 Overall Description
3.1 Setup Instructions
Connect the 8051 emulator to the circuit.
Other components should have already been built on the breadboard, including (i)
ADC (ii) G-Sensors (iii) LCD (iv) the speaker, etc.
Connect the Power/Ground cable to the 5V and ground of the power supply
respectively
Build and run the program in MedWin.
Enjoy.
3.2 Operating Instructions
When the game starts, you should expect to see a start-up welcome screen, which will flicker
several times and then turns into mode selection window.
In the mode selection window, one can use the game bar to move the cursor back and forth the
options. There are several modes for selection, including Single Player mode with difficulty
level selection and Double Player mode.
After selecting the Play mode, one should be able to enter the play field. The play field is made
up of a pair of bats, goals and a ball. To control the bat to move up/down, left/right, one needs
to adjust the game handle bar by tilting it in the corresponding direction. Note that we have
several velocity levels to control, one should adjust quickly enough to get desired velocity.
3.3 Game Flow and Functionalities
Welcome Screen
When the game starts, you should expect to see a start-up
welcome screen, which will flicker several times and then
turns into mode selection window.
Page 3 of 22
ELEC254 Project Report Group #2 G-Hockey
Main Menu
In the mode selection window, one can use the game bar to
move the cursor back and forth the options. There are
several modes for selection, including Single Player mode
with difficulty level selection and Double Player mode.
One needs to rotate the controller in the up, down direction
to move the curse and rote it right to confirm. Confirmation
progress bar will be displayed on the lower left (shown in the
next image) to prevent accidental selection. Other menu
selections work this way too.
Difficulty Selection If one selects the Single Player mode, there are four
difficulties to select.
Practise mode allows the player to get familiar with the
control of the game. There is no goal in this mode.
Easy and Normal modes have different AIs to compete with
the player.
In Lonely mode, the opponent will always catch the ball,
which means one can never beat the AI.
One can go back to main menu by rotating the controller left.
Kick Off
After one game mode is selected, the player needs to wait
for the whistle, which is the third high-pitch beep sound
played by the speaker. Then one should be able to enter the
play field.
The play field is made up of a pair of bats, goals and a ball.
Play Field The player needs to try to use his bat to bounce the ball into
opponent’s gate and prevent the ball from entering his goal.
To make the ball harder to catch, one should accelerate the
ball by moving up the bat against the incoming ball. The
faster the bat is, the faster the ball will be accelerated. The
pace of the competition will get faster when the ball is
accelerated several times by the bats.
Page 4 of 22
ELEC254 Project Report Group #2 G-Hockey
With motion control, the game can become quite exciting. To
add more spice, game sound effect is added. Each bounce
against a bat or a wall will be accompanied by a beep from
the speaker.
Scoreboard
If a goal is achieved, a goal screen will be displayed to show
the score. Then it will resume to play field.
Quit Menu
Select “No” to resume and “Yes”to go back to main menu.
Double Player Mode
After one enters double player “Dual”mode, the other LCD
(red) will be lighted for the joining player.
Page 5 of 22
ELEC254 Project Report Group #2 G-Hockey
3.4 Control Configuration
To control the bat to move or accelerate up/down, left/right, one needs to adjust the game
handle bar by tilting it in the corresponding direction. Note that we have several velocity levels
to control, one should adjust quickly enough to get desired velocity.
Game Bat Control Demonstration
Tilt up, cursor up Tilt, cursor down
Tilt left, go back to main menu Tilt right, confirm selection
(in single player menu) or moving to the right
If one tries to quit the current game, he should keep the controller still for 3 seconds. Then the
quit/resume menu will appear.
Page 6 of 22
ELEC254 Project Report Group #2 G-Hockey
Dual Mode Demostration
3.5 Limitations
Due to the processing power of 8051 and the limitation of the serial LCD we choose, the
refreshing rate is limited, leading to the flashing of the screen. These may be overcome by
choosing better MCU and parallel LCD.
The game bat displayed on the screen may fade for a short amount of time when the ball
is close. This is due to the LCD is divided into 8 pages and each time we write the data we
have to write a page, i.e. a column of 8 pixels. If the ball is close to the bat, when we write
the ball, we may erase some part of the bat and vice versa, so it becomes fade. One way
to solve this is to write specific functions to deal with this situation, but the algorithm is
very complicated and due to lack of time we did not take that.
The analog output of the accelerometers is from 1.3V to 1.9V. But the ADC we use can
sense 0-5V, which means we only utilized a little portion of the ADC and it results in lower
resolution. We may build a linear amplifier to map the 1.3V-1.9V output to 0-5V.
There is no circuit protector in our system. Once we connect the Vcc and Gnd wrongly, we
risk burning the chips. This happened twice when we burned one accelerometer and one
LCD. A simple device can prevent it from happen again, but due to time limitations, we did
not add the component.
Page 7 of 22
ELEC254 Project Report Group #2 G-Hockey
4 Hardware Implementation
4.1 Hardware Overview
G-Hockey is a game that demands flexible user control and entertaining game display.
Inspired by the popular mobile phone game Squash, which senses the tilt of screen to control
the racket, we decided to use the G-sensor MMA7260 to create a better user experience. The
output of G-sensor is then fed into ADC0804, which is configured to have a flexible span. The
8 bits output, together with those of other 2 counterparts, is subsequently selected by MUX
CD4051BE and eventually input to 8051 for processing.
The LCD SSH_12864 we use is of size 64*128 pixels, a resolution sufficient for G-hockey
display. It is of a different type from the one we used in lab in many aspects: (i) It doesn’t
support ASCII code and requires establishment of user’s own character database (ii) the
screen is divided into 8 pages, each of which has 128 columns of 8 bits (iii) it utilizes serial data
bus rather than parallel data bus.
In order to make G-Hockey support multi-player mode, we build another set of inputs and
outputs circuit to interact with each other. The central processing unit is the “all-powerful”
8051, whose software is of great complexity and will be introduced later.
4.2 Component Breakdown
Item Model Specification Quantity Description
MCU Emulator 1 8052
LCD Screen SSH12864 128*64pixels 2 For displaying the game
Speaker 1 To play sound effect
Variable
1 To adjust the volume of the speaker
resistor
Triple cascade configuration to drive
NPN transistor 2N2222 3
the speaker
To sense the motion of the two game
Accelerometer MMA7260QT 3-axis 2
bats
To direct one analog input from
Analog MUX CD4051 8-channel 1
accelerometers to the ADC at a time
Convert the analog signal of the
ADC ADC0804 8-bit 1 accelerometer input to digital value to
be read by 8051
R=10kohm, oscillator for the ADC
RC oscillator
C=150pF
Resistors
10k ohm 8 in series 1 Pull-up resistors for port0 of 8051
Network
Page 8 of 22
ELEC254 Project Report Group #2 G-Hockey
4.3 System Block Diagram
4.4 Principle of operations
a) Accelerometer
The model of accelerometer we are using is MMA7260QT. It has 3 analog output: x,y,z,
sensing the acceleration in the horizontal x, horizontal y, and vertical z direction respectively.
As long as we configure the pins correctly, the accelerometer will work by itself without any
instructions from the MCU. The analog output of x port ranges from 1.35V to 1.95V, the y port
ranges from 1.3V to 1.9V. Each value corresponds to a particular tilting angle in that direction,
so by reading the value through an ADC, we can know the orientation of the game bat and
control the game accordingly.
Notice it has also got an on-chip 3.3V regulator that we did not use.
Page 9 of 22
ELEC254 Project Report Group #2 G-Hockey
b) Analog-to-digital converter ADC0804
The ADC we use to convert the analog signal from the accelerometer output to 8-bit digital
signal is the same as we have used in the Lab. The interface is the same as the Lab so we omit
the details here.
c) Analog MUX CD4051
Because each accelerometer will output two analog signals, we need to read 4 analog signals
in total. This means we need 4 ADCs to do the conversion, which may make the circuit very
complicated and error-prone. So after considering the problem carefully, we found that
although we are dealing some real time input, since the output frame rate is somehow limited
by our MCU (around 20fps), it is possible for us to just read these 4 signals in series. This is
why we need the CD4051, we need to control direct only one analog signal to the ADC at a
time.
The configuration of CD4051 is also very simple as below.
Page 10 of 22
ELEC254 Project Report Group #2 G-Hockey
d) LCD Screen
To display the game, we use two LCDs (Model: SH12864) of resolution 128*64 pixels. The one
with blue backlight is the main display, while the one with red backlight is the secondary
display, which will only light up when in “Dual-Mode”.
Notice that to save pin count, the LCDs we use are serial input LCD with only 9 pins. They are:
CS’, RES, A0, SCK, SDI, VDD, GND, RED’, and BLUE’. For simplicity, we can just connect CS’=0,
VDD=5V, GND=0V, BLUE=0 (Blue backlight). What remains are only 4 pins, RES, A0, SCK,
SDI. Their functions are as follows:
RES: reset
A0: 0=Data, 1=Command
SCK: serial clock input. The LCD will read the data on “SDI” when SCK=0->1
SDI: serial data input
For details please refer to the datasheet.
e) Speaker and Driver
To make the game more interesting, we want to include sound effect as well. So a speaker and
its driver circuit are connected to the MCU. The driver circuit consists of 3 NPN transistors in
cascade configuration, and the MCU control signal P3.7 (outputting a square wave) is apply to
the base of the 3rd NPN transistor. So we can amplify the current from the MCU by around
beta^3, that is around 60dB, which is large enough to drive the speaker.
Page 11 of 22
ELEC254 Project Report Group #2 G-Hockey
4.5 Picture of Motherboard Circuit
Page 12 of 22
ELEC254 Project Report Group #2 G-Hockey
4.6 System Schematic
5 Software Implementation:
5.1 Software Overview
The software of G-hockey includes:
(i) game rule and implementation
(ii) LCD display algorithm
(iii) control and coordination of other pertinent ICs
Page 13 of 22
ELEC254 Project Report Group #2 G-Hockey
The game rule and implementation part is responsible for (i) no-collision situation, (ii)
detection of ball-bat, ball-border, bat-border collision and update of position/velocity
information, (iii) goal-detection.
The LCD display software deals with start-up welcome screen, display of ball, bats and field,
and display of game results and refresh screen with updated information.
The software that controls and coordinates other ICs is responsible for processing inputs from
G-sensors and coordinating other ICs.
5.2 Introduction to Keil C
Keil is a free accessed software that enables software to be implemented in C language rather
than assembly language. Besides abiding by the conventions all C programming, programmers
should also take the hardware restrictions into consideration. In order to run Keil on the
computer in 3115, one needs to:
1. Download Keil and save it in D disk, which is accessible, though with very limited
authority
2. Open Medwin. Change the complier settings, choose using “External Compliers”.
Locate the source file of Keil to be the compiler, linker and assembler, INC and LIB.
3. Build the C program and it can be run on the emulator
5.3 General descriptions of major functions
a) Main
The main function consists of two parts: one is for debugging and the other is for playing.
Debugging functions can be open or closed using the syntax:
#ifdef A
// some code
#endif
Page 14 of 22
ELEC254 Project Report Group #2 G-Hockey
The play part is made up of 3 nested while loops, with the outer one infinitely looping, and the
other two able to be broken out when necessary.
void main(void)
{
while() //infinite loop
{
show_menu()
while() //play g-hockey
{
}
while() //quit function. also indicate in the next while loop if {
show_menu() // when user quits the game or continue playing(when user doesn’t want to
quit
}
}
}
b) player_selection
The function “player_selection” is used to display the menu.
Player Two is responsible for deciding which mode is going to play. Here are some brief
descriptions of the use of variables in implementing flow chart as shown above.
Page 15 of 22
ELEC254 Project Report Group #2 G-Hockey
Data Type Variable Name Description
position of cursor used to make selection, controlled by
short selection_position
the main player
which page is going to be displayed, either the “Play
short selection_page mode selection mode” page or “difficulty selection”
page.
controls the loading bar when the main player makes
short cumulative_confirm decision about going to single/dual mode and difficulty
levels in single mode page.
void player_selection()
{
while(1)
{
if(selection_page==0)
{
}// end selection_page==0
else if(selection_page==1)
{
break when conditions are met
} // end selection page 1
Decision about which page to go, page 0 /page 1/dual mode
} //end of while loop
}
c) display_game
This is really the hardcore of our project, as we need to deal with the display conventions of
LCD. The LCD we use in the project divides the screen into 8 pages, with each page having 128
columns of 8 bits, and the total resolution is 64*128. In order to display a byte vertically, i.e.
column-wise from one of the 128 columns on LCD, starting from arbitary location, we
introduced the function. Whenever we want to display a byte vertically, we first set the position
of cursor, then we write the data at that location. This makes our life much easier.
void set_cursor(uchar page, uchar column)
{
//set the cursor of the LCD
uchar msb,lsb;
//get page
Write_Command(0xb0+page);
// set column
msb=(column)>>4;
Write_Command(0x10+msb);
lsb=(column)%16;
Write_Command(0x00+ lsb);
}
The simplest case is there is no overlap among the ball, bats and field border. In this case, both
a ball and a bat may span two pages. We just need to locate the center of the ball and bat and
shift the dot representation and get the upper_page part and lower_page part of the object
Page 16 of 22
ELEC254 Project Report Group #2 G-Hockey
Things get complicated when the ball and bat have something common in one page. After we
know that the ball and bat have overlap in one page, we first display the two bats without
considering the presence of the ball. Then, when we display the ball, we do OR operation on the
dot representation to make sure that each part can be displayed properly.
In the display_game function, we also deal with clearing of previous frame, but on an object
base. When the ball is updated, we clear the previous position of the ball and write a new one.
The same applies for the bats.
d) update function
We do the followings in the update function:
(i) detection of ball-bat collision
(ii) detection of ball-border collision
(iii) update of positions and velocity of ball and bats
(iv) goal detection
One thing to notice is that in order to increase the precision of velocity and positions, we
enlarge the initial resolution by adding 3 more bits to both horizontal and vertical resolution,
i.e. ball_x_lcd=ball_x>>3.
When a ball-bat collision occurs, we keep the tangential velocity intact and change the normal
velocity by reverse the sign and add the velocity of the other object in collision.
After all the update of velocity and positions, we will perform sanity check to make sure none
of the ball and bats has invalid velocity or positions.
e) Sanity Check
Basically, we want to make sure that all the objects are valid in positions. If any one is violated,
then it’s truncated to the nearest boundary.
if (ball_y<=0) ball_y=0;
if (ball_y>=512) ball_y=512;
if (ball_x>=1024) ball_x=1024;
if (ball_x<=0) ball_x=0;
//Since we have enlarged the resolution by 8, in reality, 512 is the 64th position in LCD display.
//Sanity check for bat:
if (bat1_y<BAT1_Y_UP_BOUND) bat1_y=BAT1_Y_UP_BOUND;
if (bat1_y>BAT1_Y_DOWN_BOUND) bat1_y=BAT1_Y_DOWN_BOUND;
if (bat1_x>BAT1_X_RIGHT_BOUND) bat1_x=BAT1_X_RIGHT_BOUND;
if (bat1_x<=BAT1_X_LEFT_BOUND) bat1_x=BAT1_X_LEFT_BOUND;
Page 17 of 22
ELEC254 Project Report Group #2 G-Hockey
6 Problems encountered and solutions
In order to achieve our objectives and create a better user experience, we need to solve
problems of software and hardware.
Software problems include:
(i) Real time LCD display of ball, bats and border field, as we always need to deal with
column transition and page transition, overlay of two objects and update of
positions
(ii) Collision detection and handling
(iii) A bug that the ball can go through the bat if at high velocity.
The solutions are:
(i) Write a complicated algorithm of display function
(ii) Update function to detect and update positions of balls after collision
(iii) Limitations on the highest velocity, which will be further elaborated in the software
implementation part.
Hardware problems include:
(i) Limited number of pins on 8051
(ii) Real time digitization of input signals
(iii) Synchronization of two LCDs.
The problems are solved by:
(i) Add an analog MUX CD4051BE to multiplex inputs from two players, and exploring
pin0
(ii) Use ADC0804 to digitize inputs from accelerometers and process the data in 8051
(iii) Write unconventional “write_command” and “write_data” functions that drive and
synchronize the two LCDs, and connect lines smartly. More elaborations can be
found in the hardware implementation part.
7 Conclusion and Future Improvement
The project G-hockey is an integration of programming skills, knowledge of hardware and
improvement of user experiences. The program involves many finite states that are
implemented by nested “if” loops and “while” loops. It also deals with exceptions by sanity
check and constraint setting on variables. Different hardware components were utilized to
fulfill requirements. Important modules include LCDs, accelerometer, ADC, Analog MUX and
Speaker. They are interconnected to create a superb user experience. We also take the
integrity of game into consideration by adding menu selection, quit functions and artificial
intelligence features. All of these cannot be achieved without dedicated efforts, continuing
passion and effective teamwork.
Page 18 of 22
ELEC254 Project Report Group #2 G-Hockey
That being said, there is room for improvement. First, display algorithms can be modified to
lessen the effects of fading when the ball is moving at a high speed. One can look into the delay
between each frame, and the write and clear timing of the moving ball to tackle the problem.
Second, more features can be added to enhance the user experience, such as trophy sound,
“super-ball mode” when the ball appears unstoppable, and replace the control of bats from
game handle to biosignals. They can be achieved by increasing more functionality in programs
and interdisplinary application of knowledge. Third, a prototype can be built based on the
circuit on breadboard to enhance the portability and user-friendliness. As one of the selected
model projects, we are encouraged to prototype the game on a PCB board, which is both a
challenge and reward for us.
All in all, we’d like to thank all the people who helped us to finish the project and supported us
along the way. All of our teammates were diligent and highly-devoted to the project. Finally,
we would like to express our gratitude to Prof. Tim Woo, Fox and Li Shenghong for their
instructions and advice.
8 Appendix A – Links
Original Proposal
https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B1USbzW2L9T1N
TQ4NGVhYjctMzgyMS00MzQ1LTk3NGMtNzFjM2RkMzBmZDY3&hl=en
Summary Document
https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B1USbzW2L9T1M
mEwOTI2YjQtYWU3MS00NDllLWJhM2MtZTJlNWNjYjQ3NDhj&hl=en
Datasheet
8051 Microcontroller
http://www.datasheetcatalog.org/datasheets2/10/1046235_1.pdf
SSH_12864 128*64pixels LCD display:
https://docs.google.com/leaf?id=0B1USbzW2L9T1Yzk4MTU2ZjctOWVjMy00NmUyLWEyNGYt
ZjU2ODA4MTNjNTZj&sort=name&layout=list&pid=0B1USbzW2L9T1YmJmYjkxYTAtZjAzZi00
YTk4LTlmOWQtMDUzY2FkNTkzYzUx&cindex=8
MMA7260QT Accelerometer:
https://docs.google.com/leaf?id=0B1USbzW2L9T1NjU4NTY1ZmItZmZjOC00NmIwLTkxMjgtO
TBkMjhmOWRlZDU3&sort=name&layout=list&pid=0B1USbzW2L9T1YmJmYjkxYTAtZjAzZi00
YTk4LTlmOWQtMDUzY2FkNTkzYzUx&cindex=7
CD4051 Analog MUX
Page 19 of 22
ELEC254 Project Report Group #2 G-Hockey
https://docs.google.com/leaf?id=0B1USbzW2L9T1NDFhOTMxMmEtNWUzNC00MDRkLWE5ZT
MtYTgxZDdhYjE1Y2Zl&sort=name&layout=list&pid=0B1USbzW2L9T1YmJmYjkxYTAtZjAzZi0
0YTk4LTlmOWQtMDUzY2FkNTkzYzUx&cindex=2
ADC0804 Analog-Digital Converter
http://www.datasheetcatalog.org/datasheet/nationalsemiconductor/DS005671.PDF
Picasa Album
http://picasaweb.google.com/talentjinming/Elec254?authkey=Gv1sRgCOPC-LS1orCmtgE&fe
at=email#
Video
part1:
http://www.youtube.com/watch?v=YFNB3CeVtic
part2:
http://www.youtube.com/watch?v=6xpj1tWxMR8
9 Appendix B – Project Expense
Component Quantity Total Price Place of purchase
LCD 12864 4 180CNY Taobao
Big LCD 1 200HKD Second Hand
Accelerometer 4 118.5CNY Taobao
Bread Board 2 2.4CNY Taobao
Speaker 2 20HKD SSP
CD4051 5 4.5CNY Taobao
8052 3 40HKD Taobao+SSP
ADC0804 3 45HKD LAB
NPN 4 4HKD LAB
Variable Resistor 1 1HKD LAB
Switches 2 5HKD SSP
Buttons 4 5HKD SSP
Wires 5HKD SSP
Multimeter 1 20HKD SSP
Commute Expense 20HKD
TOTAL 705HKD
Page 20 of 22
ELEC254 Project Report Group #2 G-Hockey
10 Appendix C – Contacts
Andy Liao Jiaqing Stephen WANG Wei Jin Ming
iverliao@gmail.com iamstephenwang@gmail.com talentjinming@gmail.com
11 Appendix D - Source Code
Disclaimer
This code can only be used for learning purpose. Any distribution or
modification without the owner’s consent is not justified.
<THE LINK>
https://docs.google.com/leaf?id=0B1USbzW2L9T1MzM1OGIyOTQtNDk4My00NDIz
LTkwOTYtZjU0ZDg0ODNlMTBm&hl=en
Page 21 of 22
Get documents about "