PURPOSE
This project displays the current coordinates of the International Space Station (ISS) above the Earth. This is a fun desk toy for those with an interest in space exploration and a reminder that at this very moment humans are living in orbit.
DESIGN
From the outside this small desk globe looks like just that. On the inside however, a simple pan-tilt mechanism allows the servos full range to point the laser anywhere on the internal shell of the globe. Due to the servos being limited to ~180 degrees, a gear reduction is used which allows the motor responsible for longitude positioning to achieve one full rotation.
CONSTRUCTION
The first step was to split the globe in half. Mine was not designed to come apart so I used a razer blade and screwdriver to create some separation and pry the two halves apart at the equator.
The next major step was to begin modeling in Fusion 360. I started with the main body of the internal structure knowing that it would hold both motors, the laser, and the circuit board (Figure 1). The internal structure needed to be balanced about the vertical axis so the two servos were mounted opposite one another. It was also important that the laser would be located at the vertical center point of the globe to simplify calibration (Figure 2).
With all the components in place on the main body, the next step was to ensure the structure could be rotated to reach every longitude position. A gear reduction was needed to extend the servo's theoretical 180 degrees of rotation to the full 360 (Figure 3). A 28-tooth pinion gear is attached to the lower servo and meshes with the 12-tooth Mounting Gear (Figure 4) which is rigidly joined to the globe. This creates a gear ratio of 3:7 to give some overlap to a full rotation so no longitudes are missed.
The electronics are built around the ESP8266 NodeMCU and soldered to a PCB. The NodeMCU is a microcontroller capable of connecting to Wi-Fi and requesting data from an API as well as basic microcontroller functions like controlling the servos. Power is delivered through a 2.1mm barrel connector from a power supply of 9V-35V. The power-in is regulated down to 6V by the NTE962 voltage regulator before being supplied to the NodeMCU and the servos. The laser diode is connected directly to the 6V supply line and ground so it is active whenever power is supplied to the board.
With all the electronics soldered to the PCB and the 3d printed parts assembled its time to secure the internal structure to the globe. The globe I'm using has holes at the North and South poles that the Mounting Gear was designed to press-fit into. The fully assembled internal structure (Figure 2) can be mounted upside-down to the upper half of the globe and secured with a machine screw to the cap (Figure 5). This cap with press-fit nut not only secures the internal structure from falling but also serves to tighten it to the globe so when it is properly aligned at its starting position it won't slip. Before tightening I zeroed the servos so that the laser would point at the intersection of the equator (Latitude = 0 degrees) and the International Date Line (Longitude = 180 degrees).
Next I hot-glued a 2.1 mm barrel connector to the opening at the base of the southern hemisphere of the globe (Figure __). It is important to secure the wires to the plug before gluing because they will be inaccessible to a screwdriver after. I kept the wires long to give extra slack so the rotation does not put stress on them and so they can be more conveniently secured to the PCB before closing the globe.
The globe's mounting base is not only responsible for displaying the final project but also transmitting power to it. It has a female barrel connector on the backside and a toggle switch on the front so it can be powered on and off without needing to unplug it. A male barrel connector sticks up from the top for the globe to securely mount on to. I designed a custom barrel plug mount so it can be mechanically joined to the base without needing to hot-glue it in place. This design allows the globe to be manually spun relative to the base whiteout interrupting power transmission so you can adjust which side of the globe is facing forward.
CODE
The ESP8266 is programmed to do the following in normal operation:
1. Connect to the specified Wi-Fi
2. Retrieve the current coordinates of the ISS from the online API
3. Convert the longitude and latitude from String to Double data type
4. The latitude and longitude are converted to a value between 0 and 180
5. The latitude servo rotates the laser to the latitude position
6. The longitude servo rotates the internal structure to the longitude position
7. Reset timer
OPERATION
When plugged in the internal laser will reset to latitude zero (equator) and longitude 180W/E (International Dateline). The Globe will then update every 5 seconds with the current coordinates of the ISS as it orbits from West to East. When the ISS reaches the 180 E, the servo’s limit, it reverts 180 degrees back to 180 W.
SHORTCOMINGS
- The globe I used has a black plastic strip running across the equator that holds the two hemispheres together. The laser is unable to shine through this plastic and therefore cannot track the ISS as it passes across the equator (approximately +/-5 degrees latitude)
- When the globe is attempting to connect to the local network the laser centered at the equator will move randomly up and down. This is likely due to the signal pin used for the latitude servo being used by the ESP8266 for another purpose. This is only noticed during connecting so it does not interfere with normal operation. This could be solved by changing the pin connection.
Comments
Please log in or sign up to comment.