Have you ever been so drunk that you don’t realize just how drunk you are? Us too. That’s where SOBR comes in. We are creating a portable sobriety testing device that uses mini-games to evaluate your cognitive abilities, way more fun and less intimidating than a conventional breathalyzer.
SOBR includes three engaging mini-games: Tipsy - balancing on one leg for 10 seconds without falling; TEMP-erance - guessing the ambient temperature within 10 degrees; and Push The Limit - memorizing and inputing a sequence of random numbers.
Have fun while playing SOBR’s games but beware, fail 2 of the 3 tests and a text will be sent to your emergency contact. SOBR’s mission is to make safe fun!
We used an Arduino Mega as the microprocessor for our device, as the sketch was far too large in size for an Uno.
For the first game, we connected an accelerometer to the Arduino mega. Through the LCD screen, the device prompted the user to stand on one leg for 10 seconds. The algorithm for this game basically checked if the x, y, and z values inputted from the accelerometer were within the given range for more than 6/10 seconds of game 1. If so, the game passed.
For the second game, we connected a temperature sensor to the Arduino Mega. The user was prompted to input guess of the ambient temperature of the room within 10 degrees fahrenheit. The user inputted his/her guessed temperature through a connected keypad, and our program checked if the inputted temperature was within 10 degrees farenheit of the temperature inputted by the sensor.
In the third game, our program generated a sequence of 5 numbers using a random function. The LCD screen displayed these numbers one by one, and the user was prompted to memorize the sequence. The users then input the sequence into our device using the keyboard, and our program checked the user’s input against the generated sequence. This was repeated 4 times, and if the user got at least 2/4 sequences correct, he/she passed this game.
At the end, our program checked if the user passed at least 2 of the 3 games. If not, using the WiFi 101 shield, our device sent a text to the user’s designated emergency contact Thingspeak and Twilio. The text stated that the user was not sober, and that his/her friend should get in contact with him/her.
Challenges we ran into
Our biggest challenge was putting everything together, and running into many small problems throughout the process. We implemented each game/functionality separately at first, and it was difficult to integrate everything into one code. Another challenge we faced was that the Arduino Uno ran out of memory. We initially tried to shorten down our code, but it was not enough. This meant that we had to switch to the Arduino Mega, and had to re-wire a few things differently. Moreover, initially, we planned to integrate a voice recognition game as well. However, after trying to do so through Matlab, and even through Bitvoicer (a server we bought), we could not get it to work. Hence, we could not incorporate it into our device.
On GitHub, see link below.