After the light box was printed and completed, it was time to finalize the code and add the components to make the box actually function. The code was built and uploaded to the Arduino microcontroller to make the neopixel matrix light up and the other components link to and alter qualities of the neopixel light.
The code to make these components work was built in the Arduino software. It was then uploaded from a computer to the Arduino board. Jumper wires connected the Arduino to a breadboard (the white rectangle) which then connected to the components and made them functional. This system created a closed circuit for each component separately, although it was possible to link up their actions via the code. Coding all these components to work correctly can be a complicated and frustrating process. It only takes one tiny inaccuracy to mess everything up. Ultimately, I was able to get the code and components working (for the most part!).
The images below show all the different pieces coming together while coding and how all the different elements lived together (in quite a mash-up) inside the final light box.
The final 3D physical print of my light box.
After testing out a smaller prototype and finalizing all the components that would be used in the final project, it was necessary to make several changes to create the final model for printing:
- The idea of the box being a perfect cube was something that had to be let reworked. Because of the size of the various components and the desire to contain the Arduino and breadboard within the box, the final design needed to be much taller to allow for everything to fit.
- The final design included open slots for each of the three main components on the front and two sides, which sit closer to the bottom of the box.
- The back side of the box is a separate piece; it is able to be pulled out in order to get to the elements inside (Second image is of the “back door”).
- Near the top of the box are two unique elements designed to hold different components. The neopixel matrix light grid rests on a ledge that juts out from the front and two sides. Above this ledge is an inset shelf. This shelf allows for a transparent piece of plastic to slide in to the very top of the box, serving as a barrier between the light grid and any potential human contact.
Once the model was built in Rhino, it had to be exported and opened in the Makerbot software program. This software is compatible with the 3D printer I used and allows the user to place the model on the printer bed and make final adjustments. Once the model is ready to print, the file can be sent to the Makerbot and printing begins.
In parallel to figuring out the materiality and size of my light box, it was also important to figure out the physical components that would turn the box into an interactive object. These components would work in conjunction with code exported to the Arduino and the Arduino board itself.
Neopixel Matrix: After consulting with my professor, we decided that trying to build my own light matrix by soldering together individual LED lights, would be difficult and possibly not work. Because of this, I ordered a Neopixel light grid matrix, a single component that contains 64 LED lights on a plane and is easy to code as one piece. This light matrix will sit at the top of box and serve as the light source for the final object. All the other components are linked to this matrix and affect various qualities of the light.
Button: The button will sit on the front face of the box and turns the light on and off.
Potentiometer: The potentiometer sits on the right face of the box. The potentiometer is a dial component and by turning this dial, the intensity, or brightness, of the light will grow stronger or dimmer. This allows the user to control how much light there is. Research has shown that the ability to slowly remove or add light into a room can help children that have sensory issues better adjust to their surroundings over time.
Linear SoftPot (Ribbon Sensor): The linear softpot is a long sensor that allows multiple points of interaction to be coded along its surface, meaning that there can be three different points that, once pushed by a user, can result in different reactions. This sensor was coded with three push points that allow for the light color to change in a spectrum. The spectrum is a range of shades of blue, from darker/purple blue to lighter/green-blue. Research has shown that blue light specifically can have a calming effect on children with autism, thus the reason the range sticks to blue tones.
As a test, I decided to print out a box at 50% of the size I was planning for the final light box. The model for the box was built in Rhino and was 3in x 3in x 3in (half of the 6in x 6in x 6in box I was planning to make). One of the benefits of 3D printing the model, versus using other materials or equipment is that the box can be printed in one piece. This eliminates the need to design for specific fastening and corner joints. Modeling in Rhino also allowed me to create inset shelves and ledges for different pieces to rest and sit in the final box.
Things I Learned:
- The box is durable, but it will be important to make sure all the components, Arudino, and breadboard will fit into and onto the box.
- The back door is not printed yet, but it will be important to make sure the mechanism for pulling the back out and putting it back in works effectively.