Download presentation
Presentation is loading. Please wait.
1
FunDuino Graduation Project Seminar:
“Microcontroller-based Wirelessly-Controlled Video Game System” Supervised by: Dr. Luai Malhis. Prepared by: Suad Seirafy. Fatima Zubaidi.
2
Outlines: Introduction Applications Hardware Progress Problems
Future Work Conclusion
3
Outlines: Introduction Applications Hardware Progress Problems
Future Work Conclusion
4
Wireless communication is becoming essential !
Introduction.. Trend*: Build systems that depend on tiny microcontrollers instead of large, complex computers. Wireless communication is becoming essential ! In Today’s world: the Video Game Industry is one of the largest and quickest growing industries.
5
Introduction.. Our Goal:
Build a video game system based on microcontrollers only, that allow the users to play wirelessly and compete with each other.
6
Wirelessly controlled Video Game System
So, What Do We Need?! Wirelessly controlled Video Game System “FUNDUINO”
7
Introduction.. What does FunDuino give?**
Interactive play (Competition). Multi-level games (Challenge). Portable system (Mobility). Colored images and clear sound (Fun).
8
Outlines: Introduction Applications Hardware Progress Problems
Future Work Conclusion
9
Applications.. First Game “ Asteroids”
We used existent demo from gameduino website and integrated it to our system. So we were able to play it on our microcontroller using user controller
10
Applications.. Second Game “ Pacman”
A multi-level, content-driven PacWoman game in which the player can design the maze of the game using a C# application, then he can choose a level from the levels menu and start playing.
11
Applications.. Second Application “ Frogger”
An interactive(2-players) game in which each player tries to move his frog from one side of the road to the other while avoiding obstacles with a certain number of lives, at the end there will be one winner.
12
Hardware…* Game overall system !
13
Hardware… User Controller Side
PIC18F4620
14
Hardware… User Controller Side
Accelerometer MMA7260Q (Tri-Ax breakout)
15
Hardware… User Controller Side
Flex sensor
16
Hardware… User Controller Side
XBEE 4214A S1 transceiver
17
Hardware… Game Main Side* soret el arduino
Main Microcontroller: ATmega328
18
Hardware… Game Main Side
XBEE receiver shield
19
Hardware… Game Main Side
Gameduino Adapter
20
What is Gameduino ? Gameduino is a game adapter for Arduino (or any other microcontroller with an SPI interface). It is controlled via SPI read/write operations Features : Outputs for a VGA monitor. Outputs for stereo speakers. Video output is 400x300 pixels in 512 colors. 256 characters, each with independent 4 color palette.
21
Progress.. Software Tools
PIC C Compiler: In the user controller side in order to write the C code for PIC18F4620 microcontroller and produce the hex file. Arduino0023 Compiler: In the main part to program the ATmega328 microcontroller. SPI and GD Libraries: helped us dealing with the gameduino. Gameduino Online Convertor Tool: To convert the backgrounds and the sprites used in the games to the corresponding header files.
22
The new technology …Gameduino !
Sprites graphics : The hardware always draws sprites in order, from lower-number to higher. Memory at FF (RAM_SPR) holds the control data for the 256 sprites. Each sprite is controlled by a 32-bit value: collision class (J or K) membership (bit 31). source image 0-63 (bits 25-30). Y coordinate (bits 24-16). palette select 0-15 (bits 12-15). rotation and flip 0-7 (bits 11-9) X coordinate (bits 8-0)
23
Gameduino Sound: The hardware sound is based on a system of additive synthesis. There are 64 independent voices : each voice generates a tone at a specific frequency. Each voice has a waveform select bit (sine vs noise), and left and right amplitude values
24
Gameduino Sprite collision detection:
The gameduino has special memory area that you can use to detect when sprites overlap. Gameduino keeps track of which pixels cover others, and writes the result into the collision RAM. Each byte in the collision RAM corresponds with the same ??? numbered.
25
Gameduino Sprite Rotate :
Each sprite has a 3-bit ROT field that applies a simple rotation and flip to the sprite image By using these in combination, the sprite image can be rotated.
26
1. PIC (User Controller side) reads sensors data from the ADC
Progress..System Flow 1. PIC (User Controller side) reads sensors data from the ADC
27
2. PIC sends the data (Using Tx and Rx) to the XBEE sender.
Progress..System Flow 2. PIC sends the data (Using Tx and Rx) to the XBEE sender.
28
3. XBEE Receiver (Game Controller Part) receives the data.
Progress..System Flow 3. XBEE Receiver (Game Controller Part) receives the data.
29
4. Arduino (main side) reads data from the XBEE.
Progress..System Flow 4. Arduino (main side) reads data from the XBEE.
30
5. Arduino communicates with the Gameduino using SPI operations.
Progress..System Flow 5. Arduino communicates with the Gameduino using SPI operations.
31
Progress…Games development
Sprite control Asteroids Pacman Frogger (2-players) Frogger (1-player) Pacman (multi-levels)
32
Progress.. Sprite control
First Step in gameduino world. control a simple sprite (up, down, left and right) via the user wireless controller by moving the accelerometer to the corresponding direction.
33
Progress.. Asteroids Integrate the user controller part with an existing demo from the gameduino.
34
Progress.. Pacman This our first complete game in the gameduino world.
35
Progress .. Pacman development
Designed all maze pieces using Photoshop and use them as sprites.
36
Progress .. Pacman development
Add Pacman sprite.* add another msakar tmo Add Pacman and ghosts sprites.
37
Progress .. Pacman development
Wrote the logic of the game which includes moving the Pacman depending on signals received from the user controller. random movement of ghosts. collision detection between Pacman and ghosts. score increasing depending on the pills eaten . refreshment of the background .
38
Pacman (multi-levels)
This is the second version for Pacman game. We developed it to be 3 levels, the levels are differs in: ghosts number complexity of the maze.
39
Frogger (1-player) This is our Seocnd Game. Frogger
40
Frogger development Brought an existing background image for Frogger game and converted it using online converter. Designed the rest of sprites and convert them also (homes, cars, ..) Design the logic of the game continues movement for some sprites. moving Frogger depending on signals received from the user controller. collision detection between Frogger and some sprites. scores calculation. lives calculation. refreshment of backgrounds and sprites
41
Frogger (2-players) This is the second version for Frogger game. Two players each one tries to reach the second side carefully and build more homes there. Each one has a score and limited number of lives.
42
Problems.. Thinking of a way to produce a high quality VGA output.
Getting Started with the gameduino world since the online resources are limited !. Arduino was not receiving any data using the regular XBEE shield because of the noise from the wires. The problem was solved just when we built our own shield for the receiver in a way that reduces the noise as much as possible.
43
Future Work.. As a future work for our project, we are thinking to develop it to become a content- driven game engine, also there is a plan to add SDCARD to the main controller in order to include huge gaming systems (a lot number of games with multi levels).
44
Thank You
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.