The Racecar DashBoard Display Module is a unit to replace the car mirrors and displays the car performance to the driver. This module interfaces between a screen and multiple cameras using a raspberry pi. This is for a semseter long "capstone" project for Swinburne University
- Speedometer
- Clock
- Side and Back mirror options
- Safety Information
- update Rpi system
sudo apt update 2.python & pip sudo apt install python
sudo apt install python-pip
- numpy
pip install numpy
- pygame
pip install python-pygame
- openCV
pip install python-opencv
- RPi4 (unsure of previous versions are compatible)
- 3 USB cameras connected
- Display output (the target device was 1280 x 400)
Willis Medwell Personal Email (Student Email)
Daniel Failla Personal Email (Student Email)
Giacomo Fantin Personal Email (Student Email)
Daniel Revamped the design to look slick.
Due to the OpenCV library, we were able to integrate machine vision using a trained model (XML).
Camera Support! Each camera runs on their own thread and each image is read from alternating buffers for thread safety.
This works out perfectly as we need support for 3 cameras and the RPi4 has 4 cores... (3 camera threads and 1 main thread).
After poor performance on the Raspberry Pi, Willis changed the GUI from Tkinter to Pygame. This tripled the performance.
Desktop | Tkinter | Pygame |
---|---|---|
Time (ms) | 3.536 | 1.053 |
Freq (Hz) | 282.8 | 949.7 |
RPi4 | Tkinter | Pygame |
---|---|---|
Time (ms) | 24.44 | 40.92 |
Freq (Hz) | 4.711 | 212.6 |
- From 40 fps to 200 fps (on the target device) was a major and neccessary improvement.
Willis improved Daniel's demo by making the mainloop dynamic instead of controlled by Tkinter. Also added gif and png shapes.
Daniel created and implemented a working prototype that had a working speedometer, rpm, range and more.
First commit laying out project brief and introducing members to the git/github process\