REVOLIGHTS™: ARDUNIO CLONE Zack Fowler Network Security & Electronics Program, Dept. of Applied Engineering & Technology, Eastern Kentucky University 1 OUTLINE • • • • • • • • • Abstract Motivation Introduction Problem Statement Proposed Solution Implementation Results Conclusions Future work 2 Abstract As more people look to bicycling as a healthy and cost-effective method of transportation, tackling safety concerns becomes even more important. The Revolights™ system is a great way to help improve bike riders’ visibility at night but does not come cheap. This is my economical Arduino-based clone of the Revolights™ system that offers life-saving technology to more people. 3 Motivation • Since 2000, ACS data shows a 61.6% increase in bicycle commuting and the trend is continuing to grow. • Addressing the safety concerns of commuting by bicycle is important to keep this trend. • Some products, such as the Revolights™ system, are revolutionizing bicycle safety at night but are affordable only to a small fraction of riders. • This project aims to reproduce the Revolights™ technology in a way that is both affordable and DIY-friendly 4 What is Revolights? 5 Introduction This project requirs learning/refreshing the following skills: • Arduino programming at an intermediate level. • Basic circuit design • Basic Soldering • Basic knowledge of bicycle mechanics 6 Problem Statement Conventional bicycle lights that mount to the handlebar stem or seat stem do not offer the rider sufficient visibility to vehicles approaching the biker at a perpendicular angle. The Revolights™ system provides a great way to solve this issue, but the high price of the product prevents many people from affording this revolutionary technology. This project addresses the high cost of the Revolights™ system and provides a much cheaper, DIY alternative. This technology will prevent bicycle-related injuries and fatalities and that is something that every rider should have access to. 7 Assumptions The final product of this project is exposed and vulnerable to weather and rough conditions. Since this project is assumed to only be used at night and on paved surfaces, I did not spend any resources on making this project weather proof, terrain proof, or aesthetically pleasing (the wiring). 8 Proposed Solution • Steps taken to solve the problem: 9 – Brainstorming – Learning and Designing (Arduino coding) – Writing Code – Choosing and ordering parts – Assembling hardware – Installing hardware – Testing code – Rewriting code – Future improvements Brainstorming I brainstormed the entire duration of the project as I was faced with new challenges and options: • Platform – Arduino, Attiny 167, etc • Road Bike vs new commuter bike • Number of LEDs, colors, size of arc • Which functions/variables to use in Arduino – millis(), arrays, float, long, attachInterrupt 10 Learning and Designing • I didn’t formally design any diagrams or schematics (except some flow charts) for the purpose of aiding in the building of the system, but I made some for the presentation. • I had to learn a TON about Arduino to pull this project off. I used the Arduino learning page and YouTube to do this. • Majority of time spent researching the millis() function as that is the primary function driving my project. • I also researched a lot about arrays to shrink the size of my code considerably. 11 12 14 Grand total of 200 lines of code 18 Writing Code • I spent weeks pouring through the tutorials on Arduino’s main page and watching YouTube videos. • I had help from my friend Henry who is a software developer. • Creating a flow chart was a huge help. • Trial and error before installing the hardware – I plugged the strands into a breadboard and watched the sequence of lights. • Testing the code that way was difficult because it was impossible to tell if the arc was correct without the lights spinning. 19 Choosing Parts • Platform – I chose Arduino because it is cheap (although not nearly as cheap as Attiny chips), very well supported/documented, and I had one avilable. • The LEDs that are used were chosen because I could buy them in almost the exact quantity I needed, they were cheap, and they are bright with a decent viewing angle. • The hall effects sensor that is used was chosen because it works exactly like a digital reed switch, making it simple and cheap. 20 21 Assembling Hardware • I spent a couple hours in the lab soldering all of the LEDs, resistors, wires, and hall effects sensors together. • The LEDs are wired in parallel, 12 pairs in white and 8 pairs in red, with one 620 ohm limiting resistor per pair. • I verified that each strand of hardware was operational directly after soldering it together. 22 23 Installing Hardware • To attach each strand to a spoke, I removed the spoke with a special tool and slid the strand around it and reset the spoke. • I used electrical tape to secure the strand to the spoke, covering all exposed wiring. • I tested each strand immediately for functionality after taping it to the spoke. • After all the strands were secured to the spokes, I zip-tied the Arduino board as close to the center of the wheel as possible. 24 25 26 27 Installing Hardware • At this point, each strand had more than enough wire to reach the appropriate pin on the Arduino. • One at a time, I trimmed the positive wire of each strand to an appropriate length and inserted it into the correct pin. • For the negative wires of each strand, I bundled them together, along with a wire grounded on the Arduino, and soldered them all together to form a common ground. • I zip-tied the battery pack to the spokes to the spokes to provide power. 28 29 30 31 Testing Code • I could not accurately test the interaction between the sensor and my code until all of the hardware was mounted on the wheel. • To test my code, I would load it onto the Arduino and manually spin the wheel and observe the resulting LED sequence at different speeds. 32 Rewriting Code • Due to proper planning and sufficient time invested in learning how to program the Arduino, no code modifications were necessary for the front wheel. • However, once I realized the back wheel could only use 8 LEDs, I had to edit the array, the calRPM function, and the refreshLEDstate function to get the arc working correctly. 33 Future Improvements There is plenty of room for improvement on this project, including: • Shrinking the project by using a chip like the Attiny 167 to replace the Arduino. • Weather proofing the project and making the wires non-detachable. • Decreasing the chance the LEDs become disoriented. • Improving the overall aesthetics. 34 35 Future Improvements Some more additions I would like to eventually add to this project: • Solar powered or rechargeable • Wireless programming or programming via mobile (Android) • Randomized stanbymode patterns • Multi-color LEDs • LEDs that respond to music 36 Implementation • Getting the front wheel working was very straightforward and went surprisingly smoothly. • Approaching the back wheel with the assumptions that it was going to be the same process as the front wheel was a mistake. • The back wheel has 32 spokes whereas the front has 36, making it impossible to have 12 evenly spaced strands. • Because of this, I had to rewrite parts of the code to accommodate 8 strands. • Also, since the front wheel’s arc was 4 LEDs (120 degrees) and the back wheels was also 4 LEDs (180 degrees) I had to change the code for the front wheel to make a 6 LED arc (180 degrees) to match. 37 Results • The most important result is a fully functioning Revolights™ clone using Arduino technology. • This clone can also be reprogrammed by the user to alter the light sequence to their desire, an added functionality. • The end result is cheap and DIY friendly, and most importantly it can save lives and prevent injuries. 38 Video 39 Conclusions • This project was a ton of fun and I learned so much from it, especially how to motivate and educate myself. • I fell in love with the simplicity and power of Arduino, I am inspired to build many more projects based on it. • I feel like a badass riding this bike at night now. 40 References 1. Arduino - Learn the basics. (n.d.). Arduino - Learn the basics. Retrieved March 28, 2014, from http://arduino.cc/en/Tutorial/HomePagehttp://arduino.cc/en/Tutorial/HomePage Program an ATtiny with Arduino. (n.d.). Instructables.com. Retrieved March 28, 2014, from http://www.instructables.com/id/Program-an-ATtinywith-Arduino/ Revolights. (2013, July 22). YouTube. Retrieved March 28, 2014, from https://www.youtube.com/watch?v=yVjL6PN4_I4 bildr » A Strange Attraction. Various Hall Effect Sensors. (2011, April 5). bildr RSS. Retrieved March 28, 2014, from http://bildr.org/2011/04/various-hall-effect-sensors/ Open Source Hardware Group. (2012, August 10). Tutorial 12: Blink an LED without using the delay() function: Arduino Course for Absolute Beginners. YouTube. Retrieved April 20, 2014, from https://www.youtube.com/watch?v=y17QOtAVn_s Ribaric, T., & Younker, J. (). Arduino-enabled Patron Interaction Counting. Code{4}lib Ken. "ACS: Bike Commuting Continues to Rise | League of American Bicyclists." ACS: Bike Commuting Continues to Rise | League of American Bicyclists. N.p., 25 Sept. 2013. Web. 2 May 2014. <http://bikeleague.org/content/acs-bike-commuting-continues-rise>. 2. 3. 4. 5. 6. 7. 41 Acknowledgements • • • • • • Picture on Slide 1 - http://arduino.cc/en/Trademark/CommunityLogo Video on Slide 4 - https://www.youtube.com/watch?v=-UvO3QITwkU Picture on Slide 2 - http://www.freshnessmag.com/2013/04/08/revolights-x-mission-bicycle-company/ Picture on Slide 6 - http://gearjunkie.com/revolights-bike-lights Hall effect sensor picture Slide 20 - http://octopart.com/oh090u-optek-800069 Picture on Slide 34 - http://atmelcorporation.wordpress.com/2014/04/11/digispark-goes-pro-attiny167-on-kickstarter-%E2%80%A8%E2%80%A8/ I would like to thank my friend Henry Abbey for his invaluable role in helping me with the programming. I would also like to thank Aaron Eastham for his helpful support and encouragement through this project and his 9v battery pack he lent me. Thanks to the team at Revolights™ for designing the original product, it is revolutionary and inspiring. 42