The goal of this project was to build a completely integrated and hands free bike light system. I bike everywhere I go and the biggest issue I always run into is that I will always forget to bring my lights to campus in the morning and when I leave after the sun goes down, I do not have my lights. By building this light system that would no longer be an issue. I made this system automated by detecting when the user was sitting on the bike seat to turn the lights on.
How it works:
My light system works by using a micro controller (Adafruit Trinket) to process information from a force sensitive resistor to determine whether or not someone is sitting on the bike seat. If pressure is detected, the Trinket will then blink the three LED’s that have been installed in the seat post. There is a minute long delay in which the LED’s will continue to blink with no pressure on the seat in order to ensure that the lights do not shut off when the rider stands up and pedals.
Adafruit Trinket and force resistive sensor
The whole system is powered by a 3.7V Lithium Polymer battery, which can run for about two to three months. Since you never need to turn the system on or off, the long battery life of my light system was accomplished by putting the Trinket to sleep for two seconds after checking if there is pressure on the seat. After those two seconds, and interrupt is sent to the Trinket to wake it up, check again, and go back asleep. This process only draws ~3 milliamps. Before installing the light system in the bike seat, the circuit was set up using a breadboard.
The force sensitive resistor is placed under the leather layer of the bike seat and the wires from the end were run to the bottom of the seat and into a hole in the seat post. The LEDs were installed by drilling three holes, about the diameter of the LEDs and running the wires to the inside of the seat post while allowing the LED to sit flush against the seat post. The wires were then fed to the appropriate pins or resistors and all connected to the Trinket. All of this was soldered together, wrapped in electrical tape and placed inside of the seat post. My code was loaded onto the Trinket using Arduino with added support for the Trinket. A tutorial of how to add the support can be found here: https://learn.adafruit.com/introducing-trinket/setting-up-with-arduino-ide.
**Be sure you are using a usb cable for changing AND data transfer when attempting to load code onto the Adafruit Trinket**
Because the system is always on, battery life was a huge issue. To handle this, increased the battery life of the light system to ~2 months by having the whole system shut down for 2 seconds, then an interrupt will wake up the system, it will check if pressure is on the seat, and if not the system will shut back down. By doing this, I managed to only have the system on for a small portion of the day instead of the entire day. Because of this, when pressure is applied to the seat, there might be a little delay until the lights come on because the system need to wake back up.
My code for this project can be found here: https://github.com/Linenfelser/LightPost
As stated above, my bike light system is completely hands free which means the user does not need to do anything to turn it on or shut it off. All the user needs to do is sit on the bike seat (assuming it is already installed).