After growing up in Los Angeles, where cars are the common mode of transport for the majority of the people, moving to Boston for school meant adapting to a new environment where I don't always have access to a car. One of the biggest challenges was navigating the unfamiliar roads without having an intuitive navigation system. Common solutions like Google Maps are tailored towards driving-- they often announce turns at convenient ties for drivers to change lanes, whereas for bikers, the turning warnings happen at awkward times ("Turn left in 5 miles"-- I mean I'd probably forget about turning left after 5 miles of biking). In addition, the visual aide of many GPS systems, while effective in cars, poses a significantly greater challenge for bikers as opposed to drivers. It's easy to glance at a HUD for a driver, but a biker diverting his attention towards a phone mount to read a map could lead to a severe accident.
What it does
Navig8r is a system that makes bike navigation intuitive and simple-- by distilling all of the information given by a traditional GPS system down to only what a biker needs and placing it in convenient places along the biker's field of view, it presents just enough information to help bikers reach their destination safely. There are two primary methods for biker feedback-- a light strip on the handlebars and a projection onto the ground in front of the bike. In addition, there is a phone interface that is used to enter the destination before the route is started.
How we built it
Mechanical To create our first visually intuitive way to give directions, we decided to project arrows that either point left or right onto the ground in front of the bike. We created the arrow projections by hacking flashlights with arrow shaped stencils. To control the power to the flashlights through the Arduino, we replaced the batteries in the flashlight with a new power module that allows us to control the on-off switch of the flashlights with a FET (field effect transistor) instead of manual button. We added another visual cue to turn with LED strips on the handlebars that follow a chase pattern in the direction of turning. The behavior of the LED strips are programmed with the NeoPixels library.
We also needed to design a stable mounting system that allows both the flashlight projections and the LED strips to be installed on any given bike. Since we used many large electrical components, another goal is to create a sleek form factor that effectively packages the breadboard, Raspberry Pi, wires, etc. Some factors we needed to consider while designing this were interference with existing bike components, points of stress, and adjustability.
Electrical and Software
We split the electrical and software engineering of the system into two parts - "forebrain" and "hindbrain". We created a web interface for user input that communicates to the Raspberry Pi through a web API. The Raspberry PI uses this information to handle the Navigation and UI of the system. Then, using serial communication, we transmitted data from the Raspberry Pi and Arduino, which controls the arrow projections and LED strip behaviors.
Challenges we ran into
Mechanically, we underwent several pivots to create our mounting system. Initially, we wanted to create a adjustable silicon strap (similar to an Apply Watch strap) that attaches the device to any given bike. We made several prototypes out of silicon. However, this proved to be a challenge as none of us had worked with silicon before. The silicon took way too long to cure and we were not able to sturdily attach plastic components to it. We solved this issue by 3D printable parts that snapped onto the bike. However, this decreased the adjustable aspect of the mount.
One of our biggest challenges was that we couldn't access internet to install the packages we needed onto the Raspberry Pi. The Raspberry Pi failed to connect to WiFi for a sustained amount of time and there were no more available Ethernet cables. We resolved this issue by coding the web server from stock python instead of using the libraries we needed to. Another challenge was that we needed to supply different voltages to the components. For instance, the flashlights take 4.5 V while mostly everything else takes 5 V. We solved this issue by shorting one of the battery holders in a four pack AA battery box since each AA battery outputs 1.5 V.
Accomplishments that we're proud of
Our team is extremely proud of creating a successful proof of concept for our intuitive visual navigation system. However, we are most proud of our flexibility and all that we have learned. Two out of four of our team members have never participated in a makeathon/hackathon before. We learned to rapid prototype with random materials (including empty Doritos bags), learn on the fly, and communicate effectively within our team.
What we learned
Our team learn a lot both electrically and mechanically. For instance, I had never worked with an Arduino or a Raspberry Pi before this. However, from guidance from my teammates, I created the user interface, facilitated data transmission, and now understand the process flow of how the web UI communicates with the Arduino and the programming for the Flashlights and LEDs. On the mechanical aspect, our team members experimented, failed, succeeded, and learned a lot. They created and poured silicon molds for the first time, learned to pivot when necessary, and gained _ extensive _ Solidworks _experience. Overall, we all learned so much and are extremely thankful for this experience.
What's next for Navig8r
Our next steps are to integrate the Google Maps API, engineer a more adjustable/modular mount, and create better packaging.