Final Project Documentation
In this post, I will report on the final state of my project for the class, as well as provide all the technical details and data necessary to recreate the model.
I was able to accomplish my initial goal, and I think my result is even better than my original vision. Initially, I planned to create a 2D model on a flat plane.
Although this would have allowed a viewer to see the whole model at once, I think the addition of depth and shape to the model makes it far more interesting. The final result can be viewed from any angle, and has much more apparent depth despite using a fairly small number of LEDs:
While I am happy with the final result, if I were to do this project again there are certainly parts I would change. The biggest would be the LEDs that I used. Instead of normal LEDs, I could have used NeoPixels, which can be individually controlled while only taking up a few pins on the Arduino. This would have eliminated the need for shift registers, making the wiring far simpler. Furthermore, they can support a wide range of RGB values, rather than just a single color. With that flexibility, I could have added more complexity to the simulation, such as including inhibitory neurons which have the opposite effect. While these are mainly sold as strips, they are available individually as well. The design of the sphere could be fairly easily adapted to suit these LEDs.
However, I am also happy that I went the route I did. The more complicated electrical components of this design forced me to learn more about wiring, and especially using shift registers. This was also the first time I designed and 3D printed a fairly complex model. I learned some things about 3D printing, such as what kinds of geometry are impossible to print, and what will come out with errors.
A view of the outside, lit up in a dark room.
Another view of the outside.
A full view of the model turned off in a lit room, showing the shape.
The model is powered by a wall plug, which passes through a small hole at the bottom and plugs into the Arduino.
An interior shot showing the wiring and organization of the protoboards. They are inserted vertically from the top, pushing aside any wires in the way. One board is then connected to the Arduino.
Interior view of the top half, showing how the LEDs are inserted.
Here, I will provide everything necessary to recreate the project as easily as possible. There are three main sections to this: the wiring, the printed model, and the code. Note that I am providing the specs exactly as my model is built, including accommodations for some small errors in the print. The electronic components are as follows:
- 1x Arduino Uno
- 33x Blue LED (This is a pack of 50)
- 5x TPIC6B595 Shift Register
- 2x Solderable Breadboard (This is a pack of 5)
- 1x 12v Power Adapter
Here is the circuit diagram, created using Fritzing. Note that this diagram shows resistors connected to the LEDs, but the listed LEDs have the resistors built in, so they aren’t necessary to include. Also, while this diagram shows a single solderless breadboard, the actual model uses two soldered breadboards, one for each group of shift registers. Finally, the LEDs are not mounted on a strip board, but instead are pre-wired and glued directly into the printed sphere.
The next component is the 3D sphere. This should be printed with clear plastic so that the light from the LEDs can shine through. The model can be viewed in 3D below, and downloaded. The download package has the STL files for printing, as well as the Fusion 360 file if you want to make changes. Note that I experienced print errors in the top section, causing three of the LED sockets to be unusable. If you are able to print this section with all the sockets intact, the wiring and code will need to be adapted to accommodate.
The final component is the code. This can be accessed in the Arduino Web Editor. With these three components, it should be possible to replicate and expand on this project.
Of course, this project would never have happened without Professor Rosenstock teaching the course. In addition, I’d like to thank Will Schwartz one more time for printing the 3D model for me. Finally, the classes feedback each week was vital in improving my project and pushing it forward.