You are currently viewing DIY 6 DOF Robotic Arm: A Step-by-Step Guide to Design, Print, and Program
3D-Modell des Roboterarms, entwickelt mit Autodesk Inventor und optimiert für 3D-Druck.

ذراع روبوتي DIY بـ 6 درجات حرية: دليل خطوة بخطوة للتصميم، الطباعة، والبرمجة

Building a 6-DOF Robotic Arm (DIY) is an exemplary project that demonstrates the synergy between mechanical design, electronic control, and precise user interaction. This blog will guide you step by step through the entire process of creating a fully functional robotic arm controlled by six servos, each of which is directly manipulated by a dedicated potentiometer for real-time movement adjustments.

The project involves 3D designing all components with Autodesk Inventor, 3D printing the parts, assembling them, and finally wiring the electronics using an أردوينو أونو and a PCA9685 servo driver. Whether you’re a hobbyist or a robotics enthusiast, this guide is ideal for anyone looking to explore advanced DIY robotics.

To successfully build this robotic arm, you will need a set of mechanical and electronic components, including servos, potentiometers, power supply, and mounting hardware. Below you will find the complete Bill of Materials (BOM) listing every required part with its quantity and description to help you source and prepare everything in advance.

Item Quantity Part Description
1
1
Base_1
3D printed base for the arm
2
1
base_link_upper1
3D printed upper base part
3
1
arm_link_1
3D printed first arm link
4
1
arm_link_2
3D printed second arm link
5
1
arm_link_3
3D printed third arm link
6
1
gripper_base
3D printed base of the gripper
7
1
Gripper_2
3D printed gripper second finger
8
1
Gear_right
3D printed gear for gripper finger (right)
9
1
Gear_left
3D printed gear for gripper finger (left)
10
1
Gripper
3D printed complete gripper assembly
11
4
Link
3D printed gripper link parts
12
2
Spacer
3D printed gripper joint spacers
13
3
MG996R Servo Motor
High torque servo for base and heavy joints
14
3
SG90 Micro Servo Motor
Compact servo for gripper and lightweight joints
15
14
ANSI B18.6.4 No.2-32 3/8″
Cross Recessed Truss Head Screw – Type AB – Form I
16
2
ANSI B18.6.4 No.2-32 1/4″
Cross Recessed Truss Head Screw – Type AB – Form I
17
3
DIN 7985 M1.6×2-Z
Cylinder Head Screw with Cross Recess – Type Z
18
7
ISO 4762 M3x16 (AS 1420)
Hex Socket Head Cap Screw
19
12
ISO 4032 M3 (AS 1112)
Hex Nuts, including thin and crown nuts
20
2
ANSI B18.6.4 No.2-32 1/2″
Cross Recessed Truss Head Screw – Type AB – Form I
21
3
MG955 Horn
Servo horns for MG996R servos
22
3
DIN 7985 M3x6-Z
Cylinder Head Screw with Cross Recess – Type Z
23
3
SG90 Servo Horn
Horns for SG90 servos
24
2
ANSI B18.6.4 No.2-32 3/8″
Cross Recessed Truss Head Screw – Type AB – Form I
25
12
ANSI B18.6.4 No.3-28 1/2″
Cross Recessed Truss Head Screw – Type AB – Form I
26
1
Ball Bearing 6806ZZ (30x42x7)
Deep groove ball bearing for base rotation
27
1
Arduino Uno or Mega
Microcontroller
28
1
PCA9685 Servo Driver Board
PWM driver board for up to 16 servos (I2C controlled)
29
6
10kΩ Potentiometer
For manual analog control of each servo
30
1
لوحة التجارب (Breadboard)
For wiring potentiometers to Arduino
31
1
5V 10A Power Supply
External power source for servos via PCA9685
32
1
Jumper Wires (male-male)
For connections between Arduino and PCA9685
33
1
Jumper Wires (male-female)
For connections between potentiometers and Arduino
34
1
Wooden Board
Base platform for mounting the robotic arm securely

