F21: FollowMe

From Embedded Systems Learning Academy
Revision as of 23:32, 9 November 2021 by Proj user9 (talk | contribs) (Objectives & Introduction)

Jump to: navigation, search

Grading Criteria

  • How well is Software & Hardware Design described?
  • How well can this report be used to reproduce this project?
  • Code Quality
  • Overall Report Quality:
    • Software Block Diagrams
    • Hardware Block Diagrams
      Schematic Quality
    • Quality of technical challenges and solutions adopted.

Project Title

Follow Me

Abstract

FollowMe is a video game where you follow the correct directions. The LED matrix will display a series of arrows and the player or players need to correctly wave their hand over their gesture sensor to earn points. However, watch out for the background color of the arrow. If the background is green, then the players need to wave their hand in that direction; i.e, an arrow pointing left with a green background means wave your hand from the right to the left (wave left). If the background is red, then the players need to wave their hand in the opposite direction; i.e, an arrow pointing up with a red background means wave your hand from the top to the bottom (wave down).

There'll be two modes:

1. Timed mode: each player tries to get the most correct waves until the time runs out. The rate at which the arrows change will increase as the timer counts down.

2. Endurance mode: each player tries to stay alive the longest. One wrong wave then you're eliminated, the last player standing wins.

At the end, the LED matrix will display the leaderboard for the players and how many waves/instructions they got correct.



  • Block Diagram of Follow Me needs to be added

Objectives & Introduction

Project Introduction

1. Gestor Control: APDS-9960 gesture sensor on SJ2 board should respond to hand waving. I2C interface will be used for this sensor. 2. ZIGBEE wireless: UART interface used to connect the wireless devices, which will send information to other boards. 3. MP3 decoder: MP3 data will be fetched from mini SD card reader using SPI interface. 4. 64x64 RGB LED matrix: LED will be controlled by GPIO of SJ2 board. The LED will display game graphics.


Project Objectives

1. Gestor Control: APDS-9960 gesture sensor on SJ2 board should respond to hand waving. I2C interface will be used for this sensor.

2. ZIGBEE wireless: UART interface used to connect the wireless devices, which will send information to other boards.

3. MP3 decoder: MP3 data will be fetched from mini SD card reader using SPI interface.

4. 64x64 RGB LED matrix: LED will be controlled by GPIO of SJ2 board. The LED will display game graphics.


Team Objectives

1.Learn and understand the APIs of the Real Time Operating System

2.Use different embedded protocol to interface the system

3.Learn to design a module and interface the modules by reading datasheets

4.Integration and testing to deliver the final product

5.Track and respond to the reported bug and document the bugs and solutions.


2. The system shall connect 1 central SJ2 board to up to 3 SJ2 boards wirelessly.

3. The system shall display the visuals correctly and without glitches.

4. The system shall display a title screen, arrows, and leaderboards.

5. The system shall play different music in the title screen, during play, and leaderboard screen.

6. The system shall use I2C to connect to the APDS-9960 gesture sensor.

7. The system shall use UART to connect to ZIGBEE wireless devices.

8. The system shall use SPI to connect to the MP3 decoder and get MP3 data from the onboard mini SD card reader.

9. The system shall use GPIO pins to interface to the 64x64 RGB LED matrix.

10 The system shall be enclosed in a 3d printed enclosure.

Team Members & Technical Responsibilities

  • Jonathan Doctolero
    • Gesture Sensor Driver
    • Gameplay Development
    • Enclosure Design
  • Priyanka Rai
    • RGB Matrix Driver
    • Wireless Driver/Application
  • Ravi Kiran Dendukuri
    • PCB Design
    • MP3 Decoder Design
  • Yashwanth Kumar Nelakuditi
    • PCB Design
    • MP3 Decoder Design

Administrative Responsibilities

Administrative Roles
  • Git Repository Manager
Jonathan Doctolero
  • Wiki Report Manager
Priyanka Rai
  • Finance Manager
Ravi Kiran Dendukuri
  • Bill of Materials Manager
Yashwanth Kumar Nelakuditi

Schedule

Week# Start Date End Date Task Status Deliverable
1
  • 10/12/2021
  • 10/18/2021
  • Read previous projects, gather information, and discuss among the group members.
  • Create GitLab repository for project
  • Completed
  • Completed
2
  • 10/19/2021
  • 10/22/2021
  • Create a Bill of Materials
  • Order necessary parts
  • Completed
  • Completed
  • BOM in "Parts List & Cost" Section
3
  • 10/26/2021
  • 11/06/2021
  • Read and familiarize with LED Matrix Datasheet
  • Read and familiarize with APDS-9960 datasheet
  • Read and familiarize with XBEE Wireless UART device
  • Read and familiarize with MP3 decoder and SD card reader on SJ2
  • Design PCB
  • In Progress
  • In Progress
  • In Progress
  • In Progress
  • In Progress
  • PCB design in "Printed Circuit Board" Section
4
  • 11/08/2021
  • 11/18/2021
  • Develop graphics driver for LED matrix and implement initial game objects
  • Develop code module for gesture sensor
  • Design/Plan game logic
  • In Progress
  • In Progress
  • In Progress
5
  • 11/08/2021
  • 11/15/2021
  • Finalize wiki schedule
  • Order circuit boards components and complete the design for printing
  • Additional accessories if required and finalization of hardware
  • Test gesture sensor API
  • Test MP3 decoder API
  • Completed
  • In Progress
  • In Progress
  • Not started
  • Not started
6
  • 11/16/2021
  • 11/22/2021
  • Receive circuit board and start component assembly
  • Circuit board testing
  • Integration of circuit boards and microcontroller
  • Test LED matrix API
  • Game logic development
  • Testing and debugging the game logic
  • Not started
  • Not started
  • Not started
  • Not started
  • Not started
  • Not started
7
  • 11/23/2021
  • 11/29/2021
  • Initial integration of game logic code with LED matrix
  • Initial integration of game sounds with LED matrix
  • Initial integration of gesture sensor with LED matrix
  • Test wireless connections between 1 master and 1 slave
  • Debug minimum features: gesture inputs, game display, music playing, single player
  • Not started
  • Not started
  • Not started
  • Not started
  • Not started
8
  • 11/30/2021
  • 12/06/2021
  • Test full integration of LED matrix, MP3 decoder, gesture sensor, and wireless communication
  • Add multiple players, ensure each device can connect to the network
  • Update the wiki page.
  • Not started
  • Not started
  • Not started
9
  • 12/07/2021
  • 12/13/2021
  • Address bugs during testing of the integrated system
  • Thorough testing of the game
  • Debug multiple players
  • Not started
  • Not started
  • Not started
10
  • 12/15/2021
  • Final Demo
  • Update Gitlab repo with final code.
  • Update test video.
  • Update the wiki page.
  • Not started
  • Not started
  • Not started
  • Not started
11
  • 12/16/2021
  • Turn in Wiki Page Report
  • Not started


Parts List & Cost

Give a simple list of the cost of your project broken down by components. Do not write long stories here.

Printed Circuit Board

Design & Implementation

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

Hardware Design

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

Hardware Interface

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

Software Design

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

Implementation

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

Testing & Technical Challenges

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

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

<Bug/issue name>

Discuss the issue and resolution.

Conclusion

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

Project Video

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

Project Source Code

References

Acknowledgement

Any acknowledgment 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.