Active Aero         (psst, scroll for a demo video 👀)

Project Overview

Our project draws from a widely known ingredient in modern Formula 1 racing, the drag reduction system, or more commonly referred to as DRS, and puts an automated twist to it! 

For those of you who don't know, let us briefly explain:

In Formula 1, the cars move fast, REALLY fast, and when you have a car moving really fast, sometimes the tires don't grip the ground properly and can slip, causing the car to drift or slide when turning, potentially leading to fatal collisions. 

Enter aerodynamics!

By leveraging Bernoulli's principle, engineers tweak the aerodynamic design of these racecars and add what are essentially inverted plane wings to the front and rear of the car, which produce negative lift, or downforce, as the car moves, pressing down on the tires more and increasing traction. These wings are really great for producing downforce and increasing grip, but they come with an added downside: drag. 

This increased drag can be really problematic on the track, especially during straightaways, where increased traction is not as needed. And thus, DRS was introduced! DRS is essentially just a driver actuated lever that pulls the wing angle of attack down so that the wing does not produce as much downforce (and thus also heavily lowers drag), which can allow the car to overtake other cars with the added boost in speed!

What are we trying to do?

Well, we mainly aim to accomplish 2 things:

And how are going to pull this off?

With an inertial measurement unit (IMU)! 

An IMU gives us various data regarding movement and orientation, and the IMU we have chosen for our purposes, the BNO085, reads out gyroscope, accelerometer, and magnetometer data, as well as many other derived values that it can give us with some sensor fusion magic!

Pairing this with our microcontroller, the ESP32S2-SOLO, chosen for its flexible range of applications, extensive documentation, and ability to transmit data wirelessly via WiFi or Bluetooth, we can easily take the sensor data and put it to use to actuate two 9g servos that are hooked up to both wings on our car, and also turn on an LED to indicate that the system is either up or down. Throw in a 32.768 kHz crystal oscillator for precise timing, a voltage regulator (LD1117S50TR) to make sure we have a constant power supply to the system, a USB receptacle for writing to the microcontroller, and a handful of other passive capacitors and resistors, and you have the hardware for our system! Well, only the electronic hardware, but as mechanical engineers, the rest of the physical system will be put together in no time :) (*disclaimer: this will all be done on a small RC car simply as a proof of concept).

Our Schematic

Our PCB Layout (ft. Professor George Anwar 🐐) (as you can see, we love vias and pours 🙏)

Prototyping

And of course, no electrical engineering project is complete without a little breadboarding, so here is a quick little pic of our prototype featuring the breakout version of the IMU we used and also a little reveal of a blank PCB the day it came in :)

Code

Utilizing a mix of linear acceleration values, angular velocity, and several if-else statements, we created some rough code in Arduino IDE (chosen for it's easy to use environment, expansive selection of libraries, and faster processing speeds for mathematical functions) that detects if our car is turning, actuates the two servos and LED, and sends a message to us via MQTT to indicate that the system is active. If interested, feel free to click here to check out our code (copied to a Google Doc for ease of reading)!

A Short Demonstration

And for the part everyone is waiting for: a demo!

And that's pretty much it (for now)!

Being fans of Formula 1, this project was so much fun for us and we really learned a lot about PCB design and electronics as a whole throughout this process, whether it be using global variables in our schematic (or "portals" as I used to call it), or making sure tracks are never routed to have 90 degree angles in our layout! 

In the future, there are a couple more things we would love to implement!