Difference between revisions of "F19: T-Rex Run!"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Parts List & Cost)
(Objectives & Introduction)
Line 12: Line 12:
  
 
== Objectives & Introduction ==
 
== Objectives & Introduction ==
Show list of your objectives. This section includes the high level details of your project. You can write about the various sensors or peripherals you used to get your project completed.
+
The primary objective of this project is to write efficient code to develop a game using FreeRTOS and SJTwo Board. SJTwo Boards act as the heart of the project which acts as the controller of the game which we primarily we test using onboard switch controlled with GPIO. The main objective which we are achieving with is to use the accelerometer sensor as a controlling aspect. The accelerometer sensor on the SJOne board which is connected via I2C is used to register the controller orientation and according to the orientation obtained by the sensor, game logic decides when to make dinosaur jump up. The obstacles are generated randomly and are moved from left to right on the LED matrix. If dinosaur collides with any of the obstacles its game over. The speed of obstacle movement increases as the levels goes up.
 +
 
 +
The project includes the following modules:
 +
 
 +
1. Controller: 1 SJTwo board is used as the controller. It wirelessly transmits orientation. 
 +
                                                                       
 +
2. Display Module: Adafruit 64x64 Led Matrix display is used to display the game. This is driven by the GPIO pins on the master SJOne Board.
 +
 
  
 
=== Team Members & Responsibilities ===
 
=== Team Members & Responsibilities ===
Line 35: Line 42:
 
**  Collision Detection.
 
**  Collision Detection.
 
**  Testing.
 
**  Testing.
 +
**  Wiki Page Updates.
  
 
== Schedule ==
 
== Schedule ==

Revision as of 23:28, 12 November 2019

T-Rex Run!

T-Rex Run

Abstract

T-Rex Run! game is an adaptation of popular chrome browser offline game in which the player steers a T-Rex dinosaur through increasingly dangerous landscapes to escape a tree of doom. The game uses simple pixel art and sound to replicate the style of 1980s arcade games. The player will be able to control the game by using switch buttons available on the Sjtwo-C microcontroller. The main goal behind the project is to understand the basics of graphics programming in the C language on a microcontroller.

Objectives & Introduction

The primary objective of this project is to write efficient code to develop a game using FreeRTOS and SJTwo Board. SJTwo Boards act as the heart of the project which acts as the controller of the game which we primarily we test using onboard switch controlled with GPIO. The main objective which we are achieving with is to use the accelerometer sensor as a controlling aspect. The accelerometer sensor on the SJOne board which is connected via I2C is used to register the controller orientation and according to the orientation obtained by the sensor, game logic decides when to make dinosaur jump up. The obstacles are generated randomly and are moved from left to right on the LED matrix. If dinosaur collides with any of the obstacles its game over. The speed of obstacle movement increases as the levels goes up.

The project includes the following modules:

1. Controller: 1 SJTwo board is used as the controller. It wirelessly transmits orientation.

2. Display Module: Adafruit 64x64 Led Matrix display is used to display the game. This is driven by the GPIO pins on the master SJOne Board.


Team Members & Responsibilities

  • Tina Ruchandani
    • Accelerometer Calibration & Control.
    • Software Design (Switch control and Obstacle Generation).
    • Wiki Page Updates.
  • Tushar Tarihalkar
    • LED Matrix Interface.
    • Wiki Page Updates.
    • PCB and Hardware Design
    • Software Design (Dinosaur Design and Control).
  • Wenyan He
    • Software Design (Switch control and Obstacle Generation).
    • LED Matrix Interface
    • Manage GitHub Account

Schedule

Week Date Task Status
1 10/08
  • T-Rex Run project proposal approved by instructor.
  • Completed
2 10/10
  • Project Wiki page creation.
  • Github Repository creation.
  • Create bill of materials.
  • Selection and ordering parts.
  • Completed.
3 10/15
  • Research on software development for the game.
  • Initial divide of project modules.
  • Assigning responsibility to each group member.
  • Completed.
4 10/29
  • Understand working of LED matrix.
  • Understand Accelerometer MMA8452Q data sheet.
  • Completed.
5 11/13
  • Start screen for Game on LED Matrix(Tushar)
  • Accelerometer Reading and Calibration(Tina & Wenyan)
  • Write basic LED display driver to blink individual pixels and set of pixels.(Mahesh)
  • In Progress.
6 11/19
  • Design and development of logic for Obstacle Generation.
  • Design and development of logic for Dinosaur Control using switch.
  • To Do.
7 11/26
  • PCB Design, Layout and Implementation.
  • Finalizing the schematic.
  • Initial testing of Game for proper flow.
  • To Do.
8 12/03
  • Wiki Update.
  • Soldering components and hardware testing on PCB
  • Packaging of hardware board and related components.
  • To Do.
8 12/10
  • Final Testing and Bug fixes
  • Complete Wiki Report.
  • To Do.
8 12/18
  • Final Demo
  • To Do.

Parts List & Cost

Part # Cost Source
SJ2 Board 1 $55.00 Preet
Adafruit RGB (32x32) LED Matrix Display 1 $74.95 Adafruit
5V/4A Power Adapter 1 $8.99 Amazon

Design & Implementation

The design section can go over your hardware and software design. Organize this section using sub-sections that go over your design and implementation.

Hardware Design

Discuss your hardware design here. Show detailed schematics, and the interface here.

Hardware Interface

In this section, you can describe how your hardware communicates, such as which BUSes used. You can discuss your driver implementation here, such that the Software Design section is isolated to talk about high level workings rather than inner working of your project.

Software Design

Show your software design. For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level. Do not show the details of the code. For example, do not show exact code, but you may show psuedocode and fragments of code. Keep in mind that you are showing DESIGN of your software, not the inner workings of it.

Implementation

This section includes implementation, but again, not the details, just the high level. For example, you can list the steps it takes to communicate over a sensor, or the steps needed to write a page of memory onto SPI Flash. You can include sub-sections for each of your component implementation.

Testing & Technical Challenges

Describe the challenges of your project. What advise would you give yourself or someone else if your project can be started from scratch again? Make a smooth transition to testing section and described what it took to test your project.

Include sub-sections that list out a problem and solution, such as:

Bug/issue name

Discuss the issue and resolution.

Conclusion

Conclude your project here. You can recap your testing and problems. You should address the "so what" part here to indicate what you ultimately learnt from this project. How has this project increased your knowledge?

Project Video

Upload a video of your project and post the link here.

Project Source Code

References

Acknowledgement

Any acknowledgement that you may wish to provide can be included here.

References Used

List any references used in project.

Appendix

You can list the references you used.