F18: Catch me if you can
Contents
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
Catch Me If You Can
Abstract
"Catch me if you can" is a fun game where the user must be attentive and agile enough to catch the randomly dropping eggs from above into a basket. This is all displayed in the LED matrix acting as the screen. The user shall gain and accumulate points equivalent to the eggs collected successfully and there shall be a limited score for each level. The system will consist of two SJ boards, the one board will be used as a game console with which user will try to catch the eggs by moving the board in the required orientation. The other board will control the display module that displays the graphics of eggs falling and also the basket movement. The display module shall communicate with the game console via RF Nordic transceiver. There will be various sounds produced by the display module board for various events during the game like an egg catch\miss or an intermediate milestone reached.
Objectives & Introduction
Display Module:LED display Control Module:/* yet to fill*/ Wireless Module:/* yet to fill */
Team Members & Responsibilities
- Aquib Abduljabbar Mulani
- Wireless chip driver/application and calibrating accelerometer.
- Kailash Kumar Chakravarty
- RGB LED 32x32 matrix driver and game display application code.
- Nandini Mandya Shankaraiah
- Audio output driver and game display application code.
- Rishabh Sheth
- Managing WiKi, PCB design, and console application code.
- Swanand Sapre
- Menu handling via switches and console application code.
Schedule
Week# | Date | Task | Status | Actual Completion Date |
---|---|---|---|---|
1 | 10/16/2018 |
|
Completed | 10/25/2018 |
2 | 10/30/2018 |
|
Completed | 11/05/2018 |
3 | 11/06/2018 |
|
Completed | 11/13/2018 |
4 | 11/13/2018 |
|
Completed | 11/16/2018 |
5 | 11/20/2018 |
|
Completed | 11/22/2018 |
6 | 11/27/2018 |
|
Completed | 12/1/2018 |
7 | 11/30/2018 |
|
||
8 | 12/04/2018 |
|
||
9 | 12/11/2018 |
|
Parts List & Cost
Sl No | Parts | Seller | Quantity | Price |
---|---|---|---|---|
1 | SJOne LPC1758 Microcontroller Board | Preetpal Kang | 2 | $160 |
2 | RGB LED Matrix Panel - 32x32 | Sparkfun | 1 | $55.6 |
3 | Piezo Buzzer | Amazon | 2 | $1.5 |
4 | Accelerometer | On board | 1 | NA |
5 | Switches | On board | 4 | NA |
6 | Portable Power Supply | Local seller | 1 | $5 |
7 | RF Nordic | On board | 1 | NA |
8 | BOM / PCB components | Sparkfun | - | $20 |
Design & Implementation
Hardware Design
Discuss your hardware design here. Show detailed schematics, and the interface here.
PCB Design
KiCAD 5.10.0 software was used for PCB design. We created two PCB's, one for LED display to connect display connector and piezo buzzers
The steps involved in the PCB design process are discussed below:
PCB Schematic Design
As a first step, we designed a circuit. We created parts which are missing in KiCAD library
Hardware Interface
Hardware design diagram above gives an overview of the entire system which consists of the main 2 SJ-One controllers: 1 board for the player and 1 board used as the display node
- The Player uses the onboard accelerometer on SJ-One which is interfaced to the board using the I2C protocol. The accelerometer values are then used to determine the basket position on the screen.
- As we are implementing a wireless game, the accelerometer values are transmitted using yet another onboard module, the Nordic wireless module which interfaces with the wireless module on the display node controller.
- The Display node SJ-One board is used to control a 16*32 RGB LED Matrix. This matrix displays the basket and multiple eggs falling from top of the screen in the game. The basket location and movement is decided by the on-board accelerometer values that we received wirelessly from the player board.
- RGB LED Matrix displays three screens: Start Screen, Game Screen, End Screen which displays the final score of the player and the highest score as well. The hardware description of the LED matrix is explained later in this section.
Software Design
Tasks within LPC Board 1 (LED display):
Input_handler : This task takes the Accelerometer values as inputs from other LPC board and determines the exact corresponding position of the basket.
Display_handler: This task is responsible for displaying the contents into the LED matrix display at a certain rate. Note: Actual screen refreshing takes place at a much higher rate.
Tasks within LPC Board 2 (Console):
Data_sender : This task continuously sends the raw accelerometer values to LPC board 1.
Game_handler : This task is responsible for handling events like game start, game pause, game end via on board switches.
Implementation
Porting Adafruit driver into LPC :
1. LPC GPIOs were accordingly mapped and made as output for LED matrix connections.
2. Basic shapes, patterns and text were drawn.
3. Game specific APIs were developed for objects like basket, egg, cannon.
Testing & Technical Challenges
Porting Adafruit driver into LPC :
1. Mapping the LPC GPIOs for LED matrix pins.
2. After porting, tested basic shapes and texts and understood the driver APIs.
3. There were many other subtle changes which took time to figure out.
4. Piezo Buzzer sound frequency not varying at higher speed.
5. Nordic Wireless RX data is received only once.
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.