التصميم باستخدام Autodesk Inventor

The first stage is to design each component of the robotic arm using Autodesk Inventor. This CAD software allows precise 3D modelling, ensuring that the parts are perfectly tailored to accommodate SG90 Micro Servos and MG996R Servos – chosen for their balance of weight, size, and torque capabilities. SG90 Micro Servos are ideal for smaller arm joints due to their compact size and sufficient precision. MG996R Servos are used for the base and other high-load areas due to their robust torque.

To ensure smooth assembly and functionality, all components were designed with detailed dimensions, which are visualized in the technical drawing below. This drawing includes sectional views, providing a clear overview of the mechanical design and assembly layout.

Technical drawing of a DIY 6-DOF robotic arm showing all mechanical parts, servos, and assembly dimensions.

طباعة مكونات الذراع ثلاثية الأبعاد

Once the models are complete, the next step is 3D printing. Each part is printed using a filament such as PLA for its ease of use and good detail accuracy. Print settings should be optimised for strength, especially for joints that will experience higher mechanical loads. Post-processing may include assembly adjustments and aesthetic enhancements.

تجميع الذراع الروبوتية

 بمجرد طباعة جميع الأجزاء، يتضمن التجميع وضع المحركات السيرفو بعناية في مواقعها المخصصة وربط أجزاء الذراع بدقة. يجب اختبار المفاصل لضمان عملها بسلاسة للتأكد من أنها يمكن أن تتحمل نطاق الحركة المتوقع دون إجهاد المحركات.

الخطوة 1: تجميع القاعدة

  • ابدأ بتركيب المحرك السيرفو الأول على قاعدة ذراعك الروبوتي. استخدم البراغي المرفقة مع مجموعة المحرك للتأكد من تثبيته بإحكام (يمكنك استخدام برغي ذاتي اللولب متقاطع M3x12). يعمل هذا المحرك كنقطة الدوران المحورية للهيكل الكامل للذراع، مما يسمح بالحركة الأساسية.
  • إضافة محمل كروي 6806ZZ بحجم 30*42*7.
    قم بتركيب المحمل لتسهيل الحركة الدورانية السلسة بين القاعدة والجزء العلوي الدوار للذراع. ضع المحمل بعناية في الفتحة المخصصة على القاعدة. هذا المكون حيوي لتقليل الاحتكاك والتآكل أثناء عمليات الذراع، مما يعزز كل من دقة وطول عمر الحركة.
  • توصيل قرن السيرفو
    ثبّت قرن السيرفو (servo horn) في الجزء العلوي الدوّار للذراع. استخدم البراغي المرفقة في مجموعة السيرفو لتثبيت الذراع مباشرة في الجزء الدوّار الذي يجلس فوق المحمل الكروي (يمكنك استخدام برغي ذاتي اللولب متقاطع M2x12). تأكد من أن الاتصال محكم وآمن، حيث سينقل هذا الاتصال القوى الدورانية من السيرفو إلى الأجزاء العلوية للذراع.

الخطوة 2: تركيب قرون السيرفو على وصلات ذراع الروبوت

لتجميع قرون السيرفو على وصلات ذراع الروبوت، قم بمحاذاة قرون السيرفو مع نقاط التثبيت على الذراع، مع التأكد من تطابق الثقوب بشكل صحيح. ثبت كل قرن ببرغيين، مع شدّهما بإحكام لضمان الاستقرار ومنع الانزلاق أثناء التشغيل. تحقق مرة أخرى من كل اتصال للتأكد من أن القرون مثبتة بأمان، حيث سيكون ذلك حاسمًا للعمل الدقيق والموثوق للذراع. 

الخطوة 3: تركيب محركات السيرفو على وصلات ذراع الروبوت

