Difference between revisions of "F20: Tom & Jerry"

From Embedded Systems Learning Academy
Jump to: navigation, search
(SCHEDULE)
(TEAM MEMBERS AND RESPONSIBILITIES)
Line 20: Line 20:
 
== '''TEAM MEMBERS AND RESPONSIBILITIES''' ==
 
== '''TEAM MEMBERS AND RESPONSIBILITIES''' ==
 
*'''[https://www.linkedin.com/in/sarika-natu-52b3b548/ Sarika Natu]'''   
 
*'''[https://www.linkedin.com/in/sarika-natu-52b3b548/ Sarika Natu]'''   
 +
**  Writing code for MP3 Decoder Driver
 +
**  Responsible to write driver to play multiple musics at various game stages
 +
**  Game Architecture
 
**  Git Repository
 
**  Git Repository
**  MP3 Decoder Driver
 
**  Game Packaging
 
  
 
*'''[https://www.linkedin.com/in/shivani30/ Shivani Pradeep Tambatkar]'''  
 
*'''[https://www.linkedin.com/in/shivani30/ Shivani Pradeep Tambatkar]'''  
 
**  Wiki Page Updates.
 
**  Wiki Page Updates.
**  Accelerometer Driver
+
**  Writing code for Accelerometer Driver
 
**  PCB and Hardware Design
 
**  PCB and Hardware Design
**  Integrating Accelerometer and RGB Matrix
+
**  PCB Design Verification and component assembly
**  Maze Design
+
**  Integrating all the subsystems
**  Finalizing Game Logic and Testing
+
**  Maze Design and Graphic designing
**  Packaging and Component Assembling
+
**  Game Architecture and Testing
 +
**  Game Packaging
 +
**  Wiki Page Updates.
  
 
*'''[https://www.linkedin.com/in/soumyasahu02/ Soumya Sahu]'''
 
*'''[https://www.linkedin.com/in/soumyasahu02/ Soumya Sahu]'''
**  RGB Matrix Interface and Design of base matrix code.
+
**  Writing initial APIs for RGB Matrix
**  Maze Design
+
**  Integrating all the subsystems
**  PCB Design Verification
+
**  PCB Design Verification and component assembly
 +
**  Game Architecture and Testing
 
**  Finance Manager
 
**  Finance Manager
**  Bill of Material
 
**  Finalizing Game Logic and Testing
 
  
 
== '''SCHEDULE''' ==
 
== '''SCHEDULE''' ==

Revision as of 03:39, 6 December 2020

Tj1.jpg

INTRODUCTION

We intend to design a game using RGB LED Matrix and microcontroller LPC 4058.

ABSTRACT

The idea is to relive the childhood days using this game with the characters as Tom and Jerry. Jerry will run inside the maze which will be displayed on the RGB matrix. The route for the mouse will be selected from the pre-defined path at initial state in runtime. Tom (player) will chase this mouse by tilting the board left and right. We are using the SoC accelerometer in SJ2 board for sensing the motion. The cat must catch the mouse before mouse reaches its destination hole. If cat get attracted to drink milk (this is an obstacle), then it must halt for some time, and this will waste it’s time for a while at the same place. The mouse will start running first and then after a delay, the cat will start its motion. The score will be displayed on the LCD which is optional display.

OBJECTIVE

The game objectives are as follows:

    • Interfacing the RGB LED Matrix with SJTwo Microcontroller
    • Coding simple to use display functions for displaying characters at any given position
    • Randomizer to generate random position for Jerry
    • Tasks that can move Tom depending on the user:
    • Interrupt to be generated on press of button to start game/Pause the game
    • Score Counter and Energy Counter to be displayed at the top and updated in real time as the game progresses
    • Title Screen and Game Over screens
    • MP3 driver for playing audio

TEAM MEMBERS AND RESPONSIBILITIES

  • Sarika Natu
    • Writing code for MP3 Decoder Driver
    • Responsible to write driver to play multiple musics at various game stages
    • Game Architecture
    • Git Repository
  • Shivani Pradeep Tambatkar
    • Wiki Page Updates.
    • Writing code for Accelerometer Driver
    • PCB and Hardware Design
    • PCB Design Verification and component assembly
    • Integrating all the subsystems
    • Maze Design and Graphic designing
    • Game Architecture and Testing
    • Game Packaging
    • Wiki Page Updates.
  • Soumya Sahu
    • Writing initial APIs for RGB Matrix
    • Integrating all the subsystems
    • PCB Design Verification and component assembly
    • Game Architecture and Testing
    • Finance Manager

SCHEDULE

Week# Start Date End Date Task Status
1
  • 09/22/2020
  • 09/29/2020
  • 09/28/2020
  • 09/29/2020
  • Literature Survey of Previous year Projects
  • Submission of Project Proposal
  • Completed
  • Completed
2
  • 10/16/2020
  • 10/20/2020
  • Created GitLab Repository post project proposal approval
  • Create Wiki page for our project
  • Create Wiki Schedule
  • Completed
  • Completed
  • Completed
3
  • 10/20/2020
  • 10/27/2020
  • Read and familiarize with LED Matrix Datasheet
  • Read and familiarize with Accelerometer MMA8452Q datasheet.
  • Completed
  • Completed
