From Car to Data Table

Programing / Thursday, December 24th, 2020

One of the most important factors in solar car racing is creating a robust strategy to inform how we drive. Maximizing our strategic edge before we hit the track increases our efficiency, and gives us the best opportunity to bring home the win.

In order to acquire data from our car and display it in a way that is easily readable and ready to interpret, we must use a reliable system that updates our data in real-time. To do this, we first collect data from the motor measuring temperature, amperage, speed, and many more data points. After data collection,  we send it to a database. Our first attempt at this process used a python script to order the data points in our preferred structure and upload it to a MySQL database. 

The database formatted the data points into a massive table (over 30 columns and hundreds of rows) that compiled all of our desired numbers based on what time they reached the database. 

This snippet shows a small portion of the table that holds all of our data during the race. It also acts as the middleman between the car and Grafana.

Using Grafana, a website that displays data in a more aesthetically pleasing way than plain numbers (graphs, gauges, bar charts, single stats), we pulled data from our MySQL database to Grafana, which constantly updates every second to give us the most up to date information possible. Looking at these visualizations we can clearly see how fast the car is going, GPS location, solar panel current, and many more stats. We then communicate to our driver and let them know how they can adjust (slow down, brake less, turn on cruise control, conserve energy for the next hour, etc.) to give us the best shot of winning in the current conditions.

The problem we encountered in this process is that the radio signal was interrupted by buildings and the range is too short for us to rely on during the actual race in Texas. Our current task is testing a new way to send data to our MySQL database via an ethernet connection. I am right now in the process of customizing Arduino code to test this new method. 

This image is what my computer looks like as of now. The project is modifying Arduino code in the hopes of successfully connecting to our database

We’re happy with the progress we’ve made but still have a way to go before we’re ready for the race. The best-case scenario is that this new method works in all locations and we can depend on it for the actual race.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.