لتركيب محركات السيرفو على وصلات ذراع الروبوت، قم بمحاذاة كل محرك مع نقاط التثبيت المحددة على وصلات الذراع، مع التأكد من الاتجاه الصحيح. ثبت كل محرك باستخدام برغيين، مرورًا بهما من خلال الذراع إلى ثقوب التثبيت في المحرك لضمان التوافق الجيد. بعد التثبيت، اختبر كل اتصال للتأكد من استقراره عن طريق تطبيق ضغط خفيف للتأكد من أن السيرفو مثبت بإحكام دون أي حركة.

الخطوة 4: توصيل وصلات ذراع الروبوت

بعد تثبيت محركات السيرفو والقرون على وصلات ذراع الروبوت، قم بمحاذاة وربط الوصلات. ضع الوصلات بحيث تتطابق الثقوب في قرن إحدى الوصلات مع نقاط التعليق في الوصلة التالية. ثبتها باستخدام براغي لضمان اتصال محكم ضروري لحركة المفصل السلسة. شد البراغي بشكل صحيح للحفاظ على الاستقرار والوظيفة أثناء تشغيل ذراع الروبوت. تضمن هذه الخطوة الاستمرارية الهيكلية والحركة الفعالة عبر مفاصل ذراع الروبوت.

الخطوة 5: تجميع القابض

في الخطوة النهائية من التجميع، ثبّت الممسك (Gripper) في الوصلة النهائية لذراع الروبوت. تأكد من محاذاته بشكل صحيح وقم بتثبيته باستخدام البراغي (البراغي المستخدمة في مفاصل الممسك هي M3x20)، مع التأكد من أن الممسك يعمل بسلاسة ودون أي عوائق. تكمل هذه الخطوة عملية البناء الفيزيائي للذراع الروبوتي، مما يهيئها للاختبار الوظيفي وإجراء التعديلات اللازمة لضمان دقة الحركات المفصلية.

الخطوة 6: تركيب ذراع الروبوت على قاعدة خشبية

ثبت الذراع الروبوتي المُجمّع بالكامل على قاعدة خشبية لضمان الثبات أثناء التشغيل. استخدم البراغي لتثبيت قاعدة الذراع بإحكام على الخشب، مما يوفر أساسًا متينًا يمنع أي حركة أثناء الاستخدام. لقد استخدمت برغي ذاتي اللولب متقاطع M3x12.

التكوين الإلكتروني والتوصيلات الكهربائية

تدور الإلكترونيات لهذا المشروع حول دمج لوحة تشغيل المحركات سيرفو PCA9685 مع الأردوينو أونو للتحكم في الستة محركات سيرفو:

أردوينو Mega: يعمل كوحدة تحكم رئيسية.
لوحة تشغيل المحركات سيرفو PCA9685: هذه اللوحة يتم التحكم عن طريق إشارة (PWM) التي تدار عبر I2C، تدير بكفاءة حتى 16 محرك سيرفو.
دليل التوصيلات:
تشغيل لوحة PCA9685 والمحركات السيرفو: من المهم استخدام مصدر طاقة مستقل (مثل مصدر طاقة 5V 10A) للتعامل مع متطلبات التيار دون تحميل منظم الطاقة في الأردوينو بشكل زائد.
توصيل كل محرك سيرفو بلوحة PCA9685: يتم توصيل المحركات السيرفو بقنوات فردية على لوحة PCA9685، مع مطابقة الاتجاه الصحيح لإشارات الطاقة، الأرضي، والتحكم.
توصيل كل مقاومة متغيرة بالأردوينو: يتم توصيل الدبوس الأوسط لكل مقاومة متغيرة بإحدى مداخل الأردوينو التناظرية، مع ضبط كل منها للتحكم بمحرك سيرفو.

المزيد عن لوحة تشغيل المحركات سيرفو PCA9685

يعد التحكم في محركات السيرفو مباشرةً من Arduino أمرًا سهلاً، ولكن قد تواجه قيودًا، خاصةً إذا كان مشروعك يتضمن عدة أجهزة أو مكونات أخرى تعتمد على PWM. يعد استخدام جميع دبابيس PWM المتاحة أو تعارضات المكتبة المحتملة على موارد المؤقت من التحديات الشائعة التي يمكن أن تعيق قابلية التوسع في تصميماتك.