4
  • 10/27/2020
  • 11/03/2020
  • Finalize Components and place the order for the required parts
  • Completed
5
  • 11/03/2020
  • 11/10/2020
  • Write multiple lines on LED Matrix successfully (Soumya)
  • Finalize the wiki schedule
  • Modifying code to detect all four directions from accelerometer (Shivani)
  • Reading MP3 datasheet and started writing driver (Sarika)
  • Completed
  • Completed
  • Completed
  • Completed
6
  • 11/10/2020
  • 11/17/2020
  • Drawing basic maze module on LED matrix(Soumya)
  • PCB Layout Design on Eagle (Shivani - 11/27/2020)
  • Read song from MP3 list and execute on hardware (Sarika)
  • Completed
  • Completed
  • Completed
7
  • 11/18/2020
  • 11/24/2020
  • Finalize game logic and game architecture (2/12/2020)
  • Integrate game logic code with LED matrix(Soumya & Shivani)
  • Resolving MP3 bugs (Sarika)
  • Setting up git (Sarika & Soumya)
  • Basic integration for controlling characters on maze (Soumya & Shivani - 11/27/2020)
  • Complete
  • Complete
  • Complete
  • Complete
  • Complete
8
  • 11/25/2020
  • 12/01/2020
  • RGB matrix integration with accelerometer and fixing the bugs (Shivani & Soumya)
  • Designing initial maze frames (Shivani)
  • Integrating MP3 code with master (Sarika)
  • Establish complete connection on PCB and perform Continuity check (Soumya) - 12/5/2020
  • Update the wiki page (Shivani)
  • Complete
  • Complete
  • Complete
  • Complete
9
  • 12/02/2020
  • 12/08/2020
  • Designing multiple Maze based on initial Maze logic (Shivani)
  • Design and developing logic for game animation and display (Shivani)
  • Developing code logic for character movement (Shivani & Soumya)
  • Address bugs during testing maze and character movement (Shivani)
  • Developing game logic to restrict character movement on boundaries (Soumya)
  • Designing and developing game state machine logic to support Led Matrix, background sounds and Accelerometer(Sarika, Soumya, Shivani)
  • Developing logic to play background sounds for corresponding game states (Sarika)
  • Update the wiki page (Shivani)
  • In Progress
  • In Progress
  • Completed
  • Completed
  • In Progress
  • In Progress
  • In Progress
  • Completed
10
  • 12/09/2020
  • 12/14/2020
  • Integration of all subsystems (LED Matrix,Accelerometer and MP3) (Shivani & Soumya)
  • Designing game display at various stages of the game such as initial display, scoreboard and intermediate displays (Shivani)
  • Designing enclosures for matrix and the player's controller
  • Fixing the bugs during final integration testing
  • Update Gitlab repo with final code.
  • Update test video.
  • Final wiki page update.
  • Not started
  • Not started
  • Not started
  • Not started
  • Not started
  • Not started
  • Not started
11
  • 12/16/2020
  • Final Demo
  • Not started


BILL OF MATERIALS

Part # Cost Source
SJ2 Board 1 $50.00 Preet
Sparkfun RGB (32x64) LED Matrix Display 1 $65.72 Amazon
PCB Fabrication 1 $25.00 JLC PCB
5V/4A Power Adapter 1 $8.99 Amazon
12v DC Power Jack Adapter Connector 1 $3.90 Amazon
Jumper Wires 1 $6.99 Amazon
Total Cost $160.6

DESIGN AND IMPLEMENTATION

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

Hardware Design

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

Hardware Interface

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

Software Design

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

Implementation

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

Printed Circuit Board Design

We have designed and developed a PCB in order to supply power for SJTwo board and RGB LED Matrix which is able to provide 5V supply efficiently. The PCB Layout is designed using the Easy EDA Online Software Tool. The Power Supply circuit board used contains IC7805 voltage regulator IC and a voltage divider to fulfill the specific power requirements. IC7805 is a linear voltage regulator which has a variable output voltage ranging from 4.8 V to 5.2 V and is suitable for our application. We have used a 5V adapter in order to power our board. This serves for both the current requirements.

Fabrication

PCB was sent to fabrication to JLCPCB China which provided PCB with MOQ 2 layers of PCB. DRC elements (in mils)

  • Track Width = 12
  • Clearance = 10
  • Via Diameter = 24
  • Via Drill Diameter = 12

TESTING AND TECHNICAL CHALLENGES

LED Matrix

The OE pin when low, it switches off the LEDs before transition to next row) and LAT (when high) it latches the output pin with current row value). Before transitioning new row value it is important to follow the above instructions, otherwise you will see ghosting effect in the LEDs.

PCB

  • Auto-routing gave lot of challenges and sometimes the wires are barely connected which throws DRC errors very frequently. Even local routing had lot of issues. So design requires careful attention and time.
  • The PCB went through a lot of internal revisions even before placing order which was time-consuming.

Conclusion

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

Project Video

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

Project Source Code

References

Acknowledgement

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

References Used

List any references used in project.

Appendix

You can list the references you used.