Sparky: the Open Source Humanoid Robot

by TanishMuraliReddy in Circuits > Robots

3286 Views, 45 Favorites, 0 Comments

Sparky: the Open Source Humanoid Robot

IMG-5089.jpg

My passion for crafting robots led me on a journey of exploration across the web. Along the way, I encountered numerous humanoid designs that, though impressive, often came with a hefty price tag or complex construction demands. This revelation sparked a new initiative – the introduction of Sparky, an open-source humanoid robot that embraces a budget-friendly approach without compromising on innovation.

Sparky is designed with accessibility in mind. Tailored for those intrigued by robotics but lacking advanced experience, it's a project that becomes truly feasible with the presence of a 3D printer. This crucial tool empowers novices, transforming intricate concepts into tangible reality. As a High Schooler, I wanted a cheap platform to build off, which is exactly what Sparky is made for.

This innovative creation doesn't just stop at affordability. Sparky is primed for versatility and adaptability. By integrating the power of Robot Operating System (ROS), it gains the capability to communicate and navigate with ease. The utilization of an XBOX 360 Kinect sensor empowers Sparky to venture into the realm of self-navigation, marking a significant stride forward in its capabilities.

Even for those taking their initial steps into the world of robotics, Sparky extends an inviting hand. Through the utilization of a Hiwonder 24-channel digital servo controller, beginners can seamlessly program the robot, initiating its movements and actions with simplicity.

Supplies

Since this project is for people with some robotics experience the tools and supplies you would need are the following:

  • Arduino board(optional)
  • Voltmeter Module
  • Rocker Switches
  • Hiwonder 24 digital channel servo controller(for easy controlling for beginners)
  • 4 x Digital Servo 80kg Metal Gear
  • 4 x Digital Servo 60kg Metal Gear
  • 5 x MG996R(20kg geared servos are better)
  • step-up module
  • 16xLED
  • Jumper Cables
  • Soldering Iron
  • Hot glue gun
  • Super Glue
  • 5-6 rolls of 3d PLA filament
  • 3d printer(Cr-10 or Ender 3)
  • PVC Pipe
  • Scrap wood or wood for the base
  • High torque DC Motor
  • l298n motor driver

3D Printing

Screenshot 2023-08-29 104702.png
IMG_5868.jpg

When it comes to 3D printing the parts, if you have access to a printer with a larger 12-inch x 12-inch build plate, that would be the ideal choice for a seamless print. However, for those using an Ender 3 or a printer with a smaller build plate, you can still successfully print the parts by following these steps:

  1. Segmented Printing: Since smaller build plates have limitations, consider breaking down larger parts into smaller segments that can fit within the available space.
  2. Cutting Steel Parts: If necessary, cut any steel parts to accommodate the smaller print bed dimensions.
  3. Printing in Pieces: Print each of the segmented parts individually, ensuring they fit on the smaller print bed.
  4. Assembly with Adhesives: After printing, use super glue to carefully join the printed segments together. To create a sturdy bond, use a soldering iron to gently melt the plastic at the seams, fusing them together securely.
  5. Strategic Gluing: While most parts can be glued together, leave the Body 1 piece separate. This allows you to add a locking mechanism later, enabling easy removal for adjustments, wiring, and transportation.

https://www.thingiverse.com/thing:6192482

https://github.com/TanishReddy/Sparky


Wiring

Screenshot 2023-08-29 144228.png

When it comes to wiring, the Hiwonder 24-channel Digital Servo Control offers an accessible avenue for beginners to program their robots. With this controller, individuals can define preset functions and subsequently execute them using a PS2 Handle.

For those with a higher skill level, the possibilities broaden. Experienced makers can explore voice-controlled interactions or even achieve full autonomy via ROS and a Raspberry Pi integration.

In terms of power, my preference leaned towards employing either a 3s 5200mAh LiPo battery or a 6s mini car battery. Both options prove effective; however, it's crucial to incorporate a DC-DC buck converter to achieve the optimal voltage range of 6-12 volts for the Hiwonder Servo Control.

For users who've chosen to incorporate an Arduino or Raspberry Pi, a specific power strategy applies. It's recommended to provide dedicated power to the servos while concurrently powering the Arduino or Pi with 5 volts. This dual-pronged approach ensures that each component operates efficiently within its power parameters.

In essence, the wiring decisions offer a spectrum of possibilities, catering to varying expertise levels. Whether you're a novice programmer or an adept maker, these choices enable a customizable and effective power distribution for your robot.

Assembling the Arm

IMG-5866.jpg
IMG-5856.jpg
IMG-3766.jpg
IMG-3761.jpg
IMG-3760.jpg


When assembling the gripper onto the arm, a key step involves modifying the MG996R servo. This entails opening up the servo, drilling a hole at the rear, and inserting an M4 bolt. Additionally, attaching the finger for the gripper completes this process.

Moving on to the elbow section assembly, you'll need to 3D print the motor bracket. Once printed, affix it to the back of the robust 60kg servo using hot glue. This strategic attachment furnishes the servo with two secure points, facilitating the seamless connection of the forearm.

