Inspiration

Inspired by the theme "Into the Skies" at HackPHS, we wanted to explore how everyday gaming hardware could be transformed into a functional robotics system with potential aerospace applications. We were particularly interested in creating a device capable of precise directional movement and controlled launching, drawing inspiration from technologies used in satellite positioning, weather observation, and aerospace tracking systems. Our goal was to bridge the gap between consumer gaming technology and robotics by using an Xbox controller to control a custom-built, Arduino-powered mechanism.

What it does

SkyForge is an interactive, two-axis robotic turret controlled through an Xbox controller. It uses two motors to provide horizontal rotation and vertical tilt, allowing users to control the mechanism intuitively.

  • Horizontal movement: A stepper motor rotates the base left and right.
  • Vertical movement: A servo motor adjusts the tilt of the launching arm.
  • Proportional controls: Joystick movement determines motor speed, allowing faster joystick movements to produce faster motor responses.
  • Controller integration: The Xbox controller provides direct input for movement and firing.
  • Firing mechanism: The X button activates the launching mechanism to propel ball-like projectiles.
  • Safety reset: Pressing the B button resets the turret to its default home position: 0° horizontal rotation and 90° vertical tilt.

Beyond its current capabilities, SkyForge could serve as a starting point for exploring applications such as satellite-tracking mechanisms and weather-monitoring systems.

How we built it

We built SkyForge using an Arduino microcontroller, custom 3D-printed structural components, a stepper motor, a servo motor, a breadboard, and jumper wires. The mechanical structure was designed to support two-axis movement while remaining compact and customizable. We programmed the system using C++ in the Arduino IDE and Python in Visual Studio Code. Python handles the Xbox controller input and communicates the desired movements to the Arduino, where the C++ program controls the motors. The right joystick controls horizontal rotation, while the left joystick controls the launching mechanism's movement. The X button activates firing, and the B button initiates the home-position reset. We also implemented proportional velocity control so that motor movement responds to the magnitude of joystick input rather than operating at only one fixed speed. Combining the mechanical assembly, controller input, Python communication, and Arduino motor control allowed us to bring the different components together into one interactive system.

Challenges we ran into

One of our biggest challenges was dealing with wiring issues. Connecting the Arduino, breadboard, motors, and controller-related hardware required careful attention to connections and signal paths. Even small wiring mistakes could interfere with the system's behavior, making troubleshooting a significant part of development. We also faced challenges integrating multiple programming environments and hardware components. Python needed to interpret controller inputs correctly, while the Arduino's C++ code had to translate those inputs into the appropriate motor movements. Getting the horizontal and vertical controls to respond in the intended directions required additional debugging. Another challenge was implementing proportional velocity control while maintaining predictable movement. We wanted the system to feel responsive and intuitive without sacrificing control. Establishing a reliable home position for both motors also required coordination between the controller commands and the Arduino's motor-control logic. These challenges taught us that building a working robotics system involves much more than writing code: the hardware, software, and communication between them must all work together reliably.

Accomplishments that we're proud of

We are proud of integrating an Xbox controller with an Arduino-based robotic mechanism and creating an interactive control system from individual components. Rather than relying on a prebuilt robotics platform, we assembled the structure using custom 3D-printed parts and connected the electronics ourselves. We are particularly proud of implementing proportional velocity control, which makes the system more dynamic than a basic controller with fixed-speed movement. The home-position reset also provides a convenient way to return the mechanism to a defined orientation. Most importantly, we brought together mechanical design, electronics, Python, C++, and real-time user input in one project. SkyForge demonstrates how accessible hardware and software can be combined to explore more advanced robotics concepts.

What we learned

Through SkyForge, we learned how to integrate hardware and software across multiple platforms. We gained experience working with Arduino motor control, Python-based Xbox controller input, serial communication, and the coordination of stepper and servo motors. We also learned the importance of wiring accuracy, systematic debugging, and testing individual components before integrating them into a larger system. Troubleshooting electrical connections showed us that software errors and hardware problems can sometimes produce similar symptoms, making a structured approach to debugging essential. Additionally, implementing proportional control helped us understand how input magnitude can influence motor behavior and how control systems can make robotic mechanisms more responsive. Overall, the project strengthened our understanding of robotics as a combination of programming, electronics, mechanical engineering, and iterative problem-solving.

What's next for SkyForge

We want to improve SkyForge's reliability by resolving our remaining wiring issues, refining the motor-control system, and making the mechanical assembly easier to maintain. We also hope to improve movement precision, enhance the controller interface, and make the home-position reset more reliable. Looking further ahead, we would like to investigate how the platform could be adapted for non-launching aerospace applications, such as tracking simulated satellite trajectories or positioning sensors for weather observation. Adding suitable sensors and tracking software could allow us to explore automated positioning and feedback-based control. Ultimately, our vision is to develop SkyForge from an interactive prototype into a more reliable robotics platform that demonstrates how affordable microcontrollers, custom fabrication, and familiar gaming hardware can open the door to aerospace-inspired engineering.

Built With

Share this project:

Updates

Submission history