Zina’s Status Report for 3/30/24
This week, we received the parts we ordered from DigiKey for our Traffic Light Circuit, and I placed the order for our custom PCB after making a couple of small adjustments to the Arduino pin assignments and silkscreen text placements. The fabricated PCB should be arriving within the next week, and when it does, I will solder on the LEDs, resistor, LED driver chip, and Arduino stacking header pins. Here are renders from OSH Park (the PCB manufacturer we used) of the bottom and top of our board:
:
Once I have assembled the completed circuit on our PCB, I can begin testing that the Arduino code I’ve written controls the LEDs with the desired behavior, and with minimal delay time between input and output updates. I am nearly done with writing the code that allows the RPi to communicate with the Arduino as well as the code that interfaces between the Arduino and the LED driver chip. I used an OOP approach to define data structures that can store the necessary information about the states of each model Traffic Light and the Intersection as a whole. Here are some of the structs/classes I have defined in the header file:
And here are some of the functions used to initialize/modify the data stored in them:
Lastly, here is an example of how I am piecing it all together to generate the final output that goes to the LED driver via SPI communication:
Once I have finished writing these interfaces, I will write a testbench to ensure that we observe the expected behavior before I actually hook the Arduino up to the PCB circuit. My plans for the next week are to complete the coding and verification processes, as well as to assemble the PCB so that I can begin testing the integrated system.