The National Highway Transportation and Safety Administration shows that automotive deaths are increasing more than at any time in the last 20 years. Nearly 10,000 people died in auto accidents in the most recent quarter alone, the most since 2002. We wanted to do a hardware challenge that would help to directly save lives and make people safer. Using the components we brought with us (specifically an Arduino Uno starter kit and accelerometer) we wanted to help parents who are teaching their new drivers safety.
What it does
Our device has a button, a display, an LED, and a buzzer. It hangs from the rear view mirror of a car. Once it is turned on, you can press the button to start recording a driving session. The accelerometer will read any time the driver puts more than 1G force on the car in any direction (slamming the breaks, punching the gas, taking turns too quickly.) The device records the number of such infractions on the built-in display, and blinks and buzzes each time the driver is being unsafe; a reminder that when they get home their parents are going to know about it. There is also a timer to ensure that the driver doesn't just restart the device. The parent can know how long it has been since they pressed the button to start the session.
How we built it
Our team had some C experience, but not a ton of knowledge about this kind of project. We found a number of Arduino tutorials on LCD displays, our accelerometer, and integrating all of those components together. We created several prototypes using a breadboard and the Arduino starter kit, adding features like the buzzing and LED once we had core functions like recording incidents worked out. One of our members also brought a 3-D printer to design a chassis using Fusion 360, which we used to manufacture the chassis to hang our product from a rear-view mirror.
Challenges we ran into
Hardware is hard, as they say. Getting the accelerometer zeroed to the current environmental conditions gave us some trouble (we solved this with some intentional delay statements in the code.) We also didn't have the power cord for our soldering iron, so we had to borrow one. Not having our own iron in the middle of the night definitely set us back a bit. We had a couple of bad 3D prints as well which we had to redesign the chassis to overcome. We also had to learn to use git to manage our shared .ino file. Upon final assembly we had some connection issues and ran out of time to integrate the entire device together.
Accomplishments that we're proud of
Our design worked pretty well! We achieved all of our main goals with the hardware, and the chassis our team member modeled and printed looks incredible. We are proud of learning how each component worked, and the little celebrations when each one was finally integrated. We also used git and by the end of the weekend were all comfortable pulling and pushing our commits.
What we learned
We learned about time management; making sure you prepare redundancy time for testing. We improved our C skills and learned how to make use of polling and the Arduino IDE to read the input from physical sensors. We also learned how to write to the LCD screen. The experience with the 3D printer taught us about what physical design constraints are necessary for designing hardware chassis.
What's next for Driving Nanny
Miniaturization! Since this is a hacked together prototype we didn't use the most space-efficient components, but it would be simple to redesign it and just re-use the code with a smaller Arduino, smaller display, and better power solution (like a rechargeable battery). This is intentionally designed right now to be dead-simple to operate, but in the future we could choose components that would allow bluetooth connectivity so the parents could check in on the data without having to go physically interact with the device.