Coming into this class, one of my core objectives was to be able to rapidly prototype components which
comprise an extensible solar energy solution. For this to be feasible, the capacity of each component
should be easily scaled up or down to fit the needs of the workload (for either residential or SMB usecases)
That said, the following Figure 1 depicts my GIMP attemp of illustrating what the major components of said
solar system would be.
Figure 1: Final project design(Speculating)
--Pivot to bicycle helmet for turn and brake signaling
The pain point here is that some bicycle riders find it awkward to put their hands out when they want to signal
turning left or right, and often times, when it is dark, these hand signals go unnoticed. So I want to create
a bicycle helmet that will sense angle position change, as well as drastic changes in acceleration, and use this information
to determine whether a rider wishes to turn left or right, or whether brakes are being applied. Lights will then
illuminate and flash on the helmet in accordance with how car indicators work. Figure 2 below depicts what this might
look like.
Figure 2: Final project design (Settled)
During the input devices week, I was unable to find the accelerometer I designed my board with, but since then I
redesigned my board with the part that we had available in lab. I also designed a board, which I will consider my
main board, with a Atmega328 IC, on a board that exposes input and output pins for easy access and connection to
subsequent peripheral boards; for instance, the accelerometer sensor board would be one that will connect to it.
I milled out both boards, but there was some difficulty I experienced with the picth of the pins on both the 328 IC,
and the accelerometer. After designing in Eagle, I needed to adjust the width of the pads to allow for more spacing for
the tool diameter of the 1/64 bit on both the SRM-20 and the Othermill. Figure 3 is a depiction of the board designs,
and Figure 4 is a depiction of the trouble areas as shown by Neil's software for the SRM-20, as well as by the Othermill.
Figure 3: Atmega328 and Accelerometer board designs
Figure 4: Trouble areas on board (SRM-20 and Othermill software)
I edited the pads of the boards using Microsoft Paint - just to see if it would make a difference, and it did.
The next step was to mill out the boards and then solder the components on, for which I started with the components
on the board that would prove most difficult to solder. On the accelerometer board that would be the accelerometer, and
on the 328 board, it would be the 328. I had to do a reflow method for the accelerometer board. The process was to place
solder on the pads on the board, and wick out the excess so solder was only on the pads. I then did the same for the
pins on the acceleromter itself (this was unexpectedly easier than the board - solder separated easily and only stayed
on the copper pins). I placed the accelerometer on the board and used a heat gun targed to that area, to melt the solder
on both the board and the pins to fuse together. Figure 5 shows what I discussed here.
Figure 5: Stuffed 328 and accelerometer
--In the interest of spiral development...
In the interest of spiral development, I wanted to focus on the functionality of the indicators - first with the LED
turn signal indicators in the front and in the back, then the headlights and rear reflector lights, then finally,
on the braking system (all initially done in a simple enclosure (in this case a box), and then taken and applied
to something that can be put on any helmet, i.e. a band that wraps around any bike helmet, and then finally a full
bike helmet. Let's see how far we get.... For the purposes of this class, if I can successfully get a working box
with indicators, headlights, and rear reflectors working, with some tilt sensing mechanism communicated via I2C, then
I will consider that a success.
... towards a successful final project implementation!
All files for the rest of this process can be found here.
--Step1: Design and mill the remaining PCB boards
In the spirit of spiral development, I needed to design the remaining boards for the functionality I wanted - an LEDs board, an updated Atmega328 kit,
a switch board (connected to a battery back and a voltage regulator), and then board with those two initial designs together (ultimately
did not work out from a testing stand point, but the design was solid - I will need to update the design). The following figures 6 to 11 depict the
process.
Figure 6: Updated Atmega328 kit design
Figure 7: Atmega328 and Accelerometer board designs
Figure 8: Combination of switch board and Atmega328 board
Figure 9: Milled out combination board
Figure 10: LED board combined on one PCB for testing
Figure 11: Individual LED board design
--Step2: Get the communication protocol working
Here I needed to get the communications protocol working (something I have been battling with for a long time)
I was able to finally troubleshoot and determine that I had the wrong pins for communicating, and my board with
my accelerometer did not have the right connection. I looked at the class site and cross referenced the connections
from the t45 to the 328 and the ADX343 PAINSTAKINGLY! This ultimately worked, after I redesigned the accelerometer
board.
Spiral development: Test LED board with the microcontroller board for one pin, then two pins, then test the
tilt sensing mechanism in code (here I needed to extrapolate from Neil's ADX343 python file for the "two's complement
code", and this ultimately worked).
Working LED Board
Working LED Board on both sides
--Step3: Program the board to display tilt sensing mechanism
Working accelerometer sensor test (FINALLY!!!!)
I2C finally worked on this board, and like I mentioned above, the problem was with my connections
on the accelerometer board. As soon as this was corrected, I modified the code on the repo (Neil's hello world
code for the accelerometer), to get the functionality I needed, after testing that the base code worked (with
some minor tweaks to pins and input output conditions from the t45 that was used in his board design, to map
to my Atmega328 for my 328 kit used for this project.
Now I tested the sensor flash routine for left and right turn signal indicators.
Pulling the input from the accelerometer via I2C, and then converting that 2's complement
data to an integer value to check against - this value is used to determine angle of tilt.
Final working functionality, as the video below shows: Now I can make the enclosure.
Pick up the device and keep it horizontal, and the LEDs go on as headlights and rear indicators,
then turn one direction or another (over a particular threshold), and the LEDs respond to whichever
direction. Place the device back down, and it turns off. All done in C programming.
--Step4: Design the enclosure and put the parts together
The following figures depict the steps I took to put the parts together
Figure 12: Box Design
Figure 13: kerf Testing
Figure 14: Laser cutting the box
Laser cutting the box
Figure 15: Foam inset and the laser cut box
Figure 16: Stuffed foam inset with the battery enclosure, and the laser cut box
Figure 17: System in the enclosure
--Step5: Test the final product
Final working product test
The next step I'm leaning towards would be to follow this up with a design of a band that one
can put on top of a helmet, or just on the head, to provide the functionality, for cyclists and
runners (night runners, specifically) alike.