My final project is called “Around Me, The Rotating Globe.” It is a small interactive system where the user has two main options:
The user can select a country on the globe, and the LED corresponding to that country will blink to highlight its location.
The user can rotate the globe either to the left or to the right.
Since my childhood, I have always been passionate about geography and fascinated by the position of different countries on the globe. I was amazed to discover how many small countries exist whether in the East or West, North or South, inside continents or isolated in the middle of oceans.
My main inspiration for this project came from Google Earth, which allows us to see the entire planet in 3D with clear details of every country in the world. It gave me the idea to build a physical version of a globe that people can interact with, rather than only exploring it on a screen.
For designing the Final Project :
To design my project I moved to Fusion 360, a powerful and user-friendly CAD software. It allowed me to design and build the digital model of my project using its many tools and menus. After finishing the design, I used the GrabCad website to bring back the different electronic components to integrate them into the design.
Fusion 360
Autodesk Fusion includes all the 3D design and modeling tools, as well as a complete CAM, CAE product development platform
GRABCAD to download the electronic components that are mounted into the design.
Designing Step in fusion :
Step 0 : Rule 0
We start the designing process with rule number 0, which was:
Open Fusion 360 Software
Create a new component
Save the file
Step 1-a : construction and modification of side 1's sketches
The first step is always to start with one side, and then assemble the other parts around it. Here are the different measurements that I was able to take:
Create a new component "Side 1"
Create a new sketch (ZY plane)
Draw a rectangle
length = 250 mm
width = 50 mm
We create T-slots at the bottom of our design so that it can stand firmly and securely.
On the sides of the box, we will use the X-slot technique to connect them more securely to the other panels.
Step 1-b : Extrusion from different side 1
Now that we’ve finished modifying the sketches, let’s proceed with extruding. Here are the steps to follow in order to extrude the part:
Click on the “Extrude” option in the top-left corner
then select the part you want to extrude
finally choose the thickness you want for that part
Step 2 : copy and paste
After finishing the extrusion of side 1, I duplicated it by using copy and paste to create the new side, that we will call side 2.
Step 3 : copy and paste new
In this step, we copy side 1 and paste it again to create a new part, which we call side 3. Then, we modify this side by inverting the X-slot.
Step 4 : copy and paste
After finishing the modifying the side 3, I duplicated it by using copy and paste to create the new side, that we will call side 4.
Step 5 : Join of the different parts
Now that we’ve finished extrude the different sketches, let’s move on to joining the different parts together. Here are the steps to follow to assemble them:
Click on the “Join” option located at the top-center of the menu.
then select the two part you want to join.
Step 6 : Bottom and Projection
Now we need to create the bottom part (the lower section). To do this, we use the Project tool. And we extrude 3mm.
What the design looks like at the end of step 6
Design Final Look in Fusion 360
LASER CUTTING STEPS: DIFFERENTS PARTS
RDWorks V8
The software that allowed me to modify the design and add a circular base
El Malky ML149 CO2
The Laser cut machine used at FabLab Egypt
Plywood
the wood used at FabLab Egypt
Exported all the faces as "dxf" format using "DXF for laser cutting"
Check the settings with the Fab specialist
Confirm that all print settings are correct (weigh, quality, infill, etc.)
Export the file to G-code and transfer it to the printer
If the settings are correct, export the model as a G-code file and save it to an SD card and then insert it into the 3D printer
Clean the print bed
Use alcohol and a cloth to clean the printer bed to ensure proper adhesion
Check the filament
Make sure the correct filament color and type is loaded and properly inserted in the printer
Start the printing process
Select the G-code file and launch the print
Remove the model and clean it
Once the print is done, carefully remove the supports and take the finished model from the bed
3D PRINTING STEPS:
Ultimaker Cura
the software that allowed me to slice the design, modify the size as well as the quality
Prusa i3 mk3
The 3D Printers machine used at FabLab Egypt
PLA filament
The types of filaments used for the assignment
Draft: 0.2mm
Infill density: 20%
Support: off
Adhesion: off(Our design is small and therefore does not require an adhesion tray)
Check the settings with the Fab specialist
Confirm that all print settings are correct (weigh, quality, infill, etc.)
Export the file to G-code and transfer it to the printer
If the settings are correct, export the model as a G-code file and save it to an SD card and then insert it into the 3D printer
Clean the print bed
Use alcohol and a cloth to clean the printer bed to ensure proper adhesion
Check the filament
Make sure the correct filament color and type is loaded and properly inserted in the printer
Start the printing process
Select the G-code file and launch the print
Remove the model and clean it
Once the print is done, carefully remove the supports and take the finished model from the bed
Small clarification about the 3D printed parts:
To hold the stepper motor in place, I needed a custom support. I also had to create a connection between the stepper motor and the rotating part of the globe, similar to a bicycle mechanism . For this, I searched on Thingiverse.com and found three useful pieces that I used in my design.
To design and prepare my project I used Fritzing, which allows creating and simulating electronic circuits before building them in real life. Here are the main stages I followed:
Steps to build the circuit on Fritzing :
I logged into Fritzing and selected the electronic circuits section
From the component search bar, I selected the following parts:
Arduino Uno,
breadboard,
5 Pushbuttons,
5Leds,
stepper motor,
and motor driver.
Input / Output components :
For the input components, I used an 5 pushbuttons, the user can select a country or if he want to turn right or left.
For the output components, I used Stepper Motor, 5 leds and LCD Screen : the stepper motor turn 360 degre left or right, the 5 Leds turn on when the user select them by using the pushbuttons, and The LCD screen displays text or numbers based on the commands it receives.
My project uses two separate power sources to ensure stable and reliable operation. I used a 9V adapter to power the Arduino board, which provides sufficient voltage for its proper functioning. For the stepper motor, I used a 12V adapter since the motor is rated for 12V. This ensures that the motor receives stable voltage and enough current to operate correctly, maintaining torque without overheating.
Part 1 : Library Inclusion
In the first part, we include the libraries that the project needs:
Wire.h: enables I2C communication.
LiquidCrystal_I2C.h: allows us to control the LCD screen (writing text, clearing it, cursor positioning).
Stepper.h: allows us to control the stepper motor.
Part 2 : Variable Declaration and Pin Assignment
In this section, we declare the variables and assign the Arduino pins for buttons, LEDs, and the motor.
We define the number of steps per revolution for the stepper motor.
We create variables for each button (left, right, down, select).
We set the pins in Arduino for the LEDs that indicate the country selection.
Part 3 : Setup Function
In this part, we initialize all components when the Arduino starts:
Initialize the LCD (lcd.init() and lcd.backlight()).
Set the button pins as INPUT_PULLUP so they can detect presses correctly.
Set the LED pins as OUTPUT so they can be turned ON or OFF.
Configure the stepper motor with the correct steps per revolution.
Part 4 : Loop Function
This is the main part of the program that repeats continuously:
Display instructions on the LCD (for example: “Scroll down to choose a country” and then “Left for left, Right for right”).
Detect button presses.
If the user presses left or right, the motor rotates 360° in that direction and then returns to its initial position.
If the user presses the down button, it allows scrolling through the list of countries.
If the user presses select, it confirms the choice and executes the action.
If the user presses select twice, it calls the reset function.
Part 5 : Rotate Stepper Function (Tried but without success)
This function makes the motor rotate:
It takes a direction (left or right) as input.
It rotates the motor 360° in that direction.
After finishing, it returns the motor back to the initial position (so the globe comes back to where it started).
Part 6 : Select Country Function
This function handles the country selection:
The user scrolls with the down button through 5 countries (Djibouti, USA, Japan, Brazil, Australia).
When a country is selected:
A LED is turned ON.
The LCD blinks to confirm the choice.
Part 7 : Reset Program Function
This function resets the Arduino program:
If the select button is pressed twice in a row, the program restarts.
It clears the LCD, resets the motor, and brings the project back to its initial state.
While writing my code, I consulted different resources and took inspiration from the following websites:
To code the Stepper motor
To code the menu with Arduino et le LCD
To code the Stepper motor:
To code the menu with Arduino et le LCD
Step 1: Assembly of laser-cut parts
I started by assembling the laser-cut sides, joining the T-slots and X-slots together. To make the structure more solid, I used screws and nuts. For the upper globe support, I had originally designed a 3D-printed pillar, but since the printing time was over 36 hours, with Hala’s advice we decided to use a PVC tube instead.
Assembling Complete feature parts (Tried but without success)
Step 2: LCD screen and push buttons
After finishing the main structure, I installed the LCD screen and five push buttons. The LCD has four wires: the power wire was connected to the positive rail of the breadboard, and the ground wire to the negative rail. The two remaining wires were connected to the Arduino. I fixed the LCD to the structure with screws.
For the push buttons, each was connected with two wires and reinforced with tape before attaching them to the structure. One wire from each button was connected to the negative rail of the breadboard, while the other wires were connected to pins 2, 3, 4, and 5 of the Arduino. The exception was the “Select” button, which was connected to pin 13.
For the push buttons, each was connected with two wires and reinforced with tape before attaching them to the structure. One wire from each button was connected to the negative rail of the breadboard, while the other wires were connected to pins 2, 3, 4, and 5 of the Arduino. The exception was the “Select” button, which was connected to pin 13.
Step 3 :Power supply and ON/OFF switch (Tried but without success)
In this step, I added the power supply and switch. The stepper motor needed 12V, so I used the external supply for it, while the LEDs were powered by the Arduino’s own 5V supply.
Step 4: Mounting the Arduino and breadboard
I fixed the Arduino to the bottom part of the project using screws to keep it stable, and attached the breadboard with double-sided tape. Then I connected the two by linking the Arduino’s 5V and GND pins to the positive and negative rails of the breadboard.
Step 5: Stepper motor and driver (Tried but without success)
Next, I installed the stepper motor inside its holder and fixed it with screws, then did the same for the driver. The stepper and driver were connected with a special cable. On the left side of the driver, there were four pins: two for ground, one for 5V, and one for 12V. I connected 5V to the breadboard’s positive rail, ground to the negative rail, and the 12V with its ground to the ON/OFF switch. On the right side, there were two pins: one for step and one for direction. I connected the step pin to Arduino pin 7 and the direction pin to pin 6.
Step 6 : Center connector for wiring (Tried but without success)
To allow connections between the rotating top part and the fixed bottom part, I designed and 3D-printed a connector. I attached it with screws and passed six wires through it: five for the LEDs and one for ground. The five LED wires were connected to 300Ω resistors on the breadboard, then to Arduino pins 8, 9, 10, 11, and 12. The ground wire was connected to the breadboard’s negative rail.
Step 7 : Attaching the globe map (Tried but without success)
Finally, in the last stage of building our project, we assembled the world map around our circular structure. At the center of the circle, I installed the upper circular part representing the globe. In fact, the globe part and the base are not fixed with hot glue or tape; the globe is simply placed directly on the coupler.
Step 7 : Attaching the globe map (Tried but without success)
During the development process, I had to change the original plan of my project and apply Plan B. This alternative plan was composed of three main steps:
Remove the globe concept from the project, including all the related components such as the stepper motor and the pillar used for cable management.
Search for a suitable world map and reproduce it on wood using the laser cutting machine.
Place the LEDs on the wooden world map that was cut and engraved with the laser cutter.
Step 2:
Step 3:
Demo Video :
Video 1
My final project was designed with two levels of features:
Minimum Feature 👉 Create a world map on wood with LEDs placed on five selected countries, and allow the user to light them up using the Select button from the LCD menu.
Complete Feature 👉 Build a 3D globe capable of rotating 360° to the left or right, while also including the LEDs placed on the countries.
During the realization, I attempted to build the rotating globe. However, due to aesthetic and design challenges, I had to abandon this idea and focus on the simpler version. Therefore, my final demo focuses on the minimum feature, which works successfully.
Therefore, in this demo video, you will mainly see the minimum feature.
While working on this project, I received many recommendations from my classmates regarding the design, balance, and wiring. One of the most valuable suggestions came from Omar, who advised me to use a bicycle-like mechanism to rotate the globe when the motor turns. This idea helped me improve the rotation system and make it more stable.
At the same time, I also supported some of my peers like Ossama by sharing my experience with Fusion 360 designing.
Although this project may look simple, I faced several challenges along the way:
1- At first, I had trouble controlling the rotation direction of the stepper motor it kept turning randomly in either direction. With the help of Hala and Abdal-Rahman, we changed the driver, and that solved the problem.
2- I had designed a circular pillar in Fusion 360 to support the weight of the globe, and I planned to 3D print it. However, the simulation showed that printing would take about 36 hours. After discussing with Hala, we decided to use either PVC or cardboard instead. In the end, I used a circular cardboard pillar.
3- The outer slave pulley was slightly smaller compared to the ball bearing size. To fix this, I used sandpaper to adjust the pulley and make it fit correctly.
If I had more time to work on my project, I would have added two fun features:
1- I wanted to integrate a Bluetooth module so that the user could control the options (up, down, right, left, and select) directly from their mobile phone.
2- I also wanted the globe to be able to rotate endlessly in both directions. Since I could not find a slip ring on the Egyptian market, I had imagined a custom wiring system to allow infinite rotation. However, it required too much time and too many jumper wires, so I could not implement it within the project deadline.