Month: March 2024

Team Status Report for 3/30/24

Team Status Report for 3/30/24

Potential Risks and Mitigation Strategies The new YOLO car detection model is working a lot better and way more accurate than our previous model with the Haar cascades, however it is very slow and takes about 11 seconds to detect the cars, so we are 

Kaitlyn’s Status Report for 3/30/24

Kaitlyn’s Status Report for 3/30/24

Work Done This week I completed the SUMO/TraCI simulation. I modified the simulation to include calibrators, a SUMO feature that allows the simulation to spawn cars to sync with the speed and vehicles per hour you desire. I initially attempted to manually spawn cars but 

Zina’s Status Report for 3/30/24

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.

Ankita’s Status Report for 3/30/24

Ankita’s Status Report for 3/30/24

Work Done Due to the amount of time needed to tag positive and negative images for the Haar classifier (last week it took 4+ hours to tag ~60 images, and to train a better classifier I would probably want 200-300) I thought it would be 

Team Status Report for 3/23/24

Team Status Report for 3/23/24

Potential Risks and Mitigation Strategies We had some setbacks with the object detection model and wireless camera setup this week. For object detection, the original plan was to use Haar cascade classifiers to identify the number of traffic objects (cars, buses, pedestrians, etc.), but some 

Zina’s Status Report for 3/23/24

Zina’s Status Report for 3/23/24

This was a productive week for me, as I was able to catch up on the things that I was a bit behind on. The biggest accomplishment of the week was completing the PCB layout. There are a couple of silkscreen labels that I want to make minor adjustments to, but the actual placement of the components, pads, tracks, and edges should not need to change. Here is the schematic view of the layout:

And here are a few angles of the 3D render produced by KiCad:

In the above screenshots, the pink side is the front of the PCB and the green side is the back. Also, there are only 4 LEDs rendered instead of all 12 because I had used the footprint and corresponding 3D model of a single LED to create a custom footprint that encompassed all 3 LEDs for each side of the intersection. I do not know how to change the 3D model to reflect the fact that my custom footprint actually has 3 LEDs, and I didn’t think it was worth spending time on figuring that out since it doesn’t affect the actual PCB at all. Anyways, I will make the aforementioned silkscreen layer changes on Monday and get the PCB ordered by the end of class.

There were a couple other miscellaneous tasks I accomplished this week. I ordered the LED drivers and Arduino stacking headers necessary to complete our PCB. These parts should arrive within the next few days. I also finally got around to taking videos at Fifth and Craig that Ankita can use to train the object detection model. I will be helping her to isolate screenshots from the footage and run code that adds a bounding box for the desired objects (cars, buses, trucks, etc.). I also began writing some parts of the Arduino code to drive the LED intersection. Most of what I have right now is focused on translating the data that will come in from the RPi into information that is usable by the Arduino. The next big step is to write the function that parses this input and generates the proper output to the LED driver so that the proper LEDs turn on for the specified amount of time.

 

Ankita’s Status Report for 3/23/24

Ankita’s Status Report for 3/23/24

Work Done I finished tagging the positive and negative images needed to train the vehicle classifier from traffic camera footage as well as the footage Zina retrieved for me from the Fifth and Craig intersection. Unfortunately the commands I would use to train the classifier 

Kaitlyn’s Status Report for 3/23/24

Kaitlyn’s Status Report for 3/23/24

Work Done This week I finalized the lane detection in SUMO+TraCI. I spent a whole day trying to debug why the function to collect the waiting time for a car did not work and realized it was ultimately due to a type error. There was 

Zina’s Status Report for 3/16/24

Zina’s Status Report for 3/16/24

This week I was focused on doing the layout for our custom PCB that connects the ArduinoUNO to the 12 traffic-light-simulation LEDs via a Texas Instruments LED driver. This is my first time doing PCB layout myself, so it was a bit challenging at first to get used to, but I have learned enough about it at this point that I am confident our PCB will function as intended. I am almost done putting everything in its correct place and making sure everything follows the proper design rules and specifications of the PCB manufacturer we will be ordering from (OSH Park). I have inserted a picture of my progress below:

I will have the PCB layout finished and submit an order for it by Tuesday of this week so that we hopefully receive it before the interim demo in a couple of weeks. If it doesn’t arrive by then, we will just do our demo using the breadboarded LED circuit. Once the PCB is ordered, my goal for next week is to write the Arduino code that drives the LEDs. I am also a bit behind on getting some traffic videos at Fifth and Craig for Ankita to use to train the object detection model, but I acquired a GoPro from the IDeATe lending desk at Hunt and will get those videos for her as soon as possible.

Ankita’s Status Report for 3/16/24

Ankita’s Status Report for 3/16/24

Work Done I started tagging the positive and negative images needed to train the vehicle classifier from traffic camera footage — I’m still waiting on some footage from the Fifth and Craig intersection from Zina to add more images to the training dataset and then