You are currently viewing DIY 6 DOF Robotic Arm: A Step-by-Step Guide to Design, Print, and Program
Demonstrating a DIY robotic arm equipped with servo motors.

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

بناء ذراع روبوتي ذي 6 درجات حرية: من التصميم بمساعدة الحاسوب إلى التحكم التفاعلي
يعتبر بناء ذراع روبوتي ذي 6 درجات حرية مشروعًا نموذجيًا يُظهر التآزر بين التصميم الميكانيكي، التحكم الإلكتروني والتفاعل الدقيق مع المستخدم. سيقودك هذا المدونة عبر كل مراحل إنشاء ذراع روبوتي يعمل بكامل وظائفه ويتم التحكم به بواسطة ستة محركات سيرفو، حيث يتم التحكم بكل منها مباشرةً بواسطة مقاومة متغيرة مخصصة لتعديلات الحركة الفورية. باستخدام برنامج Autodesk Inventor للنمذجة ثلاثية الأبعاد، يليه الطباعة ثلاثية الأبعاد، ومتصل عبر لوحة Arduino Uno مع لوحة تشغيل محركات سيرفو PCA9685، هذا المشروع مثالي للمتحمسين الذين يتطلعون للدخول في مجال الروبوتات العملية المتقدمة.

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

المرحلة الأولى هي تصميم كل مكون من مكونات ذراع الروبوت باستخدام برنامج Autodesk Inventor. يسمح هذا البرنامج للتصميم بمساعدة الحاسوب بالنمذجة ثلاثية الأبعاد الدقيقة، مما يضمن أن المكونات مصممة بشكل مثالي لتتناسب مع محركات SG90 Micro Servos و MG996R Servos - التي تم اختيارها بناءً على توازنها بين الوزن، الحجم وقدرات العزم. SG90 Micro Servos مثالية لمفاصل الذراع الصغيرة بسبب حجمها المدمج ودقتها الكافية. MG996R Servos تستخدم للقاعدة والمناطق الأخرى التي تتحمل أحمالاً عالية بسبب قدراتها العزمية القوية.

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

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

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

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

الخطوة 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، مركز عشاق التكنولوجيا والعقول المبدعة! اسمي عمر، مؤسس هذا الموقع الإلكتروني وقناة اليوتيوب، وأنا مهندس شغوف ذو خلفية في الهندسة الكهربائية والميكانيكية، وأتابع حاليًا دراسة الماجستير في الميكاترونيكس في ألمانيا.

اترك تعليقاً