New Hardware

The Infrared Emitter LEDs (IR1503) are currently being powered through the 3.3V power supplied by the micro USB port on the Development Board. In order for the Photodiode (OP950) to recognize the IR light, it has to be facing directly toward the LED shown in the figure below.

logo

At a default state, the circuit involving the photodiode provides a high signal of around 3.3V when no blockage is present between the LED and the photodiode. When there is a blockage, the circuit outputs around 0V, which is enough for the FPGA to read as the input pin being driven low. This allows us to line up the 4 LEDs and photodiodes inside a CAD model of a tunnel, and track when a marble passes through each sensor, in order to signal the number of points they receive from passing however much distance through the tunnel.

logo

The APA102 LED RGB Strip is a one meter strip of 60 LEDs that accepts instructions from the Microcontroller. The strip itself has four pins: VCC, GND, SCK, & DATA. VCC was connected to our 3.3V pin, and GND was connected to GND.

As for the rest of the communicaiton, we used SPI protocol and the pins P3B (SCK) and P5B (DATA) to send the bits of data to each of the 60 LEDs. The first 32 bits of the strip need to be set to all 0s, which is what we’ll call the Start Frame. The remaining 60 LED 32 bit chunks will be formatted as shown in the Figure below. The End Frame is similar to the Start Frame, in that all 32 bits will need to be set to 1.

logo

Schematics

logo

IR Photodiode Sensors & IR LED Circuit (Tunnel & Lose)

logo

FSM Reset & Enable Circuit

logo

Speaker & Multiplexed Display Circuit

logo

Field-Programmable Gate Array (FPGA)

logo

Microcontroller (MCU)

logo

Target Buttons Circuit

logo

Addressable SPI Peripheral LED Strip Circuit

Source Code Overview

The source code for the project is located in the Github repository here.