- 🥇 Pathum Danthanarayana (@pathum.danthanarayana)
- 🥇 Pasindu Danthanarayana (@pasindu.md)
- Used to run the main dashboard application.
- Used to determine the go-kart's current speed and location.
- Used to calculate and determine the proximity of objects surrounding the go-kart
- Three ultrasonic sensors are positioned at the front of the go-kart, and three at the back
- Used to determine the external temperature of the go-kart.
- Used a half-sized 400 point breadboard to host the temperature sensor
- Used two full-sized 830 point breadboards to host 3 ultrasonic sensors each
- Used a voltage divider circuit with 1kΩ (x6) and 2kΩ (x6) resistors to lower the sensor output voltage from 5V to 3.3V. Consider the example diagram below (values vary).
- Female-to-male jumper wires were used to connect the Raspberry Pi to the breadboards
- Female-to-female jumper wires were used to connect the buzzer to the Raspberry Pi
- Red = VCC
- Blue = Trig
- Yellow = Echo
- Black = Ground
- Used to provide rear visibility for user
- Used to play the startup sound for the dashboard and to play media.
- Used to display the main dashboard application.
- Features a navigation menu at the top to quickly switch between tabs
- Displays the current time using the Raspberry Pi system clock
- Displays the Go-kart's current speed (in km/h) by parsing received GPS packets from GPS receiver
- Displays the Go-kart's current location by comparing its latitude/longitude to a coordinate database
- Displays the tempature outside by polling temperature sensor
- Starts playing the media found in
dashboard/music
as a playlist upon startup with automatic shuffling - Pulls metadata from each track to display the track's album cover, track name, and artist name(s)
- Allows the user to play, pause, skip, or move to previous track
- Media is run in a background thread, allowing the user to freely move between tabs while music plays
- When an obstacle is detected by one of the ultrasonic sensors, the music volume is reduced by 50%
- Includes 180 degree collision detection system
- Features a reverse camera when the Go-kart is in reverse
- Includes parking assistance
- Includes a buzzer with frequency that corresponds to the proximity to obstacles
- Uses distance steps to display colour-coded levels of proximity to obstacles with distance data recieved from ultrasonic sensors
- When one of the sensors turn yellow, the program automatically reduces the music volume, switches to the camera tab, and activates the buzzer
- Raspbian (insert OS version here)
(add library versions)
- PyQt5
- gpsd
- mutagen
- Adafruit_DHT
- vlc
- pulseaudio
- gpsd
- gpsd-clients
- Many of the online resources supported circuits with 1-2 ultrasonic sensors. Employing 6 ultrasonic sensors was a new obstacle that had to be overcome.
- Layering images over a video in the camera tab (ex. shapes and parking lines) was difficult as they would replace the video QLabel. The solution to this was to implement a vbox layout that hosts the necessary labels similar to an array.
- A traditional threading mechanism for updating the GUI with distances and video frames proved suboptimal. After experimenting with various approaches, a signal-slot connection that utilizes references was settled upon.
- Finding a mathematical approach for a GUI representation of the collision detection and implementing an accurate buzzer frequency was challenging
- Automatically running the dashboard application upon boot-up
- Engineering the Go-kart frame, mechanics, and dashboard housing
- Soldering the hardware onto a perfboard