<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://socialledge.com/sjsu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Proj+user10</id>
		<title>Embedded Systems Learning Academy - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://socialledge.com/sjsu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Proj+user10"/>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php/Special:Contributions/Proj_user10"/>
		<updated>2026-04-08T11:02:07Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.1</generator>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72949</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72949"/>
				<updated>2024-12-22T22:16:47Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Project Source Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Untitled_Project_V3.gif|thumb|330px|Start Button Press]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:setup1.jpg|thumb|330px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ==&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
SD Card and Aux Cable&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Archi.jpg|thumb|none|centre|800x800px|Hardware block diagram]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Software_1.jpg|left|state machine diagram]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
Game Logic State Machine&lt;br /&gt;
The game logic follows a state machine with multiple states. Below is a detailed flow of states.&lt;br /&gt;
&lt;br /&gt;
START_SCREEN: Initially, the game is in the START_SCREEN state. Pressing any button during this state transitions the game to the GAME_START state.&lt;br /&gt;
&lt;br /&gt;
GAME_START: This state activates the gameplay screen where the game officially begins. The player's score starts from zero. The player can move around to avoid obstacles. If the player touches an obstacle, the game moves to the UPDATE_LIVES state. If no button is pressed, it remains in this state until an obstacle is encountered or the timer runs out.&lt;br /&gt;
&lt;br /&gt;
UPDATE_LIVES: In this state, the player’s lives are decremented due to a collision with an obstacle. If the player has remaining lives, the game returns to the GAME_START state to continue playing. If no lives remain, the game transitions to the GAME_OVER state.&lt;br /&gt;
&lt;br /&gt;
GAME_OVER: This state is triggered when the player's lives are depleted or the game timer reaches zero. The gameplay stops, and the game over screen is displayed along with the final score. From here, pressing the start button restarts the game, sending it back to the START_SCREEN state.&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
&lt;br /&gt;
'''Problem:''' The LED matrix display was experiencing flickering because the refresh rate was too low, causing visible delays in row/column updates. This resulted in an unstable display where LEDs appeared to blink or stutter instead of showing a smooth image.&lt;br /&gt;
&lt;br /&gt;
'''Solution:''' We addressed the flickering issue in the display by optimizing the duty cycle through several key strategies. First, we increased the refresh rate to ensure that the rows and columns of the display are updated at a high frequency, specifically above 60 Hz. This rapid updating helps to stabilize the image. Next, we balanced the ON/OFF time of each row and column to maintain consistent brightness across the display. Finally, we implemented precise timing control by fine-tuning the delays and synchronization within the microcontroller code. This adjustment helps avoid any overlap or skipped updates, thereby reducing flicker and enhancing the visual smoothness of the display.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/sivaprasad6132/240/-/tree/survival_dodge?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
* [http://elm-chan.org/fsw/ff/00index_e.html FatFs Filesystem Module]&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72944</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72944"/>
				<updated>2024-12-22T22:10:40Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Design &amp;amp; Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Untitled_Project_V3.gif|thumb|330px|Start Button Press]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:setup1.jpg|thumb|330px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ==&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
SD Card and Aux Cable&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Archi.jpg|thumb|none|centre|800x800px|Hardware block diagram]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Software_1.jpg|left|state machine diagram]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
Game Logic State Machine&lt;br /&gt;
The game logic follows a state machine with multiple states. Below is a detailed flow of states.&lt;br /&gt;
&lt;br /&gt;
START_SCREEN: Initially, the game is in the START_SCREEN state. Pressing any button during this state transitions the game to the GAME_START state.&lt;br /&gt;
&lt;br /&gt;
GAME_START: This state activates the gameplay screen where the game officially begins. The player's score starts from zero. The player can move around to avoid obstacles. If the player touches an obstacle, the game moves to the UPDATE_LIVES state. If no button is pressed, it remains in this state until an obstacle is encountered or the timer runs out.&lt;br /&gt;
&lt;br /&gt;
UPDATE_LIVES: In this state, the player’s lives are decremented due to a collision with an obstacle. If the player has remaining lives, the game returns to the GAME_START state to continue playing. If no lives remain, the game transitions to the GAME_OVER state.&lt;br /&gt;
&lt;br /&gt;
GAME_OVER: This state is triggered when the player's lives are depleted or the game timer reaches zero. The gameplay stops, and the game over screen is displayed along with the final score. From here, pressing the start button restarts the game, sending it back to the START_SCREEN state.&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
&lt;br /&gt;
'''Problem:''' The LED matrix display was experiencing flickering because the refresh rate was too low, causing visible delays in row/column updates. This resulted in an unstable display where LEDs appeared to blink or stutter instead of showing a smooth image.&lt;br /&gt;
&lt;br /&gt;
'''Solution:''' We addressed the flickering issue in the display by optimizing the duty cycle through several key strategies. First, we increased the refresh rate to ensure that the rows and columns of the display are updated at a high frequency, specifically above 60 Hz. This rapid updating helps to stabilize the image. Next, we balanced the ON/OFF time of each row and column to maintain consistent brightness across the display. Finally, we implemented precise timing control by fine-tuning the delays and synchronization within the microcontroller code. This adjustment helps avoid any overlap or skipped updates, thereby reducing flicker and enhancing the visual smoothness of the display.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
* [http://elm-chan.org/fsw/ff/00index_e.html FatFs Filesystem Module]&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72943</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72943"/>
				<updated>2024-12-22T22:09:45Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Software Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Untitled_Project_V3.gif|thumb|330px|Start Button Press]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:setup1.jpg|thumb|330px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ==&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
SD Card and Aux Cable&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Archi.jpg|thumb|none|centre|800x800px|Hardware block diagram]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Software_1.jpg|left|state machine diagram]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
Game Logic State Machine&lt;br /&gt;
The game logic follows a state machine with multiple states. Below is a detailed flow of states.&lt;br /&gt;
&lt;br /&gt;
START_SCREEN: Initially, the game is in the START_SCREEN state. Pressing any button during this state transitions the game to the GAME_START state.&lt;br /&gt;
&lt;br /&gt;
GAME_START: This state activates the gameplay screen where the game officially begins. The player's score starts from zero. The player can move around to avoid obstacles. If the player touches an obstacle, the game moves to the UPDATE_LIVES state. If no button is pressed, it remains in this state until an obstacle is encountered or the timer runs out.&lt;br /&gt;
&lt;br /&gt;
UPDATE_LIVES: In this state, the player’s lives are decremented due to a collision with an obstacle. If the player has remaining lives, the game returns to the GAME_START state to continue playing. If no lives remain, the game transitions to the GAME_OVER state.&lt;br /&gt;
&lt;br /&gt;
GAME_OVER: This state is triggered when the player's lives are depleted or the game timer reaches zero. The gameplay stops, and the game over screen is displayed along with the final score. From here, pressing the start button restarts the game, sending it back to the START_SCREEN state.&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
&lt;br /&gt;
'''Problem:''' The LED matrix display was experiencing flickering because the refresh rate was too low, causing visible delays in row/column updates. This resulted in an unstable display where LEDs appeared to blink or stutter instead of showing a smooth image.&lt;br /&gt;
&lt;br /&gt;
'''Solution:''' We addressed the flickering issue in the display by optimizing the duty cycle through several key strategies. First, we increased the refresh rate to ensure that the rows and columns of the display are updated at a high frequency, specifically above 60 Hz. This rapid updating helps to stabilize the image. Next, we balanced the ON/OFF time of each row and column to maintain consistent brightness across the display. Finally, we implemented precise timing control by fine-tuning the delays and synchronization within the microcontroller code. This adjustment helps avoid any overlap or skipped updates, thereby reducing flicker and enhancing the visual smoothness of the display.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
* [http://elm-chan.org/fsw/ff/00index_e.html FatFs Filesystem Module]&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=File:Software_1.jpg&amp;diff=72942</id>
		<title>File:Software 1.jpg</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=File:Software_1.jpg&amp;diff=72942"/>
				<updated>2024-12-22T22:08:05Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72938</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72938"/>
				<updated>2024-12-22T21:59:01Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Untitled_Project_V3.gif|thumb|330px|Start Button Press]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:setup1.jpg|thumb|330px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ==&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
