A teammate's near-death experience on a bicycle triggered a months-long quest for knowledge regarding the policies and civic infrastructure that continuously neglect the needs of cyclists -- and consequentially our environment/society -- while catering to the hundreds of thousands of cars congesting and overpowering our city streets.
What it does
3feet is a complete toolkit for the urban commuter, a set of hardware complete with a voice-interactive mobile app companion.
3feet's vision tackles the issue of cyclist safety, twofold:
One, by ensuring reliable, realtime, crowdsourced incident reporting without any additional work on the part of the cyclists. Namely, the iOS app automatically records the date, time, and coordinates of any 3feet violations detected by the sensor the moment they occur as a "data snapshot" that will then be made open for review on our public database.
Two, by providing immediate emergency assistance to the cyclist in question: buzzing handlebars for close calls and varying light patterns to keep drivers mindful from behind.
How we built it
We pinned the necessary outputs to an Arduino breadboard:
- three blinking lights indicating increasing levels of "awareness"
- an ultrasonic sensor to read 3 a haptic buzzer for feedback to allow a user to be notified that a vehicle was approaching them ![in the final product, this would result in shaking handlebars]
Using esri, we rendered a dynamic visualization of the user's current geolocation as well as locations of previous 3feet violations.
Using Houndify, we created an integrated hands-free voice interface to have the sensor detection and alerts turn on or off based on such custom commands as "on", "turn on", "turn on 3feet", "keep me safe", "off", or our most controversial: "feelin' dangerous".
Using Firebase Firestore, we were able to spin up a lightweight, realtime-updating database accessible across platforms, devs, and languages, while also having the ability to reduce large datasets into chunks for public consumption.
Challenges we ran into
- Software: weaving different API's in one project
- Android dev's computer not being able to run Android Studio
- As hardware/software integration noobs, we had a lot of fun theorizing and designing a multi-threaded system design that could efficiently communicate with bluetooth signals being sent out from the Arduino
- Hardware: broken sensors, 3.3 volt LED lights getting burnt out without resistors by our 5.5 charges while testing
Accomplishments that we're proud of
- tackling problems with patience consistently
- taking advantage of the resources available to us at TreeHacks (i.e. mentors. shoutout Kevin, Nick Swift, Nigel, Scott and James and Katy and from Soundhound)
What we learned
Those of who hadn't even seen an Arduino board up close before were exposed to and taught the code by more experienced members, and vice versa with mobile app developers teaching syntax, basic networking paradigms, and coding environments to software newbies! We scratched each other's backs like nobody's business.
What's next for 3feet
- Android app
- sensors for both the front and the back of the bicycle for more accurate readings
- a damage-control approach to bike wrecks involving flashing lights and alarms that draw attention to the cyclist (who may be unconscious or somehow incapacitated) to avoid being run over by cars
- taking advantage of esri's route drawing API to give commuters the ability to look down for navigation tailored to their needs (maybe avoiding areas that have clearly higher concentrations of incidents, while also keeping mind of hills, construction, or terrain that could be just as much of a hazard)
- having a second page on the app to display an easily-readable mobile display of the public incident database
- finetuning map's pin retrieval to allow for more scalability with an increasingly large dataset
- bike-to-street communication, particularly with traffic lights