Difference between revisions of "F19: Tower Defense in Space"

From Embedded Systems Learning Academy
Jump to: navigation, search
(INTRODUCTION AND OBJECTIVES)
Line 13: Line 13:
 
</font>
 
</font>
  
== Project Title ==
+
== Tower Defense...In Space! ==
Tower Defense ... In Space
+
Tower Defense ... In Space.
  
== ABSTRACT ==
+
== Abstract==
 
My abstract goes here.<br />
 
My abstract goes here.<br />
 
<br />
 
<br />
  
== INTRODUCTION AND OBJECTIVES ==
+
== Introduction and Objectives ==
 +
intro here please.
 +
 
 +
== Team Members ==
  
 
{| class="wikitable" style="margin-left: 0px; margin-right: auto;"
 
{| class="wikitable" style="margin-left: 0px; margin-right: auto;"
Line 73: Line 76:
 
<br />
 
<br />
  
== SCHEDULE ==
+
== Schedule ==
 
{| class="wikitable" style="margin-left: 0px; margin-right: auto;"
 
{| class="wikitable" style="margin-left: 0px; margin-right: auto;"
 
! colspan="5" style="background:#000000;" |  
 
! colspan="5" style="background:#000000;" |  
Line 234: Line 237:
 
<BR/>
 
<BR/>
  
== BILL OF MATERIALS ==
+
== Bill of Materials ==
 
{| class="wikitable"  
 
{| class="wikitable"  
 
! colspan="5" style="background:#000000;" |  
 
! colspan="5" style="background:#000000;" |  
Line 412: Line 415:
 
<BR/>
 
<BR/>
  
== <font color="000000"> HARDWARE INTEGRATION </font> ==
+
== System Design ==
 +
 
 +
=== <font color="000000"> System Block Diagram </font> ===
 +
 
 +
== <font color="000000"> Hardware Design </font> ==
  
=== <font color="000000"> Hardware Design Overview </font> ===
+
=== <font color="000000"> Overview </font> ===
  
 
At a high level hardware integration requirements fell into two categories: <br>
 
At a high level hardware integration requirements fell into two categories: <br>
Line 480: Line 487:
 
|}
 
|}
  
 +
== <font color="000000"> Hardware Integration </font> ==
 +
(rgb matrix driver, stuff like that)
  
==== <font color="000000"> Design </font> ====
+
== <font color="000000"> Software Design </font> ==
* Balancing priorities between HW design and getting a working prototype
 
 
 
 
 
==== <font color="000000"> Assembly </font> ====
 
* Wireless antenna connector on master board not accounted for in footprint, it may have to be removed to avoid interference with one connector.
 
 
 
=== <font color="696969"> Bill Of Materials </font> ===
 
{| class="wikitable"
 
! colspan="5" style="background:#696969;" |
 
<span style="color:#FFFFFF"> HARDWARE INTEGRATION PCB </span>
 
|-
 
! scope="col" style="text-align: center;" style="background:#C0C0C0;" |
 
<span style="color:#000000"> PART NAME </span>
 
! scope="col" style="text-align: center;" style="background:#C0C0C0;" |
 
<span style="color:#000000"> PART MODEL </span>
 
! scope="col" style="text-align: center;" style="background:#C0C0C0;" |
 
<span style="color:#000000"> QUANTITY </span>
 
! scope="col" style="text-align: center;" style="background:#C0C0C0;" |
 
<span style="color:#000000"> COST PER UNIT (USD) </span>
 
|-
 
|
 
|}
 
  
<HR>
 
<BR/>
 
  
== TEST ==
+
=== <font color="000000"> System Flow Charts </font> ===
  
In order
 
  
 +
== <font color="000000"> System Testing and Validation </font> ==
  
=== Hardware Design ===
 
During
 
  
<br>
+
== <font color="000000"> Technical Challenges </font> ==
<br>
 
<br>
 
  
We used
 
  
== CONCLUSION ==
+
== <font color="000000"> Conclusion </font> ==
This pr
+
Conculsion please.
  
 +
=== <font color="000000"> Video Demonstration </font> ===
  
=== Project Video ===
+
=== <font color="000000"> Source Code </font> ===
 +
lol.
  
=== Project Source Code ===
 
  
 
=== Advice for Future Students ===
 
=== Advice for Future Students ===

Revision as of 07:50, 17 December 2019

Logo

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.

Tower Defense...In Space!

Tower Defense ... In Space.

Abstract

My abstract goes here.

Introduction and Objectives

intro here please.

Team Members

TEAM MEMBERS & RESPONSIBILITIES

Team Members

Administrative Roles

Technical Roles

  • [Ryan Zelek]

Team Lead

  • Game Design Lead

Git Repo Manager

  • Hardware Design Lead
  • [Chong Hang Cheong]

Wiki Report Manager

  • LED Matrix API
  • [Polin Chen]

Bill of Materials Manager

  • Joy Sticker && Decoder API


Schedule

TEAM MEETING DATES & DELIVERABLES

Week#

Date Assigned

Deliverables

Status

1 10/15/19
  • Share team contact information
  • Create Git Repository
  • Set up group Slack channel
  • Invite Preet to Slack
  • Establish Code Guidelines and Standards
  • Complete
  • Complete
  • Complete
  • Complete
  • Complete
2 10/22/19
  • Identify major hardware components (BOM)
  • Begin purchasing major items
  • Finalize game architecture
  • Have Git Repo Setup
  • Complete
  • Complete
  • Complete
  • Complete
3 10/29/19
  • Solidify individual roles and responsibilities
  • Establish baseline software architecture design and guidelines going forward
  • Complete
  • Complete
4 11/5/19

Kelvin

  • Verify functionality of LED matrix and gather resources for further understanding


  • Complete
5 11/12/19

Kelvin

  • Find out feasibility of creating an LED matrix driver in C

Polin

  • Have APIs ready for joystick and buttons

Ryan

  • Have basic user interface for the game displayed through serial port

Zach

  • First controller PCB design complete
  • Specify any remaining hardware components and coordinate purchase


  • Complete


  • Complete


  • Complete


  • Complete
  • Complete
6 11/19/19

Kelvin

  • Complete baseline API for LED matrix

Polin

  • Determine feasibility of MP3 decoding and integration into system

Ryan

  • Complete first pass at basic tower defense level with straight pathway

Zach

  • Controller PCB sent out for fabrication
  • Design break-out PCB for LED matrix + IO expander />


  • Complete


  • Incomplete


  • Complete


  • Complete
  • Complete
7 11/26/19

Kelvin

  • LED matrix driver should be reviewed and complete

Polin

  • Work with Zach to identify remaining hardware components and, if applicable, MP3 decoder requirements

Ryan

  • Work with Kelvin to integrate his API into the game
  • Game should be running with LED matrix display involvement
  • Advanced game logic design/implementation is near feature complete

Zach

  • PCB assembled and tested. Problems identified and solutions proposed


  • Incomplete


  • Incomplete


  • Complete
  • Complete
  • Complete


  • Complete
8 12/3/19
  • Complete game testing and validation
  • Critical bugs (software AND hardware) identified and a clear path towards closure has been identified
  • Incomplete
  • Complete
9 12/10/19
  • Continuation of previous week activities (bug fixes, etc)
  • Implement any potential optimizations and/or expansions
  • Incomplete
  • Incomplete


Bill of Materials

Top Level

PART NAME

PART MODEL & SOURCE

QUANTITY

COST PER UNIT (USD)

32x64 RGB LED Matrix [1] 2 $49.95
64x64 RGB LED Matrix Sparkfun 1 $79.95
NovaeLED 64x64 RGB LED Matrix (2-Pack) Amazon 1 $80.99
64x64 RGB LED Matrix* Adafruit 1 $104.07
5V 4A PSU - 1 FREE


Breakout Board PCB**

Item #

PART NAME

PART SOURCE

QUANTITY

COST PER UNIT (USD)

1 IC REG LINEAR LD1117S33CTR DIGIKEY 5 $0.351
2 MHS16N-ND 16POS CONN 2.54MM DIGIKEY 2 $2.60
3 CAP CER 0.1UF 25V X7R 1206 DIGIKEY 5 $0.221
4 CAP CER 10UF 16V X5R 1206 DIGIKEY 5 $0.202
5 RES SMD 470 OHM 1% 1/4W 1206 DIGIKEY 10 $0.0267
6 PTC RESET FUSE 24V 500MA 1206 DIGIKEY 10 $0.1588
7 CONN SOCKET 40POS 0.1 TIN PCB DIGIKEY 2 $5.03
8 Manufacturing x 5 boards * JLCPCB 1 $29.81


Gamepad PCB**

Item #

PART NAME

PART SOURCE

QUANTITY

COST PER UNIT (USD)

1 Analog 2-axis Thumb Joystick w/ select button Amazon 1 $7.67
2 SAM8205-ND 10POS 1.27MM DIGIKEY 5 $3.38
3 LED GREEN 1206 SMD DIGIKEY 5 $0.24
4 LED RED 1206 SMD DIGIKEY 5 $0.257
5 RES 1K OHM 1% 1/2W 1206 SMD DIGIKEY 5 0.0358
6 CAP CER 0.1UF 50V X7R 1206 DIGIKEY 5 $0.088
7 12x12x7.3mm Tactile Push Button w/ cap (pack of 25) Amazon 1 $7.89
8 Manufacturing x 5 boards * JLCPCB 1 $14.21


* Shipping and tax included in value shown in the cost per unit column
** Only parts that were purchased are displayed.


System Design

System Block Diagram

Hardware Design

Overview

At a high level hardware integration requirements fell into two categories:

1. Reduce risk of unreliable cable connections and eliminate possibility of damage to components through unexpected disconnections, power surges, etc.
2. Provide a more fluid physical interface for the user to interact with the game via hardware


To accomplish these goals, two boards were designed: a breakout board and a gamepad controller. The breakout board serves as a connection hub between all system hardware components; power, the RGB matrix, the SJTWO board, etc. while the joystick provides a cleaner package to present the user with the games inputs. The diagram below shows the relationship between the main subsystems:


Tower defense in space hw block diagram.PNG


All board designs were done using EAGLE and manufactured by JLCPCB. Both boards were only two layers and used passive components for the most part.


Breakout Board Design

The breakout board design requirement was to interface all external hardware components with the embedded system (SJTWO). The hardware connections are:

1. The 64x64 RGB Matrix
2. Output power to the RGB Matrix
3. User game controller (see next section)
4. Input power supply (5V)
5. The SJTWO embedded system


Breakout Board Schematic


Breakout Board PCB Top Layout
Breakout Board PCB Bottom Layout
Breakout Board PCB Top Layout
Breakout Board PCB Bottom Layout
Populated and mounted to the SJTWO board

Gamepad Hardware Design

The gamepad board design requirement was to provide a more packaged interface for the user to interact with the game.

Gamepad Schematic


Gamepad PCB Top
Gamepad PCB Bottom
Gamepad PCB Fully Populated (no enclosure)

Hardware Integration

(rgb matrix driver, stuff like that)

Software Design

System Flow Charts

System Testing and Validation

Technical Challenges

Conclusion

Conculsion please.

Video Demonstration

Source Code

lol.


Advice for Future Students