SD Card and Aux Cable&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Archi.jpg|thumb|none|centre|800x800px|Hardware block diagram]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
Game Logic State Machine&lt;br /&gt;
The game logic follows a state machine with multiple states. Below is a detailed flow of states.&lt;br /&gt;
&lt;br /&gt;
START_SCREEN: Initially, the game is in the START_SCREEN state. Pressing any button during this state transitions the game to the GAME_START state.&lt;br /&gt;
&lt;br /&gt;
GAME_START: This state activates the gameplay screen where the game officially begins. The player's score starts from zero. The player can move around to avoid obstacles. If the player touches an obstacle, the game moves to the UPDATE_LIVES state. If no button is pressed, it remains in this state until an obstacle is encountered or the timer runs out.&lt;br /&gt;
&lt;br /&gt;
UPDATE_LIVES: In this state, the player’s lives are decremented due to a collision with an obstacle. If the player has remaining lives, the game returns to the GAME_START state to continue playing. If no lives remain, the game transitions to the GAME_OVER state.&lt;br /&gt;
&lt;br /&gt;
GAME_OVER: This state is triggered when the player's lives are depleted or the game timer reaches zero. The gameplay stops, and the game over screen is displayed along with the final score. From here, pressing the start button restarts the game, sending it back to the START_SCREEN state.&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
&lt;br /&gt;
'''Problem:''' The LED matrix display was experiencing flickering because the refresh rate was too low, causing visible delays in row/column updates. This resulted in an unstable display where LEDs appeared to blink or stutter instead of showing a smooth image.&lt;br /&gt;
&lt;br /&gt;
'''Solution:''' We addressed the flickering issue in the display by optimizing the duty cycle through several key strategies. First, we increased the refresh rate to ensure that the rows and columns of the display are updated at a high frequency, specifically above 60 Hz. This rapid updating helps to stabilize the image. Next, we balanced the ON/OFF time of each row and column to maintain consistent brightness across the display. Finally, we implemented precise timing control by fine-tuning the delays and synchronization within the microcontroller code. This adjustment helps avoid any overlap or skipped updates, thereby reducing flicker and enhancing the visual smoothness of the display.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
* [http://elm-chan.org/fsw/ff/00index_e.html FatFs Filesystem Module]&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72937</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72937"/>
				<updated>2024-12-22T21:43:03Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Team Members &amp;amp; Responsibilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Untitled_Project_V3.gif|thumb|330px|Start Button Press]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:setup1.jpg|thumb|330px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ==&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
SD Card and Aux Cable&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Archi.jpg|thumb|none|centre|800x800px|Hardware block diagram]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
&lt;br /&gt;
'''Problem:''' The LED matrix display was experiencing flickering because the refresh rate was too low, causing visible delays in row/column updates. This resulted in an unstable display where LEDs appeared to blink or stutter instead of showing a smooth image.&lt;br /&gt;
&lt;br /&gt;
'''Solution:''' We addressed the flickering issue in the display by optimizing the duty cycle through several key strategies. First, we increased the refresh rate to ensure that the rows and columns of the display are updated at a high frequency, specifically above 60 Hz. This rapid updating helps to stabilize the image. Next, we balanced the ON/OFF time of each row and column to maintain consistent brightness across the display. Finally, we implemented precise timing control by fine-tuning the delays and synchronization within the microcontroller code. This adjustment helps avoid any overlap or skipped updates, thereby reducing flicker and enhancing the visual smoothness of the display.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
* [http://elm-chan.org/fsw/ff/00index_e.html FatFs Filesystem Module]&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72936</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72936"/>
				<updated>2024-12-22T21:42:36Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Testing &amp;amp; Technical Challenges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Untitled_Project_V3.gif|thumb|330px|Start Button Press]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:setup1.jpg|thumb|330px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ==&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
&lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
SD Card and Aux Cable&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Archi.jpg|thumb|none|centre|800x800px|Hardware block diagram]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
&lt;br /&gt;
'''Problem:''' The LED matrix display was experiencing flickering because the refresh rate was too low, causing visible delays in row/column updates. This resulted in an unstable display where LEDs appeared to blink or stutter instead of showing a smooth image.&lt;br /&gt;
&lt;br /&gt;
'''Solution:''' We addressed the flickering issue in the display by optimizing the duty cycle through several key strategies. First, we increased the refresh rate to ensure that the rows and columns of the display are updated at a high frequency, specifically above 60 Hz. This rapid updating helps to stabilize the image. Next, we balanced the ON/OFF time of each row and column to maintain consistent brightness across the display. Finally, we implemented precise timing control by fine-tuning the delays and synchronization within the microcontroller code. This adjustment helps avoid any overlap or skipped updates, thereby reducing flicker and enhancing the visual smoothness of the display.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
* [http://elm-chan.org/fsw/ff/00index_e.html FatFs Filesystem Module]&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72935</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72935"/>
				<updated>2024-12-22T21:42:00Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Testing &amp;amp; Technical Challenges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Untitled_Project_V3.gif|thumb|330px|Start Button Press]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:setup1.jpg|thumb|330px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ==&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
&lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
SD Card and Aux Cable&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Archi.jpg|thumb|none|centre|800x800px|Hardware block diagram]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
&lt;br /&gt;
Problem: The LED matrix display was experiencing flickering because the refresh rate was too low, causing visible delays in row/column updates. This resulted in an unstable display where LEDs appeared to blink or stutter instead of showing a smooth image.&lt;br /&gt;
&lt;br /&gt;
Solution: We addressed the flickering issue in the display by optimizing the duty cycle through several key strategies. First, we increased the refresh rate to ensure that the rows and columns of the display are updated at a high frequency, specifically above 60 Hz. This rapid updating helps to stabilize the image. Next, we balanced the ON/OFF time of each row and column to maintain consistent brightness across the display. Finally, we implemented precise timing control by fine-tuning the delays and synchronization within the microcontroller code. This adjustment helps avoid any overlap or skipped updates, thereby reducing flicker and enhancing the visual smoothness of the display.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
* [http://elm-chan.org/fsw/ff/00index_e.html FatFs Filesystem Module]&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72934</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72934"/>
				<updated>2024-12-22T21:38:25Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /*  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Untitled_Project_V3.gif|thumb|330px|Start Button Press]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:setup1.jpg|thumb|330px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ==&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
&lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
SD Card and Aux Cable&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Archi.jpg|thumb|none|centre|800x800px|Hardware block diagram]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
The LED matrix display was experiencing flickering because the refresh rate was too low, causing visible delays in row/column updates. This resulted in an unstable display where LEDs appeared to blink or stutter instead of showing a smooth image.&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
We addressed the flickering issue by optimizing the duty cycle:&lt;br /&gt;
&lt;br /&gt;
Increased Refresh Rate: Ensured rows/columns were updated at a high frequency (above 60 Hz).&lt;br /&gt;
Balanced ON/OFF Time: Properly managed the time each row/column remains active to ensure consistent brightness.&lt;br /&gt;
Precise Timing Control: Fine-tuned delays and synchronization in the microcontroller code to avoid overlap or skipped updates.&lt;br /&gt;
This approach stabilized the display, reducing flicker and improving visual smoothness.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
* [http://elm-chan.org/fsw/ff/00index_e.html FatFs Filesystem Module]&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=File:Uday.jpg&amp;diff=72933</id>
		<title>File:Uday.jpg</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=File:Uday.jpg&amp;diff=72933"/>
				<updated>2024-12-22T21:31:51Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=File:Chandu.png&amp;diff=72932</id>
		<title>File:Chandu.png</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=File:Chandu.png&amp;diff=72932"/>
				<updated>2024-12-22T21:31:03Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72931</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72931"/>
				<updated>2024-12-22T21:29:41Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* References Used */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Untitled_Project_V3.gif|thumb|330px|Start Button Press]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:setup1.jpg|thumb|330px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ==&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
&lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
SD Card and Aux Cable&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Archi.jpg|thumb|none|centre|800x800px|Hardware block diagram]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
* [http://elm-chan.org/fsw/ff/00index_e.html FatFs Filesystem Module]&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72930</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72930"/>
				<updated>2024-12-22T21:28:59Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Team Members &amp;amp; Responsibilities = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Untitled_Project_V3.gif|thumb|330px|Start Button Press]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:setup1.jpg|thumb|330px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ==&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
&lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
SD Card and Aux Cable&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Archi.jpg|thumb|none|centre|800x800px|Hardware block diagram]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=File:Me.jpg&amp;diff=72929</id>
		<title>File:Me.jpg</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=File:Me.jpg&amp;diff=72929"/>
				<updated>2024-12-22T21:26:21Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72928</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72928"/>
				<updated>2024-12-22T21:19:06Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Hardware Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Untitled_Project_V3.gif|thumb|330px|Start Button Press]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:setup1.jpg|thumb|330px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
&lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
SD Card and Aux Cable&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Archi.jpg|thumb|none|centre|800x800px|Hardware block diagram]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=File:Archi.jpg&amp;diff=72927</id>
		<title>File:Archi.jpg</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=File:Archi.jpg&amp;diff=72927"/>
				<updated>2024-12-22T21:17:02Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72926</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72926"/>
				<updated>2024-12-22T21:16:22Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Project Title */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Untitled_Project_V3.gif|thumb|330px|Start Button Press]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:setup1.jpg|thumb|330px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
&lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
SD Card and Aux Cable&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=File:Setup1.jpg&amp;diff=72925</id>
		<title>File:Setup1.jpg</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=File:Setup1.jpg&amp;diff=72925"/>
				<updated>2024-12-22T21:15:33Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72924</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72924"/>
				<updated>2024-12-22T21:07:39Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Project Title */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Untitled_Project_V3.gif|thumb|330px|Start Button Press]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
&lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
SD Card and Aux Cable&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=File:Untitled_Project_V3.gif&amp;diff=72923</id>
		<title>File:Untitled Project V3.gif</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=File:Untitled_Project_V3.gif&amp;diff=72923"/>
				<updated>2024-12-22T21:07:18Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72921</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72921"/>
				<updated>2024-12-22T20:28:50Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Parts List &amp;amp; Cost */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
&lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
SD Card and Aux Cable&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72920</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72920"/>
				<updated>2024-12-22T20:26:00Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Schedule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
&lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
MP3 SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 50.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72919</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72919"/>
				<updated>2024-12-22T20:25:24Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Parts List &amp;amp; Cost */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
&lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
MP3 SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 50.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72918</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72918"/>
				<updated>2024-12-22T20:23:52Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Team Members &amp;amp; Responsibilities = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
&lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72917</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72917"/>
				<updated>2024-12-22T20:23:38Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Team Members &amp;amp; Responsibilities = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
** &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72916</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72916"/>
				<updated>2024-12-22T20:22:48Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Team Members &amp;amp; Responsibilities = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
==== Chandra Sekhar====&lt;br /&gt;
*   Develop Game Logic.&lt;br /&gt;
*   Game State Machine handling.&lt;br /&gt;
*   Develop Drivers for hardware.&lt;br /&gt;
*   Integrating Hardware and Software&lt;br /&gt;
&lt;br /&gt;
====Uday Pesala====&lt;br /&gt;
*   Develop drivers for LED Matrix.&lt;br /&gt;
*   Develop graphics drivers for displaying defined images to LED Matrix.&lt;br /&gt;
*   Made the enclosure and body of the system.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
&lt;br /&gt;
====Siva Prasad Reddy====&lt;br /&gt;
*   Developed Drivers for LED Matrix.&lt;br /&gt;
*   Wiki Page Manager.&lt;br /&gt;
*   Game logic integration, testing and debugging.&lt;br /&gt;
*   Syncing game logic and add on features including New high Score Running parallely.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72915</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72915"/>
				<updated>2024-12-22T20:18:35Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Project Title */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
SURVIVAL DODGE&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72914</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72914"/>
				<updated>2024-12-22T20:18:07Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Objectives &amp;amp; Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
*  Smooth display graphics during game play. Utilize the SD card as part of our design&lt;br /&gt;
&lt;br /&gt;
* Further explore synchronization and task prioritization of tasks in an RTOS within a more complex application&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72913</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72913"/>
				<updated>2024-12-22T20:17:06Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Objectives &amp;amp; Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
*  &amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
*  As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*  Player controls a character using simple buttons (e.g., left, right). Obstacles spawn at random positions and move toward the player.&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72910</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72910"/>
				<updated>2024-12-22T20:15:52Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Objectives &amp;amp; Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
&amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. &lt;br /&gt;
&lt;br /&gt;
* As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72909</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72909"/>
				<updated>2024-12-22T20:15:07Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Objectives &amp;amp; Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
&amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72908</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72908"/>
				<updated>2024-12-22T20:14:27Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Team Members &amp;amp; Responsibilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
&amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72907</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72907"/>
				<updated>2024-12-22T20:13:34Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Schedule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
&amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
| &lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
*12/18/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72906</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72906"/>
				<updated>2024-12-22T20:12:14Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Schedule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
&amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project : https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test/projects/lpc40xx_freertos/l5_application?ref_type=heads&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
* Sample Check LED MATRIX DISPLAY to display &amp;quot;HELLO WORLD&amp;quot; or the survival Dodge game display.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Ordered necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets and pins.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Ordered any missing parts we may need that include buttons, Aux cable , 32GB SD Card&lt;br /&gt;
* Develop drivers for hardware required in the project.&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic. &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2024&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2024&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Add on features to display High Score , levels and Score on the screen.&lt;br /&gt;
* Integrate and trying game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2024&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/16/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/18/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72839</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72839"/>
				<updated>2024-12-20T00:34:05Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Acknowledgement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
&amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Order necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Order any missing parts we may need&lt;br /&gt;
* Develop drivers for hardware required in the project&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2022&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Integrate game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/04/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/19/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
We would like to sincerely thank Professor Preetpal Kang for his all-round guidance, feedback, and support. His classroom lectures were significant in imparting knowledge on Advanced Computer Design.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72828</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72828"/>
				<updated>2024-12-20T00:19:15Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Parts List &amp;amp; Cost */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
&amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Order necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Order any missing parts we may need&lt;br /&gt;
* Develop drivers for hardware required in the project&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2022&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Integrate game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/04/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/19/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
Any acknowledgement that you may wish to provide can be included here.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72826</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72826"/>
				<updated>2024-12-20T00:18:10Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Parts List &amp;amp; Cost */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
&amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Order necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Order any missing parts we may need&lt;br /&gt;
* Develop drivers for hardware required in the project&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2022&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Integrate game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/04/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/19/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
5V Power Supply&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
Any acknowledgement that you may wish to provide can be included here.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72825</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72825"/>
				<updated>2024-12-20T00:17:49Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Parts List &amp;amp; Cost */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
&amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Order necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Order any missing parts we may need&lt;br /&gt;
* Develop drivers for hardware required in the project&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2022&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Integrate game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/04/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/19/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
5V Power Supply&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
Any acknowledgement that you may wish to provide can be included here.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72824</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72824"/>
				<updated>2024-12-20T00:17:31Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Parts List &amp;amp; Cost */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
&amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Order necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Order any missing parts we may need&lt;br /&gt;
* Develop drivers for hardware required in the project&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2022&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Integrate game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/04/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/19/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Item#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Quantity&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Price&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
SJ2C Board&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
| &lt;br /&gt;
$50.00&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
|&lt;br /&gt;
LED Display&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$70.49&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
Momentary switches&lt;br /&gt;
|&lt;br /&gt;
5&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
Jumper wires&lt;br /&gt;
|&lt;br /&gt;
Pack&lt;br /&gt;
|&lt;br /&gt;
$8.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
5V Power Supply&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 16.99&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
MP3 serial module&lt;br /&gt;
|&lt;br /&gt;
1&lt;br /&gt;
|&lt;br /&gt;
$ 8.39&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
Any acknowledgement that you may wish to provide can be included here.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72818</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72818"/>
				<updated>2024-12-20T00:08:15Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
&amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Order necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Order any missing parts we may need&lt;br /&gt;
* Develop drivers for hardware required in the project&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2022&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Integrate game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/04/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/19/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
Give a simple list of the cost of your project broken down by components.  Do not write long stories here.&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Developing &amp;quot;Survival Dodge&amp;quot; was a highly engaging and stimulating experience that kept us constantly intrigued. Tackling the various technical challenges, particularly in adjusting the game dynamics and LED matrix display, enhanced our practical problem-solving skills. Through this project, we applied key concepts from our game design and software engineering coursework, gaining deeper insights into real-time system management and user interface design. Collaborating on this project not only honed our teamwork and time management skills but also boosted our confidence in handling complex embedded systems and preparing for technical interviews.&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
https://gitlab.com/chandrasekhar2499/sjtwo-c/-/tree/test?ref_type=heads&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
Any acknowledgement that you may wish to provide can be included here.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72812</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72812"/>
				<updated>2024-12-19T23:56:45Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Objectives &amp;amp; Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