لإدارة أجهزة سيرفومتعددة بكفاءة دون زيادة التحميل على الأردوينو، فإن دمج لوحة تشغيل السيرفو مخصصة، مثل تلك المزودة بشريحة PCA9685، هي استراتيجية ممتازة. تستخدم هذه اللوحة اتصال I2C، مما يبسط التوصيلات إلى سلكين فقط - CL (الساعة) و SDA (البيانات) - بغض النظر عن عدد محركات السيرفو التي يتم التحكم فيها. وهي تدعم التحكم في ما يصل إلى 16 سيرفو لكل لوحة، ويمكن توصيلها بسلاسل متسلسلة مع لوحات PCA9685 الأخرى. يسمح هذا الإعداد بالتحكم في ما يصل إلى 992 سيرفوعن طريق تسلسل لوحات متعددة، وهو مثالي للمشاريع الكبيرة.

تحتوي كل لوحة على توصيلات بسيطة:

GND: الوصلة الأرضية.
OE: تمكين الإخراج، وعادةً ما تُترك غير موصولة للحفاظ على تمكين جميع المخرجات.
SCL: خط الساعة لاتصالات I2C.
SDA: إشارة بيانات لاتصال I2C.
VCC: الإمداد المنطقي عند +5 فولت.
V+: طاقة لمحركات السيرفو، والتي يمكن توفيرها أيضًا عبر موصل محمي في الجزء العلوي من اللوحة لتوفير حماية أكبر ضد القطبية العكسية.
تتميز اللوحة بمجموعات من الموصلات ذات 3 سنون لكل محرك سيرفو، مما يبسّط عملية التوصيل إلى حد كبير ويوفر حلاً قويًا للمشاريع التي تتطلب تحكمًا مؤازرًا واسع النطاق.

لإدارة 16 محركًا والتحكم بها بفعالية باستخدام برنامج تشغيل قائم على PCA9685 مع Arduino، اتبع هذه الخطوات المفصلة لإعداد المكونات وتوصيلها بشكل صحيح:

توصيل بالأردوينو
تستخدم لوحة تشغيل محرك السيرفو PCA9685 اتصال I2C ويتطلب أربع وصلات فقط إلى Arduino الخاص بك. إليك كيفية توصيله اعتمادًا على طراز Arduino الخاص بك:

أردوينو كلاسيكي (أونو، إلخ)
+ 5 فولت -> VCC (يعمل على تشغيل شريحة PCA9685، وليس محركات السيرفو)
GND -> GND
Analog 4 -> SDA
Analog 5 -> SCL

تشغيل محركات السيرفو:

يعمل VCC على لوحة PCA9685 على تشغيل الرقاقة نفسها فقط. لتشغيل محركات السيرفو، يجب عليك أيضًا توصيل دبوس V+، والذي يمكنه التعامل مع ما يصل إلى 6 فولت حتى لو كان VCC عند 3.3 فولت.
يوصى باستخدام كتلة طرفية مستقطبة لتوصيل طاقة محركات السيرفو.
نظرًا لأن محركات السيرفو يمكن أن تسحب تيارًا كبيرًا، خاصةً تحت الحمل، يجب عليك التفكير في مصادر الطاقة هذه:
مزود طاقة تبديلي بجهد 5 فولت 2 أمبير لمزودات الطاقة الصغيرة أو الأقل.
حامل بطارية 4xAA - يوفر 6 فولت من الخلايا.

توصيل محركات السيرفو:

قم بتوصيل كل محرك السيرفو بلوحة PCA9685 باستخدام مقبسها القياسي ذو 3 سنون. تأكد من أن السلك الأرضي (عادة ما يكون أسود أو بني) يطابق الصف السفلي من رؤوس المسامير على اللوحة وأن سلك الإشارة (عادة ما يكون أصفر أو أبيض) يطابق الصف العلوي.

