Week 13: Project Integration
THE PROCESS (Narrative process only; details and files can be found under the final project page) When I first came up with this idea, I broke it down to the basic components. When I press a button on the ring, I wanted it to connect to a microcontroller in the ring which would send a BLE (bluetooth low energy) signal to the necklace. Then, a microcontroller on the necklace receives the BLE signal, it would turn on some mechanism which would spray out of the pendant. Quickly, I realized I could use a mini pump motor instead of building a mechanical mechanism for the spray, which helped simplify my design. I started with the ring. I wanted the design to be 1) functional 2) as small as possible 3) aesthetically pleasing. I also wanted to make sure that the design was accessible, meaning that if one part broke I could easily replace it and take the entire ring apart without throwing it away. (This was a priority to me because, in my research, I saw that Apple AirPods were filled with glue, which made it impossible to take apart and fix and creates more waste). I drew multiple sketches of what the ring might look like in order to save time while designing in Autodesk Fusion 360. I ended up designing the below ring. The ring itself is hollow, so that the wires from the button can go through without being visible. The microcontroller slides firmly into two slots, and the USB-C port is accessible. When I was desiging the ring, I wasn't sure what my power source would be, so I decided to leave the port accessible to give myself more flexibility down the line. I also included slots on the outside that a ring cover could slide down onto.
Satisfied that I had a physical ring, I began to design the circuit. At first, I was only working with the basic "server" code from arduino (the code is included above under "THE CODE" section). At first, I wanted to integrate the button to send a signal via bluetooth, which would require altering the code. However, I then realized I could use the button as a switch that turns the microcontroller on or off by connecting it through the battery. Not only does this avoid additional code, but it also saves battery power since the circuit is not on 24/7. Now that I knew the ring would be functional, I shifted focus to the necklace before assembling. I wanted to make sure it worked, and that I had all of the parts necessary, before designing the pendant. I started by making sure that the motor would turn on. I first tried to turn the motor on using the same code I would use for an LED, but realized it wouldn't turn on. I checked another motor to confirm that it was the code and not the motor that wasn't working. Then, I copied old code from week 5 using an L9110 motor driver for the motor. The pump worked with this additional motor driver, so I was satisfied and moved on to integrating the motor code with the arduino example "BLE scan" code (included above). Since the button on the ring only turned on the ring microcontroller but did not send a signal, I needed the necklace microcontroller to scan for all bluetooth devices and turn on the motor if it saw the ring's name. (Ta-da! There is no bluetooth connection being made here. I noticed my classmates had a lot of glitches when they made an actual connected, so I wanted to be as simple as possible). PK helped me write code (explained above) that would do this. After some assembly of a relatively simple circuit, I got the motor to turn on when I pressed the ring's button. Now it was time to assemble and build! I quickly assembled the ring by wrapping wires around the button and sliding them through the ring. I clipped them to the shortest possible length and connected one to the battery, and the other to the microcontroller. I then connect the other wire on the microcontroller to the other port on the battery. The ring was assembled, so I quickly measured it and then made a ring cover to slide on. Luckily, the ring cover came out right on the first try. The ring was done! Below is an image of the ring cover:
I then assembled the necklace. I clipped the wires as short as possible, and wrapped the microcontroller, L9110 motor driver, and 350 mAh lithium ion battery as tightly I could. I measured a gap between the motor and the bundled microcontrollers, then 3D printed what I nicknamed the "ink sac". There is a hole in the top for one of the tubes from the motor pump, and a lid on the bottom to refill the sac. Below is the "ink sac":
Time was tight, so I measured the largest width, height, and length of the bundle and 3d printed a box to put it all in. The design wasn't particularly appealing, but it matched the ring, and everything fit snugly without sliding around. The box design is below, followed by the lid, which slides on with the same mechanism as the ring cover.