Neither of us had ever used Arduino or messed around with circuitry before, so we began with some basic tests to learn the fundamentals of Arduino. This is a simple LED control that increases the amount of short blinks by one for each loop.
As we began buying parts and getting acquainted with Arduino, we started practicing with different inputs and outputs for motor control. This prototype involves four infrared sensors, an infrared LED, and two axes of servo motors. We programmed the servo motors to turn in different directions based on which sensors recorded the highest infrared readings from the LED.
For this phase, we built a cardboard prototype to house the electronics and sensors, in order to test out actual motion tracking with infrared light. We got a stronger infrared light in order to control movement from across a room, and calibrated the movement to closely track the movement of infrared light.
The head piece is made up of three 3D printed parts that house all the electronics and glide smoothly around the globe. I modeled all the parts in Solidworks, 3D printed and sanded it down, covered it with a smoothing coating, and spray painted it black to match the globe.
We used laser cut plywood for the bulk of the interior pieces, as well as for housing the external electronics and power sources. We went through a bunch of iterations before landing on designs that were both strong and lightweight.
In order to make disassembly and reassembly convenient, we built a twisting lock to connect the arm to the head using custom 3D printed and laser cut pieces. The arm fits into the slot and locks tight with a 90 degree twist, while allowing room for cords to fit through the center hole.
In order to allow the lamp to spin 360 degrees, I modified one of our 180 degree servo motors to rotate continuously. I disassembled the motor, took apart the gears, and grinded down some metal pin stops and slots with a drill press.
I also removed the internal 5k pontentiometer and replaced it by soldering two 2.2k resistors onto the internal circuit board in its place. This allows for a continuous velocity input instead of inputting specific angles.
After some long, long nights of rewiring, soldering, and code calibration, we got the light to track movement in both directions with all the final parts. The last step left was to build the mount and put everything inside the globe housing.
This is all of the electronic components wired up. Dwight built a laser cut plywood housing for all the power sources and circuit board. Throughout the project, Dwight was mainly responsible for the bulk of the final wiring and internal electronics, while my main job was the physical part construction and coding.
Cord control was super important and unbelievably frustrating at this stage. With so many moving parts, we had to make sure that wires stayed connected and didn't get coiled up around the arms.
A ton of wires kept disconnecting and breaking when things moved around too far. We went through a bunch of iterations until we could find a method that kept all the wires and parts connected despite so much movement going on.
Well, we sort of saw this coming. Once we went past the point of no return by encasing this thing inside an unopenable acrylic globe, we lost the ability to rewire loose parts. Some stuff split apart inside, and we couldn’t fix it without breaking the whole body.
Since we couldn’t demonstrate motion tracking in the fully assembled state for our final presentation, we rigged up a wired joystick to show 360 degree movement on command.
It’s crucial to maintain access to those internal pieces when building a physical product like this. As I build more Arduino projects in the future, I’ll definitely keep this and many other valuable lessons we learned along the way in mind.