Modern vehicles include many examples of cutting-edge technology that helps to keep drivers safe. However, these improvements will take many more years to roll out to the majority of consumers. We hope to shorten this adoption time by providing a similar service to anyone with a smartphone.
What it does
Drive Safe is a mobile app that uses computer vision to detect when collisions are about to occur. The user places their phone on the dashboard facing the roadway, and the phone communicates wirelessly with a microchip capable of stopping the vehicle if a collision is imminent.
How we built it
This project includes three main components. The iOS app was made using Swift and Apple's ARKit. The app takes input from the camera and plots points of interest in 3D. The app then delivers this spatial information to a web server that is plugged into the main control bus of the vehicle. This web server interprets the spatial input and issues commands to the vehicle. Finally, for the actual demo, we hacked a toy RC car to respond to the same API used by our web server. This vehicle can be controlled via remote by an external user but is never allowed to crash.
Originally we planned to use Bluetooth Low Energy (BLE) to communicate between the car and the iPhone app. This likely would have led to lower latency and would have the added benefit of not depending on Wi-Fi. However, Bluetooth proved difficult to work with, so we switched over to a web-based model.
To build our demo, we hacked into the drive system of a remote control car. We installed a DragonBoard that could apply the breaks by using a MOSFET to disable the remote control system. The original car was not powerful enough to drive forward with the added weight, so we had to build a custom power delivery system. Our final system has three batteries: a 3.3V battery that powers the remote control signals, a 9V battery that powers the microcontroller and power control signals, and a 6V battery that powers the drive motors. The biggest challenge was getting all of the voltages to behave correctly. For example, at one point our 3.3V to 5V converter started working in reverse. The first sign of this was that we started seeing 3.3V in places where we expected ground. We ended up scrapping the converter and replaced it with an operational amplifier. Additionally, at one point we blew the fuse on the original remote control car battery and had to get a new car. We made sure to carefully isolate the power supplies on demo car version 2.