برمجة للتحكم التفاعلي

تتضمن البرمجة إعداد الأردوينو لقراءة المقاومات المتغيرة وإصدار الأوامر للمحركات السيرفو عبر لوحة PCA9685. تتيح هذه التفاعلات التحكم الديناميكي، حيث تتحكم كل مقاومة متغيرة في أحد المحركات السيرفو الستة للذراع.

/**
 * Author: Omar Draidrya
 * Date: 2024/05/05
 * This code controls multiple servos using the PCA9685 PWM driver and analog input from potentiometers.
 */

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(); // Default address 0x40

void setup() {
    Serial.begin(9600);           // Start serial communication for debugging purposes.
    pwm.begin();                  // Initialize the PCA9685 module.
    pwm.setPWMFreq(60);           // Set the PWM frequency suitable for servos.
}

void loop() {
    // Servo 0
    int potValue0 = analogRead(A0);           // Read analog value from potentiometer connected to A0
    int servoPos0 = map(potValue0, 0, 1023, 125, 575); // Map the analog value to servo position
    pwm.setPWM(0, 0, servoPos0);              // Set servo 0 position

    // Servo 1
    int potValue1 = analogRead(A1);           // Read analog value from potentiometer connected to A1
    int servoPos1 = map(potValue1, 0, 1023, 125, 575); // Map the analog value to servo position
    pwm.setPWM(1, 0, servoPos1);              // Set servo 1 position

    // Servo 2
    int potValue2 = analogRead(A2);           // Read analog value from potentiometer connected to A2
    int servoPos2 = map(potValue2, 0, 1023, 125, 575); // Map the analog value to servo position
    pwm.setPWM(2, 0, servoPos2);              // Set servo 2 position

    // Servo 3
    int potValue3 = analogRead(A3);           // Read analog value from potentiometer connected to A3
    int servoPos3 = map(potValue3, 0, 1023, 125, 575); // Map the analog value to servo position
    pwm.setPWM(3, 0, servoPos3);              // Set servo 3 position

    // Servo 4
    int potValue4 = analogRead(A4);           // Read analog value from potentiometer connected to A4
    int servoPos4 = map(potValue4, 0, 1023, 125, 575); // Map the analog value to servo position
    pwm.setPWM(4, 0, servoPos4);              // Set servo 4 position

    // Servo 5
    int potValue5 = analogRead(A5);           // Read analog value from potentiometer connected to A5
    int servoPos5 = map(potValue5, 0, 1023, 125, 575); // Map the analog value to servo position
    pwm.setPWM(5, 0, servoPos5);              // Set servo 5 position

    delay(20);   // Short delay for stability
}
    

المعايرة والاختبار

بعد البرمجة، يتم إجراء اختبارات مكثفة للتأكد من أن كل وصلة تعمل بسلاسة وتستجيب بدقة لمدخلات المقاومة المتغيرة. قد تكون هناك حاجة للمعايرة لضبط نطاق واستجابة محركات السيرفو لتحقيق الدقة والسلاسة المطلوبة في الحركة.

الخاتمة


إن بناء ذراع روبوتية ذات 6-DOF هو مشروع معقد ولكنه مجزٍ للغاية يجمع بين العديد من التخصصات الهندسية، من التصميم الميكانيكي إلى الإلكترونيات والبرمجة. لن يعمل هذا المشروع على توسيع نطاق مهاراتك الهندسية فحسب، بل سيوفر أيضاً منصة لمزيد من الاستكشاف في تطبيقات الروبوتات الأكثر تطوراً.

omartronics

مرحبًا بكم في OmArTronics، مركز عشاق التكنولوجيا والعقول المبدعة! اسمي عمر، مؤسس هذا الموقع الإلكتروني وقناة اليوتيوب، وأنا مهندس شغوف ذو خلفية في الهندسة الكهربائية والميكانيكية، وأتابع حاليًا دراسة الماجستير في الميكاترونيكس في ألمانيا.

اترك تعليقاً