For the upper forearm segment – responsible for rotational movement – a specific modification is required. The plastic area adjacent to the servo's horn necessitates trimming and sanding. This manipulation grants freedom of movement to the circular horn, enabling it to rotate unhindered.

Through these meticulous steps, the gripper, elbow, and upper forearm sections amalgamate into a functional and well-coordinated arm assembly. Each adjustment contributes to the arm's precision, strength, and range of motion, ensuring its effective performance in your robot.

Head Assembly

IMG-5861.jpg

The design of the robot's head draws inspiration from Reachy while incorporating unique elements like larger eyes and expressive ears.

In crafting the head assembly, special attention has been given to its various components. Notably, the LED eye mounts offer an opportunity to infuse personality by adding LEDs for expressive eyes. This enables your robot to convey emotions through its gaze.

Moreover, the neck assembly introduces a clever neck bracket that slots securely into the neck, creating a stable point of attachment for the servo. This innovative solution ensures the neck's articulation is both reliable and fluid.

To seamlessly integrate the servo with the body, a thoughtfully designed servo cover comes into play. This component acts as a platform for the servo to be securely placed and anchored. Once positioned, it's further reinforced by a strategic application of hot glue, effectively securing it within the designated body slot.

In essence, the head assembly is a blend of established design principles from Reachy and creative additions that enhance both aesthetics and functionality. Through careful consideration of each element, this assembly ensures your robot's head is not only expressive but also mechanically robust.

Wheel Base

IMG-4580.jpg

Building the Wheel Base: A Strong Foundation for Your Robot

When it comes to creating the wheel base, ingenuity and resourcefulness come into play. Here's how I crafted a solid wheel base for my robot using materials I had on hand.

Starting with Scrap Wood and High Torque DC Motors

Scouring my workshop, I found a stash of scrap wood that became the cornerstone of my wheel base. With this reclaimed material, I established the base structure. At each end of the base, I attached high torque DC motors. These motors are the powerhouse of movement, and they held great promise for propelling my robot with vigor.

Rubber Wheels and Grip Assurance

To ensure smooth and controlled motion, I equipped each motor with rubber wheels. These wheels offered both traction and maneuverability, making them the perfect partners for my high torque DC motors. This combination promised an agile and responsive movement experience.

Elevating Stability with PVC Support

Recognizing the value of stability, I introduced an extra layer of reinforcement. I utilized PVC piping, threading it through the core of my robot. This clever addition bolstered the structural integrity of the wheel base, making it robust enough to tackle various terrains and challenges.

Streamlined Wiring with the L298N Motor Driver

For harmonious coordination, I turned to the L298N motor driver to manage the intricate dance of motor control. This choice not only streamlined wiring but also paved the way for efficient control of the DC motors. Paired with an Arduino, the L298N motor driver opened doors to both wireless and wired connectivity options.

Embracing Online Resources for Guidance

Assembling this intricate network may sound daunting, but the online world is brimming with resources waiting to lend a helping hand. Countless tutorials and guides exist to assist with integrating the L298N motor driver and Arduino. This collaborative knowledge base simplifies the process and empowers creators with confidence.

Programming: Hiwonder Servo Controller

Screenshot 2023-08-30 003533.png

The Hiwonder Servo Controller offers versatile control over servo motors, enabling you to create precise movements and sequences. This guide will walk you through the key features, including manual control, recording actions, and integrating a PS2 handle.

Manual Control

Upon launching the software interface, you'll encounter sliders or input controls that correspond to the servo motor channels. By adjusting these sliders, you can manually control the position of each servo motor. This is particularly useful for setting specific angles and observing immediate movement.

Recording Actions

The standout feature of the Hiwonder Servo Controller is its action recording capability. This allows you to create sequences of movements and save them for later use.

  1. Record Movements: Initiate the recording mode within the software interface.
  2. Perform Actions: Manipulate the sliders to guide the servo motors through the desired sequence of movements.
  3. Save the Action: Once satisfied, stop recording and save the action with a descriptive name.
  4. Action Files: The saved action contains a time-stamped sequence of servo motor positions.

Replay Actions

Loading a previously saved action enables the servo controller to recreate the recorded movements.

  1. Load Action: Open the saved action file using the software interface.
  2. Execute Movements: The servo motors will replicate the recorded sequence of positions.
  3. Applications: This feature is invaluable for automating repetitive tasks or achieving complex, choreographed movements.

Integrating a PS2 Handle

For a more interactive experience, the Hiwonder Servo Controller can integrate with a PS2 game controller.

  1. Connect PS2 Controller: Establish a connection between the PS2 controller and the servo controller.
  2. Control Mapping: Within the software interface, assign PS2 joystick movements and button presses to specific servo motor positions.
  3. PS2 Control: With successful integration, you can operate your robot's movements using the PS2 joystick and buttons.


Drive System

Bluetooth Control Car Circuit Daigram.png
  • The Motors for the wheels uses AndyMark NeveRest Classic 60 Gearmotor
  • The Motors then connect to a L298N motor driver, which then connects to an Arduino.
  • It uses a Bluetooth module and connects to an RC car app on a Android phone, since I am an Apple user i had to buy a cheap Alcatel Phone(50$) which allowed me to use the Bluetooth module