High-Level Design

This project was inspired by Nick Bild’s gesture-controlled Pong game on the Pico. Essentially, we wanted to develop a gesture-controlled hardware interface that would interact with the Pico through designated GPIO pins. This was enabled by having two LEDs that are constantly on shine directly below two mirrors. The mirrors reflect the light from the LEDs onto infrared phototransistors that are connected to the Pico’s GPIO pins 18 and 19. If the player moves their hand in between a mirror and a phototransistor, then the mirror no longer reflects light onto the phototransistor and the signal to the Pico goes low. This causes the GPIO outputs to go low as well, which can be used to trigger changes in the software.

The software program had to consistently monitor the GPIO pins for any changes in signals while also updating the VGA animation every frame accordingly. To reduce the workload of the processors on the Pico, we distributed the program across two cores with each core controlling a thread. One thread monitored player movements to update the player avatar’s animation accordingly, and the other thread changed the state of the game based on internal controls.

No existing patents, copyrights, and trademarks were violated. While the game was inspired by certain existing genres like endless runners and classic arcade games, the premise of our game and the visual sprites used are wholly original or acquired from royalty-free sources.