1 / 44

FunDuino

Graduation Project Seminar:. FunDuino. “Microcontroller-based Wirelessly-Controlled Video Game System”. Supervised by: Dr. Luai Malhis. Prepared by: Suad Seirafy. Fatima Zubaidi. Outlines:. Introduction Applications Hardware Progress Problems Future Work Conclusion. Outlines:.

dahlia
Download Presentation

FunDuino

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Graduation Project Seminar: FunDuino “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. 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. 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 3000-37FF (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 0-511 (bits 24-16). • palette select 0-15 (bits 12-15). • rotation and flip 0-7 (bits 11-9) • X coordinate 0-511 (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. Progress..System Flow 1. PIC (User Controller side) reads sensors data from the ADC

  27. Progress..System Flow 2. PIC sends the data (Using Tx and Rx) to the XBEE sender.

  28. Progress..System Flow 3. XBEE Receiver (Game Controller Part) receives the data.

  29. Progress..System Flow 4. Arduino (main side) reads data from the XBEE.

  30. 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 wirelesscontroller 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 .. Pacmandevelopment • Designed all maze pieces using Photoshop and use them as sprites.

  36. Progress .. Pacmandevelopment • Add Pacman sprite.* add another msakartmo • Add Pacman and ghosts sprites.

  37. Progress .. Pacmandevelopment • 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

More Related