Total solar eclipses are rare — at least from the perspective of any specific point on the planet. A total eclipse will occur somewhere on Earth once every 18 months or so, but that is more likely to track across the middle of the Pacific Ocean than wherever you happen to be. That made Bernd Kraus feel like he was missing out, so he used an Arduino to build this machine that produces a personal solar eclipse every day.
This is a kind of robot that can move a cutout of the moon to any point on the 2D plane of Kraus’s window. Like the sun and actual moon, the size relationship is important and the cutout is the precise diameter necessary to block the sun. And also like the real deal, the position of the viewer is important. Luckily, Kraus tends to sit in the exact same location whenever he is in that room and the sun’s path (or, rather, Earth’s rotation and orbit) is predictable. A bit of fancy math is all it takes to determine where to place the cutout to project a shadow over the area where Kraus’s face should be.
The hardware of the robot consists of two stepper motors, a solar panel with charger, an 18650 lithium battery, an HM-10 module, and an Arduino Nano board to control everything. The solar panel attaches to the back side of the moon cutout so it gets good exposure. It sends power up through the wires from which it hangs. The Arduino receives position data from Kraus’s smartphone via Bluetooth, calculates the point where the cutout should be, and then moves the cutout to that point using the two stepper motors.
Now Kraus gets to enjoy an eclipse at all times. And as a bonus, he doesn’t have sun shining in his eyes while he’s trying to watch TV.