&amp;quot;Survival Dodge&amp;quot; aims to create an engaging game where players maneuver a character to avoid obstacles and accumulate points, displayed on an LED matrix. As players progress, the game increases in difficulty by accelerating the obstacles, testing reflexes and enhancing engagement through simple button-based controls.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Order necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Order any missing parts we may need&lt;br /&gt;
* Develop drivers for hardware required in the project&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2022&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Integrate game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/04/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/19/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
Give a simple list of the cost of your project broken down by components.  Do not write long stories here.&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Conclude your project here.  You can recap your testing and problems.  You should address the &amp;quot;so what&amp;quot; part here to indicate what you ultimately learnt from this project.  How has this project increased your knowledge?&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
*  [https://sourceforge.net/projects/sjsu/files/CmpE_S2016/ Sourceforge Source Code Link]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
Any acknowledgement that you may wish to provide can be included here.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72809</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72809"/>
				<updated>2024-12-19T23:52:48Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Schedule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Order necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Order any missing parts we may need&lt;br /&gt;
* Develop drivers for hardware required in the project&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2022&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Integrate game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/04/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/19/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Pending&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
Give a simple list of the cost of your project broken down by components.  Do not write long stories here.&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Conclude your project here.  You can recap your testing and problems.  You should address the &amp;quot;so what&amp;quot; part here to indicate what you ultimately learnt from this project.  How has this project increased your knowledge?&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
*  [https://sourceforge.net/projects/sjsu/files/CmpE_S2016/ Sourceforge Source Code Link]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
Any acknowledgement that you may wish to provide can be included here.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72808</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72808"/>
				<updated>2024-12-19T23:51:38Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Schedule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Order necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Order any missing parts we may need&lt;br /&gt;
* Develop drivers for hardware required in the project&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2022&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Integrate game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/04/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/19/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
| &lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
*12/19/2024&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
Give a simple list of the cost of your project broken down by components.  Do not write long stories here.&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Conclude your project here.  You can recap your testing and problems.  You should address the &amp;quot;so what&amp;quot; part here to indicate what you ultimately learnt from this project.  How has this project increased your knowledge?&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
*  [https://sourceforge.net/projects/sjsu/files/CmpE_S2016/ Sourceforge Source Code Link]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
Any acknowledgement that you may wish to provide can be included here.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72807</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72807"/>
				<updated>2024-12-19T23:50:09Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Schedule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| &lt;br /&gt;
* 10/21/2024&lt;br /&gt;
|&lt;br /&gt;
* 10/28/2024&lt;br /&gt;
|&lt;br /&gt;
* Read previous projects, gather information and discuss among the group members.&lt;br /&gt;
* Create GitLab repository for project&lt;br /&gt;
* Discuss and source parts for project. Start ordering parts.&lt;br /&gt;
| &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| &lt;br /&gt;
*10/29/2024   &lt;br /&gt;
| &lt;br /&gt;
*11/04/2024 &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Order necessary parts&lt;br /&gt;
* Discuss and break down project into potential components to divide up work&lt;br /&gt;
* Familiarize with relevant hardware datasheets&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
|&lt;br /&gt;
*11/05/2024&lt;br /&gt;
|&lt;br /&gt;
*11/11/2024&lt;br /&gt;
|&lt;br /&gt;
* Order any missing parts we may need&lt;br /&gt;
* Develop drivers for hardware required in the project&lt;br /&gt;
* Develop driver for LED display.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
|&lt;br /&gt;
* 11/12/2024&lt;br /&gt;
|&lt;br /&gt;
* 11/18/2024&lt;br /&gt;
|&lt;br /&gt;
* Continue developing drivers.&lt;br /&gt;
* Search and finalize game sounds.&lt;br /&gt;
* Start testing drivers on hardware&lt;br /&gt;
* Discuss and plan game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
|&lt;br /&gt;
*11/19/2024&lt;br /&gt;
|&lt;br /&gt;
*11/25/2024&lt;br /&gt;
|&lt;br /&gt;
* Finalize wiki schedule.&lt;br /&gt;
* Order circuit boards components and complete the design for printing&lt;br /&gt;
* Complete drivers for MP3 decoder.&lt;br /&gt;
* Circuit board testing.&lt;br /&gt;
* Additional accessories if required and finalization of hardware&lt;br /&gt;
* Start developing game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
|&lt;br /&gt;
*11/26/2024&lt;br /&gt;
| &lt;br /&gt;
*12/02/2024&lt;br /&gt;
|&lt;br /&gt;
* Integration of circuit boards, different components, and microcontroller&lt;br /&gt;
* Continue game logic development&lt;br /&gt;
* Testing and debugging the game logic&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| &lt;br /&gt;
* 12/03/2022&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
* Integrate game logic code with LED matrix&lt;br /&gt;
* Integrate game sounds with game logic &lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| &lt;br /&gt;
* 12/04/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/09/2022&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Integrate subsystem.&lt;br /&gt;
* Finalizing the video game.&lt;br /&gt;
* Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| &lt;br /&gt;
* 12/10/2022&lt;br /&gt;
| &lt;br /&gt;
* 12/19/2022&lt;br /&gt;
|&lt;br /&gt;
* Address bugs during testing of integrated system&lt;br /&gt;
* Test pause/play functionality&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| &lt;br /&gt;
*12/14/2022&lt;br /&gt;
*12/14/2022&lt;br /&gt;
*12/14/2022&lt;br /&gt;
*12/14/2022&lt;br /&gt;
| &lt;br /&gt;
*12/14/2022&lt;br /&gt;
*12/15/2022&lt;br /&gt;
*12/15/2022&lt;br /&gt;
*12/15/2022&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
*Final Demo&lt;br /&gt;
*Update Gitlab repo with final code.&lt;br /&gt;
*Update test video.&lt;br /&gt;
*Update the wiki page.&lt;br /&gt;
|&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
Give a simple list of the cost of your project broken down by components.  Do not write long stories here.&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Conclude your project here.  You can recap your testing and problems.  You should address the &amp;quot;so what&amp;quot; part here to indicate what you ultimately learnt from this project.  How has this project increased your knowledge?&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
*  [https://sourceforge.net/projects/sjsu/files/CmpE_S2016/ Sourceforge Source Code Link]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
Any acknowledgement that you may wish to provide can be included here.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72799</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72799"/>
				<updated>2024-12-19T23:40:03Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Design &amp;amp; Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| 10/14&lt;br /&gt;
|&lt;br /&gt;
* To go through previous projects and discuss with the team members :  http://socialledge.com/sjsu/index.php/Realtime_OS_on_Embedded_Systems&lt;br /&gt;
* To come up with new ideas for applications specific to FreeRTOS. &lt;br /&gt;
| &lt;br /&gt;
* After a brainstorming session with the team, we decided to work on gaming projects using FreeRTOS.&lt;br /&gt;
* Created Git lab link to the project : https://gitlab.com/cmpe-240-advanced-computer-design/survival-dodge-group-8&lt;br /&gt;
* Prepared the abstract for the project proposal.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| 10/21&lt;br /&gt;
| &lt;br /&gt;
* To assign roles and responsibilities to each team member.&lt;br /&gt;
* To decide the structure of the team and divide the project into different modules.&lt;br /&gt;
* To finalize the deadlines and deliverables for the project.&lt;br /&gt;
| &lt;br /&gt;
* Assigned roles and responsibilities to each member.&lt;br /&gt;
* Created a test plan with tasks, deadlines and deliverables assigned to it.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| 10/28&lt;br /&gt;
| &lt;br /&gt;
* To start designing the Master module which will take inputs from different players, take a decision and sends it to LED Matrix display.&lt;br /&gt;
| &lt;br /&gt;
* Divided the project into different modules like Master, Player, Wireless, LED Display and Testing.&lt;br /&gt;
* Started designing the Master module to take inputs from Players.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| 11/04&lt;br /&gt;
| &lt;br /&gt;
* To understand the connections, read the datasheet for RGB LED Matrix.&lt;br /&gt;
| &lt;br /&gt;
* Made a basic layout, pin connections, power requirements for 64x64 RGB LED Matrix.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| 11/11&lt;br /&gt;
| &lt;br /&gt;
* Adding logic to test LED Matrix Functionality.&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| 11/18&lt;br /&gt;
|&lt;br /&gt;
* To test the Player and Master modules.&lt;br /&gt;
* To understand addressing mode, latching, and clock functionality for RGB LED Matrix.&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| 11/25&lt;br /&gt;
|&lt;br /&gt;
* Adding Start page, end page and player score for the game.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| 12/02&lt;br /&gt;
| &lt;br /&gt;
* To send and receive data between Player and Master.&lt;br /&gt;
* To write the logic to glow a particular LED on the display matrix.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| 12/09&lt;br /&gt;
| &lt;br /&gt;
* To implement RGB LED Matrix tasks and APIs for the Master module.&lt;br /&gt;
* To integrate the layout of the application (UI, border, car design, obstacle design) to Master Module.&lt;br /&gt;
* To generate random obstacles, score logic and implement other game functionalities (eg: game over scenario).&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| 12/16&lt;br /&gt;
| &lt;br /&gt;
* To keep moving the display down continuously for the obstacles.&lt;br /&gt;
* To test the overall functionality of the project.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| 12/18&lt;br /&gt;
| &lt;br /&gt;
* To Integration of all modules and end to end testing.&lt;br /&gt;
* To fix bugs and optimize the code.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| 12/18&lt;br /&gt;
| &lt;br /&gt;
* Adding extra functionalities and extra features for the project.&lt;br /&gt;
* Test the extra features with overall project requirement.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
Give a simple list of the cost of your project broken down by components.  Do not write long stories here.&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:weideer_buttons.jpg|300x300px|thumb|center|Weideer 16mm Momentary Push Buttons]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Conclude your project here.  You can recap your testing and problems.  You should address the &amp;quot;so what&amp;quot; part here to indicate what you ultimately learnt from this project.  How has this project increased your knowledge?&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
*  [https://sourceforge.net/projects/sjsu/files/CmpE_S2016/ Sourceforge Source Code Link]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
Any acknowledgement that you may wish to provide can be included here.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72794</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72794"/>
				<updated>2024-12-19T23:35:55Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Design &amp;amp; Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| 10/14&lt;br /&gt;
|&lt;br /&gt;
* To go through previous projects and discuss with the team members :  http://socialledge.com/sjsu/index.php/Realtime_OS_on_Embedded_Systems&lt;br /&gt;
* To come up with new ideas for applications specific to FreeRTOS. &lt;br /&gt;
| &lt;br /&gt;
* After a brainstorming session with the team, we decided to work on gaming projects using FreeRTOS.&lt;br /&gt;
* Created Git lab link to the project : https://gitlab.com/cmpe-240-advanced-computer-design/survival-dodge-group-8&lt;br /&gt;
* Prepared the abstract for the project proposal.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| 10/21&lt;br /&gt;
| &lt;br /&gt;
* To assign roles and responsibilities to each team member.&lt;br /&gt;
* To decide the structure of the team and divide the project into different modules.&lt;br /&gt;
* To finalize the deadlines and deliverables for the project.&lt;br /&gt;
| &lt;br /&gt;
* Assigned roles and responsibilities to each member.&lt;br /&gt;
* Created a test plan with tasks, deadlines and deliverables assigned to it.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| 10/28&lt;br /&gt;
| &lt;br /&gt;
* To start designing the Master module which will take inputs from different players, take a decision and sends it to LED Matrix display.&lt;br /&gt;
| &lt;br /&gt;
* Divided the project into different modules like Master, Player, Wireless, LED Display and Testing.&lt;br /&gt;
* Started designing the Master module to take inputs from Players.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| 11/04&lt;br /&gt;
| &lt;br /&gt;
* To understand the connections, read the datasheet for RGB LED Matrix.&lt;br /&gt;
| &lt;br /&gt;
* Made a basic layout, pin connections, power requirements for 64x64 RGB LED Matrix.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| 11/11&lt;br /&gt;
| &lt;br /&gt;
* Adding logic to test LED Matrix Functionality.&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| 11/18&lt;br /&gt;
|&lt;br /&gt;
* To test the Player and Master modules.&lt;br /&gt;
* To understand addressing mode, latching, and clock functionality for RGB LED Matrix.&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| 11/25&lt;br /&gt;
|&lt;br /&gt;
* Adding Start page, end page and player score for the game.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| 12/02&lt;br /&gt;
| &lt;br /&gt;
* To send and receive data between Player and Master.&lt;br /&gt;
* To write the logic to glow a particular LED on the display matrix.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| 12/09&lt;br /&gt;
| &lt;br /&gt;
* To implement RGB LED Matrix tasks and APIs for the Master module.&lt;br /&gt;
* To integrate the layout of the application (UI, border, car design, obstacle design) to Master Module.&lt;br /&gt;
* To generate random obstacles, score logic and implement other game functionalities (eg: game over scenario).&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| 12/16&lt;br /&gt;
| &lt;br /&gt;
* To keep moving the display down continuously for the obstacles.&lt;br /&gt;
* To test the overall functionality of the project.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| 12/18&lt;br /&gt;
| &lt;br /&gt;
* To Integration of all modules and end to end testing.&lt;br /&gt;
* To fix bugs and optimize the code.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| 12/18&lt;br /&gt;
| &lt;br /&gt;
* Adding extra functionalities and extra features for the project.&lt;br /&gt;
* Test the extra features with overall project requirement.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
Give a simple list of the cost of your project broken down by components.  Do not write long stories here.&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:LED Matrix.jpg|550px|left|thumb|LED Matrix]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[File:LED Backpanel.jpg|400px|left|thumb|LED Backpanel]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The figure and table below shows the pin-out of RGB LED matrix with description.&lt;br /&gt;
[[File:Panel.png | 450px | thumb | left| '''For Interface of RGB LED matrix with LPC''']]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Label&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Function&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| R1&lt;br /&gt;
| High R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| G1&lt;br /&gt;
| High G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| B1&lt;br /&gt;
| High B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| R2&lt;br /&gt;
| Low R data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| G2&lt;br /&gt;
| Low G data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| B2&lt;br /&gt;
| Low B data&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| A&lt;br /&gt;
| A line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| B&lt;br /&gt;
| B line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| C&lt;br /&gt;
| C line selection&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| D&lt;br /&gt;
| D line selection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| CLK&lt;br /&gt;
| CLOCK&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| LAT&lt;br /&gt;
| LATCH&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
| OE&lt;br /&gt;
| Output Enable&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 14&lt;br /&gt;
| GND&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:buttons.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Conclude your project here.  You can recap your testing and problems.  You should address the &amp;quot;so what&amp;quot; part here to indicate what you ultimately learnt from this project.  How has this project increased your knowledge?&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
*  [https://sourceforge.net/projects/sjsu/files/CmpE_S2016/ Sourceforge Source Code Link]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
Any acknowledgement that you may wish to provide can be included here.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72788</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72788"/>
				<updated>2024-12-19T23:32:27Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| 10/14&lt;br /&gt;
|&lt;br /&gt;
* To go through previous projects and discuss with the team members :  http://socialledge.com/sjsu/index.php/Realtime_OS_on_Embedded_Systems&lt;br /&gt;
* To come up with new ideas for applications specific to FreeRTOS. &lt;br /&gt;
| &lt;br /&gt;
* After a brainstorming session with the team, we decided to work on gaming projects using FreeRTOS.&lt;br /&gt;
* Created Git lab link to the project : https://gitlab.com/cmpe-240-advanced-computer-design/survival-dodge-group-8&lt;br /&gt;
* Prepared the abstract for the project proposal.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| 10/21&lt;br /&gt;
| &lt;br /&gt;
* To assign roles and responsibilities to each team member.&lt;br /&gt;
* To decide the structure of the team and divide the project into different modules.&lt;br /&gt;
* To finalize the deadlines and deliverables for the project.&lt;br /&gt;
| &lt;br /&gt;
* Assigned roles and responsibilities to each member.&lt;br /&gt;
* Created a test plan with tasks, deadlines and deliverables assigned to it.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| 10/28&lt;br /&gt;
| &lt;br /&gt;
* To start designing the Master module which will take inputs from different players, take a decision and sends it to LED Matrix display.&lt;br /&gt;
| &lt;br /&gt;
* Divided the project into different modules like Master, Player, Wireless, LED Display and Testing.&lt;br /&gt;
* Started designing the Master module to take inputs from Players.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| 11/04&lt;br /&gt;
| &lt;br /&gt;
* To understand the connections, read the datasheet for RGB LED Matrix.&lt;br /&gt;
| &lt;br /&gt;
* Made a basic layout, pin connections, power requirements for 64x64 RGB LED Matrix.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| 11/11&lt;br /&gt;
| &lt;br /&gt;
* Adding logic to test LED Matrix Functionality.&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| 11/18&lt;br /&gt;
|&lt;br /&gt;
* To test the Player and Master modules.&lt;br /&gt;
* To understand addressing mode, latching, and clock functionality for RGB LED Matrix.&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| 11/25&lt;br /&gt;
|&lt;br /&gt;
* Adding Start page, end page and player score for the game.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| 12/02&lt;br /&gt;
| &lt;br /&gt;
* To send and receive data between Player and Master.&lt;br /&gt;
* To write the logic to glow a particular LED on the display matrix.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| 12/09&lt;br /&gt;
| &lt;br /&gt;
* To implement RGB LED Matrix tasks and APIs for the Master module.&lt;br /&gt;
* To integrate the layout of the application (UI, border, car design, obstacle design) to Master Module.&lt;br /&gt;
* To generate random obstacles, score logic and implement other game functionalities (eg: game over scenario).&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| 12/16&lt;br /&gt;
| &lt;br /&gt;
* To keep moving the display down continuously for the obstacles.&lt;br /&gt;
* To test the overall functionality of the project.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| 12/18&lt;br /&gt;
| &lt;br /&gt;
* To Integration of all modules and end to end testing.&lt;br /&gt;
* To fix bugs and optimize the code.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| 12/18&lt;br /&gt;
| &lt;br /&gt;
* Adding extra functionalities and extra features for the project.&lt;br /&gt;
* Test the extra features with overall project requirement.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
Give a simple list of the cost of your project broken down by components.  Do not write long stories here.&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:buttons.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
== '''Game Logic''' ==&lt;br /&gt;
&lt;br /&gt;
=== Game States ===&lt;br /&gt;
*1. Start Up&lt;br /&gt;
*2. Game Running&lt;br /&gt;
*3. Game Over&lt;br /&gt;
&lt;br /&gt;
=== Player Task===&lt;br /&gt;
Game state: start up&lt;br /&gt;
*1. Display start up screen once per starting &lt;br /&gt;
*2. Reset game parameters&lt;br /&gt;
&lt;br /&gt;
Game state: game running&lt;br /&gt;
*1. Display player and health bar on screen&lt;br /&gt;
*2. Capture and move player location by switch signals&lt;br /&gt;
*3. Check health and switch to game over state when player's health reaches zero&lt;br /&gt;
*4. Check collision&lt;br /&gt;
&lt;br /&gt;
Game state: game over&lt;br /&gt;
*1. Display game over screen&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Conclude your project here.  You can recap your testing and problems.  You should address the &amp;quot;so what&amp;quot; part here to indicate what you ultimately learnt from this project.  How has this project increased your knowledge?&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
*  [https://sourceforge.net/projects/sjsu/files/CmpE_S2016/ Sourceforge Source Code Link]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
Any acknowledgement that you may wish to provide can be included here.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72784</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72784"/>
				<updated>2024-12-19T23:31:07Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Design &amp;amp; Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| 10/14&lt;br /&gt;
|&lt;br /&gt;
* To go through previous projects and discuss with the team members :  http://socialledge.com/sjsu/index.php/Realtime_OS_on_Embedded_Systems&lt;br /&gt;
* To come up with new ideas for applications specific to FreeRTOS. &lt;br /&gt;
| &lt;br /&gt;
* After a brainstorming session with the team, we decided to work on gaming projects using FreeRTOS.&lt;br /&gt;
* Created Git lab link to the project : https://gitlab.com/cmpe-240-advanced-computer-design/survival-dodge-group-8&lt;br /&gt;
* Prepared the abstract for the project proposal.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| 10/21&lt;br /&gt;
| &lt;br /&gt;
* To assign roles and responsibilities to each team member.&lt;br /&gt;
* To decide the structure of the team and divide the project into different modules.&lt;br /&gt;
* To finalize the deadlines and deliverables for the project.&lt;br /&gt;
| &lt;br /&gt;
* Assigned roles and responsibilities to each member.&lt;br /&gt;
* Created a test plan with tasks, deadlines and deliverables assigned to it.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| 10/28&lt;br /&gt;
| &lt;br /&gt;
* To start designing the Master module which will take inputs from different players, take a decision and sends it to LED Matrix display.&lt;br /&gt;
| &lt;br /&gt;
* Divided the project into different modules like Master, Player, Wireless, LED Display and Testing.&lt;br /&gt;
* Started designing the Master module to take inputs from Players.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| 11/04&lt;br /&gt;
| &lt;br /&gt;
* To understand the connections, read the datasheet for RGB LED Matrix.&lt;br /&gt;
| &lt;br /&gt;
* Made a basic layout, pin connections, power requirements for 64x64 RGB LED Matrix.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| 11/11&lt;br /&gt;
| &lt;br /&gt;
* Adding logic to test LED Matrix Functionality.&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| 11/18&lt;br /&gt;
|&lt;br /&gt;
* To test the Player and Master modules.&lt;br /&gt;
* To understand addressing mode, latching, and clock functionality for RGB LED Matrix.&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| 11/25&lt;br /&gt;
|&lt;br /&gt;
* Adding Start page, end page and player score for the game.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| 12/02&lt;br /&gt;
| &lt;br /&gt;
* To send and receive data between Player and Master.&lt;br /&gt;
* To write the logic to glow a particular LED on the display matrix.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| 12/09&lt;br /&gt;
| &lt;br /&gt;
* To implement RGB LED Matrix tasks and APIs for the Master module.&lt;br /&gt;
* To integrate the layout of the application (UI, border, car design, obstacle design) to Master Module.&lt;br /&gt;
* To generate random obstacles, score logic and implement other game functionalities (eg: game over scenario).&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| 12/16&lt;br /&gt;
| &lt;br /&gt;
* To keep moving the display down continuously for the obstacles.&lt;br /&gt;
* To test the overall functionality of the project.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| 12/18&lt;br /&gt;
| &lt;br /&gt;
* To Integration of all modules and end to end testing.&lt;br /&gt;
* To fix bugs and optimize the code.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| 12/18&lt;br /&gt;
| &lt;br /&gt;
* Adding extra functionalities and extra features for the project.&lt;br /&gt;
* Test the extra features with overall project requirement.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
Give a simple list of the cost of your project broken down by components.  Do not write long stories here.&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix comprises 4,096 pixels, each equipped with three channels for the colors red, green, and blue. The matrix uses a 5:32 decoder to address every two rows simultaneously, resulting in two distinct sections: the upper half includes rows 0 to 31, and the lower half consists of rows 32 to 64. To activate each LED, the corresponding RGB pins must be set to HIGH and fed into a 64-bit shift register that aligns with the matrix's 64 columns. The upper half of the display is managed by the RGB pins labeled R1, G1, and B1, while the lower half is controlled by R2, G2, and B2.&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
We utilized Weideer 16mm Push buttons sourced from Amazon for user input. These buttons offered a tactile response and a specific degree of switch travel, with each button featuring two terminals. We wired one terminal of each button to three distinct GPIO pins on the SJ2 Board for input signal reception. The other terminal was connected to the 3.3V Vcc of the SJ2. To avoid any floating inputs when the buttons were not active, we activated pull-down resistors in the software for these switches.&lt;br /&gt;
&lt;br /&gt;
[[File:buttons.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Conclude your project here.  You can recap your testing and problems.  You should address the &amp;quot;so what&amp;quot; part here to indicate what you ultimately learnt from this project.  How has this project increased your knowledge?&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
*  [https://sourceforge.net/projects/sjsu/files/CmpE_S2016/ Sourceforge Source Code Link]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
Any acknowledgement that you may wish to provide can be included here.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72770</id>
		<title>F24: Survival Dodge</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=F24:_Survival_Dodge&amp;diff=72770"/>
				<updated>2024-12-19T23:14:05Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: /* Design &amp;amp; Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Grading Criteria ===&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;&lt;br /&gt;
*  How well is Software &amp;amp; Hardware Design described?&lt;br /&gt;
*  How well can this report be used to reproduce this project?&lt;br /&gt;
*  Code Quality&lt;br /&gt;
*  Overall Report Quality:&lt;br /&gt;
**  Software Block Diagrams&lt;br /&gt;
**  Hardware Block Diagrams&lt;br /&gt;
**:  Schematic Quality&lt;br /&gt;
**  Quality of technical challenges and solutions adopted.&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
Survival Dodge&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Survival Dodge is a classic arcade-style game focused on quick reflexes and survival, reminiscent of retro gaming experiences. This project aims to recreate the intense and fast-paced gameplay using the SJ-2 board and an LED matrix display. In this game, players control a character (or an object) that must dodge incoming obstacles from multiple directions, with the speed and frequency of obstacles increasing over time. The objective is to survive as long as possible, setting high scores based on survival time. Players will use buttons or a joystick to maneuver, with core implementation focusing on responsive controls, real-time collision detection, and adaptive difficulty for sustained challenge.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Uday Kumar Reddy Pesala&lt;br /&gt;
**   &lt;br /&gt;
*  Chandra Sekhar Naidu Gorle&lt;br /&gt;
**   &lt;br /&gt;
*  Adi Siva Prasad Reddy Korivi&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Status&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| 10/14&lt;br /&gt;
|&lt;br /&gt;
* To go through previous projects and discuss with the team members :  http://socialledge.com/sjsu/index.php/Realtime_OS_on_Embedded_Systems&lt;br /&gt;
* To come up with new ideas for applications specific to FreeRTOS. &lt;br /&gt;
| &lt;br /&gt;
* After a brainstorming session with the team, we decided to work on gaming projects using FreeRTOS.&lt;br /&gt;
* Created Git lab link to the project : https://gitlab.com/cmpe-240-advanced-computer-design/survival-dodge-group-8&lt;br /&gt;
* Prepared the abstract for the project proposal.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| 10/21&lt;br /&gt;
| &lt;br /&gt;
* To assign roles and responsibilities to each team member.&lt;br /&gt;
* To decide the structure of the team and divide the project into different modules.&lt;br /&gt;
* To finalize the deadlines and deliverables for the project.&lt;br /&gt;
| &lt;br /&gt;
* Assigned roles and responsibilities to each member.&lt;br /&gt;
* Created a test plan with tasks, deadlines and deliverables assigned to it.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| 10/28&lt;br /&gt;
| &lt;br /&gt;
* To start designing the Master module which will take inputs from different players, take a decision and sends it to LED Matrix display.&lt;br /&gt;
| &lt;br /&gt;
* Divided the project into different modules like Master, Player, Wireless, LED Display and Testing.&lt;br /&gt;
* Started designing the Master module to take inputs from Players.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| 11/04&lt;br /&gt;
| &lt;br /&gt;
* To understand the connections, read the datasheet for RGB LED Matrix.&lt;br /&gt;
| &lt;br /&gt;
* Made a basic layout, pin connections, power requirements for 64x64 RGB LED Matrix.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| 11/11&lt;br /&gt;
| &lt;br /&gt;
* Adding logic to test LED Matrix Functionality.&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| 11/18&lt;br /&gt;
|&lt;br /&gt;
* To test the Player and Master modules.&lt;br /&gt;
* To understand addressing mode, latching, and clock functionality for RGB LED Matrix.&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| 11/25&lt;br /&gt;
|&lt;br /&gt;
* Adding Start page, end page and player score for the game.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| 12/02&lt;br /&gt;
| &lt;br /&gt;
* To send and receive data between Player and Master.&lt;br /&gt;
* To write the logic to glow a particular LED on the display matrix.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| 12/09&lt;br /&gt;
| &lt;br /&gt;
* To implement RGB LED Matrix tasks and APIs for the Master module.&lt;br /&gt;
* To integrate the layout of the application (UI, border, car design, obstacle design) to Master Module.&lt;br /&gt;
* To generate random obstacles, score logic and implement other game functionalities (eg: game over scenario).&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| 12/16&lt;br /&gt;
| &lt;br /&gt;
* To keep moving the display down continuously for the obstacles.&lt;br /&gt;
* To test the overall functionality of the project.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
| 12/18&lt;br /&gt;
| &lt;br /&gt;
* To Integration of all modules and end to end testing.&lt;br /&gt;
* To fix bugs and optimize the code.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
| 12/18&lt;br /&gt;
| &lt;br /&gt;
* Adding extra functionalities and extra features for the project.&lt;br /&gt;
* Test the extra features with overall project requirement.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
Give a simple list of the cost of your project broken down by components.  Do not write long stories here.&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''LED Matrix Display:'''&lt;br /&gt;
&lt;br /&gt;
The 64 x 64 LED matrix contains a total of 4096 pixels, with each pixel having 3 channels for red, green, and blue colors. Each group of 32 rows of the display is addressable by using a 5:32 decoder, where each 5-bit address actually selects 2 rows of the 64 x 64 display at a time. Therefore, the display can be considered to be split in two halves -- the upper display containing rows 0 to 31, and the lower half display comprised of rows 32 through 64. To turn each LED on, a HIGH must be asserted on the respective RGB pins and clocked into the respective bit of the 64-bit shift registers, where each bit position is relative to the 64 columns of the display. Since the display is split into two halves, pins R1, G1, and B2 control the color output for the upper display while pins R2, G2, and B2 control the output for the lower half of the matrix.&lt;br /&gt;
&lt;br /&gt;
'''Momentary Press Buttons'''&lt;br /&gt;
&lt;br /&gt;
For user input we used Weideer 16mm Push buttons that we found on Amazon. The buttons were tactile and had a amount of switch travel. Each button had two terminals. We connected one terminal of each button to three different GPIO pins on the SJ2 Board to receive input signals. The other terminal was connected to the 3.3V Vcc on the SJ2. Therefore, we enabled pull-down resistors in software for the switches to have no floating input when inactive.&lt;br /&gt;
&lt;br /&gt;
[[File:buttons.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
Discuss your hardware design here.  Show detailed schematics, and the interface here.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
Describe the challenges of your project.  What advise would you give yourself or someone else if your project can be started from scratch again?&lt;br /&gt;
Make a smooth transition to testing section and described what it took to test your project.&lt;br /&gt;
&lt;br /&gt;
Include sub-sections that list out a problem and solution, such as:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;Bug/issue name&amp;gt; ===&lt;br /&gt;
Discuss the issue and resolution.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Conclude your project here.  You can recap your testing and problems.  You should address the &amp;quot;so what&amp;quot; part here to indicate what you ultimately learnt from this project.  How has this project increased your knowledge?&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
Upload a video of your project and post the link here.&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
*  [https://sourceforge.net/projects/sjsu/files/CmpE_S2016/ Sourceforge Source Code Link]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
Any acknowledgement that you may wish to provide can be included here.&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
List any references used in project.&lt;br /&gt;
&lt;br /&gt;
=== Appendix ===&lt;br /&gt;
You can list the references you used.&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=File:Buttons.jpg&amp;diff=72769</id>
		<title>File:Buttons.jpg</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=File:Buttons.jpg&amp;diff=72769"/>
				<updated>2024-12-19T23:13:43Z</updated>
		
		<summary type="html">&lt;p&gt;Proj user10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Proj user10</name></author>	</entry>

	</feed>