SPACE SHOOTERS
GEEN 3010: Circuits for Engineers culminated in a final project of an arcade game utilizing at custom PCB. My group and I developed “Space Shooters”, a spin-off of the classic arcade game “Space Invaders” where two players compete to “shoot” at photoresistor targets using laser pointers. Through this project, I learned how to design and build a PCB, while greatly improving my soldering and manufacturing skills.
Space Shooters begins with the eyes of two random aliens on the board lighting up red and blue. When a player shoots a target, their respective color receives a point and the target is randomly assigned to a new alien. The goal of space shooters is to hit 20 targets faster than your opponent.
Proof of Concept
After buying several huge photoresistors off eBay, I tested the feasibility of “photoresistor targets”, which worked great when ambient light levels were kept low. Further down the line, we opted for stronger laser pointers rather than dark surroundings.
My primary role in this project involved designing and manufacturing the aliens, each of which is equipped with a custom PCB. Using Altium, I designed two PCBs, one each for the two-eyed and four-eyed aliens, and manufactured them at CU’s electronics lab.
PCB Design
Two-eyed Alien PCB
Four-eyed Alien PCB
Alien Manufacturing
I CADed aliens into OnShape, laser-cut each one, and painted them by hand. In total, there are 6, with one featuring the four-eyed design.
Laser-Cutting
PCB Integration & Soldering
I soldered components to each PCB and mechanically connected them to the aliens. The gap between the PCB and alien body is intended to prevent LED eyes from “bulging” out. Finally, I added wooden blocks to the back of each alien so they could be screwed into the main game board.
Main Circuit & Code
Setup (Before the game starts):
Set Player 1 (Red) and Player 2 (Blue) scores to 0.
Turn on one random Red target and one random Blue target.
Display the scores on the screen.
Playing the Game (Happens over and over):
Check Player 1: Did the laser hit the active Red target?
If YES: Add 1 to Red's score, play a low beep, and move the Red target to a new random spot.
Check Player 2: Did the laser hit the active Blue target?
If YES: Add 1 to Blue's score, play a high beep, and move the Blue target to a new random spot.
Update Screen: Show the new scores.
Repeat this process instantly until a player reaches the winning score.
(Note: The system also double-checks that the new random spot isn't already occupied by the other player, and makes sure a player can't hold their laser on a target to get infinite points)
Pseudocode
Final Touches
In the final days of our project, I took charge of aesthetics and quality-of-life: a retro title, a warning label an cups for lasers, and hand-painted stars. While small, each of these features goes a long way in making “Space Shooters” feel polished and complete.