Skip to content

Latest commit

 

History

History
121 lines (90 loc) · 6.48 KB

README.md

File metadata and controls

121 lines (90 loc) · 6.48 KB

Homemade Manipulator Arm Project

Welcome to the Homemade Manipulator Arm project repository! This project features a DIY robotic arm with 6 degrees of freedom (6DoF) and a gripper. The arm is controlled using 4 MG1501 servos and 3 SG90 servos. The project includes SolidWorks 3D part designs, electrical schemas created with EasyEDA, and the ESP code for controlling the arm. Use PlatformIO in Visual Studio Code (VSCode) to manage and upload the code to the ESP microcontroller.

Isometric View Main PCB Board 3D Potentiometer PCB Board 3D

Contents

Description

This project is a homemade manipulator arm designed for educational purposes and hobbyist robotics enthusiasts. The arm is built using 3D-printed parts designed in SolidWorks and controlled using ESP32 microcontroller boards. The control methods include Bluetooth Low Energy (BLE) using the RemoteXY library or manual control using encoders (potentiometers).

The kinematics of the manipulator are represented using the Denavit-Hartenberg (DH) notation as follows:

Link a α (deg) d θ (deg)
0 0 90 94.85 90
1 104 0 0 90
2 104 0 0 0
3 0 90 -7.65 90
4 0 -90 66.6 0
5 0 0 66.6 0
  • a_i: Represents the link length along the (x_i) axis.
  • α_i: Represents the twist angle about the (x_i) axis in degrees.
  • d_i: Represents the link offset along the (z_{i-1}) axis.
  • θ_i: Represents the joint angle about the (z_{i-1}) axis in degrees.

Components

The manipulator arm features the following components:

  • Servos:

  • Electronics:

    • ESP32 microcontroller board
    • PCB Board to control the robot
    • PCB Board with Potentiometers (for manual control using encoders)
  • 3D Parts:

    • Various parts designed in SolidWorks for the arm's structure
  • Electrical Schemas:

Folder Structure

The repository is organized as follows:

/Code
    ├── src/main.cpp    # Main file of the Project
    ├── lib                     # Folder containing help libraries
/Cad
    ├── stl             # Folder with stl files for 3D
    ├── *.sldprt     # SolidWorks files printing
/Electrical_Schemas
     ├── Main Board                     # Electrical schemas created in EasyEDA for the robot control PCB
     ├── Potentiometer Board      # Electrical schemas created in EasyEDA for the Potentiometer PCB
/docs      # Datasheets for some of the components
/robodk      # Robodk station with the robot. Note: The movement of the manipulator in robodk is not exactly the same due to robodk mechanism build limitations.
/README.md

Usage

To replicate or modify this project, follow these steps:

  1. 3D Printing:

    • Print the 3D parts from the \Cad\stl directory using a 3D printer
  2. Assembly:

    • Assemble the printed parts and servos according to the design
  3. Electronics:
    Choose one of the following methods:

    • Option 1: Order PCB Boards:
    • Option 2: Manual Wiring:
  4. Programming:

    • Use PlatformIO in Visual Studio Code (VSCode) to manage and upload the code
  5. Control:

    • Use the RemoteXY library for BLE control, or wire up potentiometers for manual control

Credits

This project was created by Tamir Mhabary. Feel free to contribute by submitting pull requests or reporting issues.

Sponsors

This project is proudly sponsored by PCBWay.
PCBWay provided the manufacturing of the PCB boards and 3D printing services for this project.

PCBWay is a one-stop solution for PCB prototyping, manufacturing, and assembly, as well as 3D printing services. Their high-quality products and excellent customer service make them a top choice for electronics enthusiasts and professionals alike.
Visit PCBWay for more information on their services and to get started on your own projects!

PCB from PCBWay

License

This project is licensed under the MIT License. Feel free to use, modify, or distribute this code and design for personal or educational purposes.