top of page

EK 210: SMART BIKE LIGHT

During the Fall semester of my sophomore year, I took a class called Introduction to Engineering Design (EK210). In that class, we were instructed to collaborate with several classmates to design and build a working product. My team decided to create a Smart Bike Light.

 

Before creating our bike light, we had to conceptualize our idea to determine what exactly we were going to manufacture. We had to create and prioritize a list of objectives and then come up with metrics that would indicate whether or not we had achieved those objectives. Ultimately, our main objectives were to create a bike light that could automatically modulate illumination levels based on the various ambient light conditions to improve the user’s experience and keep them safe. We also wanted the light to be easily removable from the bike and easy to operate. We then determined the specific functions of the light and came up with means with how to achieve them such as the type of light sensor used, the Arduino used, the light source, and the type of batteries. 

​

​

 

 

 

 

 

 

 

 

 

 

Through this, we were able to come up with a list of materials, which were eventually organized in a BOM Table. 

 

These were the materials used:

  • Ambient light sensor

  • Arduino Nano

  • Various resistors

  • Jumper wires

  • Rocker Switches

  • MOSFETs

  • 10W Led Chip

  • Reflectors

  • HDPE stock

  • Heat sinks

  • 22 AWG Wire

  • Double AA Battery Holders

  • Bike light mounts

  • Battery Connector

  • 3M Vinyl Electrical Tape

  • Magnets

  • Duracell Rechargeable AA Batteries

 

Now it was time to construct our project. We decided to create a front light to allow for riders to see what was ahead of them. Ultimately, the light worked by using our ambient light sensor (which was a photoresistor) to sense light data and would provide data in the form of an input voltage. We specifically chose an ambient light sensor since that would take into account all the surrounding light. After that, the set of input voltages from the photoresistor would correspond to different light levels. The higher the input voltage, the lower the surrounding light. With that info in mind, our Arduino would change the output voltage which would be the light level of the LED chip by using pulse width modulation and creating a range of input voltages that would correspond to different output voltages.

 

When it came to constructing, the first part involved creating the circuit. This was difficult since we weren’t used to using a MOSFET and weren’t sure how it worked with the rest of the components. However, after consulting our Professors, we were able to connect the terminals of the MOSFET successfully with the rest of our components.

​

​

 

 

 

 

 

 

 

 

 

Next, came the code which was primarily my responsibility. I added one of my teammate’s codes that would read the voltage of the photoresistor. After that, I created buckets of code that would modulate the illumination based on the photoresistor voltage. The specific ranges were chosen through a series of testing with a teammate where we tested the LED in an environment that had varying light levels. At first, the code failed to work and we only had two settings instead of the five that we wanted. However, after consulting a TA, we were able to figure out that our LED was connected to a pin that didn’t allow for pulse width modulation so we were able to resolve that issue by just changing the pin. Now the code worked!

​

​

 

 

 

 

 

 

 

 

 

 

 

 

 

With the circuit and code working, it was time to solder and build. One of my teammates CNC milled the enclosure of the light that he had CAD-ed, eventually adding magnets that would allow the enclosure to be easily opened and closed, He also added waterproof vinyl to the enclosure that of course, provided waterproof. Reflectors and heat sinks were also added to the LED to allow it to function properly. Teammate number two soldered the wires of the circuit together and I aided her in the process. Eventually, teammate number one and two decided to make the components more compact by re-soldering so that the user could charge the batteries inside the enclosure using a battery connector. Teammate number three added the mount to the light and performed some testing afterward to ensure that the product worked. 

 

After creating a working front light, we decided to build a backlight to accommodate it. However, the goal was a bit different. Instead of creating a light that would allow the user to see what was ahead of them, this rear light would allow those around the user to be able to see them. This was accomplished by using an accelerometer. The accelerometer sensed the acceleration of the light in the x-direction (since we decided to choose that as the direction of the user’s motion) and then increases the brightness of the LED when the user is speeding up or slowing down to notify those behind them. The circuit for the rear light was essentially the same except an accelerometer was used instead of a photoresistor. For the code, the light levels of the LED would remain dim except when it was accelerating or braking. The manufacturing processes used to create the front light were repeated with the backlight.

 

Originally, we were also planning to add a low battery light that would notify the user when the battery voltage was low using a voltage divider system. However, this ended up short-circuiting our circuit and despite our attempts to fix it, given the time constraints, we were unable to add it. 

​

After that, various testing was done to test the spot size, intensity, and waterproofing, and to ensure that our PWM system worked and that our battery life was sufficient. 

​

​

​

​

​

​

​

​

 

 

 

 

 

 

 

It’s safe to say that we now had a working product.

​

​

​

​

​

​

​

​

​

 

 

 

Lessons learned:

Through this project, I was able to learn about the entire process that goes into creating a product. While we did spend a lot of time building and manufacturing, there was also a lot of time spent conceptualizing the project, which I didn’t expect. One such example was having to create a PCC chart (Pairwise Comparison Chart) which I found was a smart way to determine which objectives were more prioritized than others. I also learned about the importance of communication in teamwork since there were issues that we had to resolve regarding that. We had to update each other when completing certain tasks and if we came across an issue, we had to reach out to our other teammates to try to fix it.

Screen Shot 2023-01-07 at 10.49.53 AM.png
Screen Shot 2023-01-07 at 10.50.30 AM.png
IMG-2072.jpg
Figure 1: PCC Chart used to prioritize our Objectives
Figure 2: Working with a MOSFET
Figure 3: Front Light Code that utilized PWM
Figure 4: Front Light Output intensity vs Input intensity chart. This data proved that our LED was able to increase its intensity depending on the surrounding light.
Figure 5: Front bike light mounted on a bike (left) and a view of the two lights (right)
bottom of page