جدول المحتويات:

الذراع الروبوتية مع وحدات Zio الجزء 2: 11 خطوة
الذراع الروبوتية مع وحدات Zio الجزء 2: 11 خطوة

فيديو: الذراع الروبوتية مع وحدات Zio الجزء 2: 11 خطوة

فيديو: الذراع الروبوتية مع وحدات Zio الجزء 2: 11 خطوة
فيديو: القصة كاملة/ طبيب فاشل مريض يفكر بالانتحار لكنه انقذ حياة عذراء السماء وأعادته بالماضي لتصحيح اخطاؤه 2024, يوليو
Anonim
الذراع الروبوتية مع وحدات Zio الجزء 2
الذراع الروبوتية مع وحدات Zio الجزء 2

في البرنامج التعليمي اليوم ، سوف نستخدم جميع الماكينات الأربع ووحدة تحكم لاسلكية PS2 للتحكم في الذراع الآلية.

منشور المدونة هذا جزء من سلسلة Zio Robotics.

مقدمة

في مدونتنا السابقة ، نشرنا الجزء الأول من البرنامج التعليمي حول كيفية التحكم في الذراع الآلية باستخدام وحدات Zio. ركز الجزء الأول في الغالب على التحكم التلقائي في مخلب الذراع الروبوتية لفتحه وإغلاقه.

في البرنامج التعليمي اليوم ، سنقوم بتحسينه قليلاً من خلال تضمين وحدة تحكم PS2 اللاسلكية للتحكم في الذراع الآلية. بالنسبة لهذا المشروع ، سنستخدم 4 أجهزة.

الخطوة 1: نظرة عامة على المشروع

مستوى الصعوبة:

زيو بادوان

موارد مفيدة:

يجب أن يكون لديك فهم أساسي لكيفية تثبيت لوحات تطوير Zio. في هذا البرنامج التعليمي ، نفترض أن لوحة التطوير الخاصة بك قد تم تكوينها بالفعل وجاهزة للإعداد. إذا لم تكن قد قمت بتهيئة اللوحة الخاصة بك حتى الآن ، فراجع البرنامج التعليمي الخاص بـ Zio Qwiic Start Guide أدناه للبدء:

دليل البدء Zio Zuino M UNO Qwiic

الخطوة 2: المخططات

المخططات
المخططات

فيما يلي مخططات الأسلاك الخاصة بمشروع Robotic Arm Part 2 بالإضافة إلى مخطط وحدة التحكم PS2 اللازم لفهم جزء الترميز الخاص بك.

الخطوة 3: مخطط تحكم PS2

مخطط تحكم PS2
مخطط تحكم PS2

الخطوة 4: إعداد اتصال Zio Modules

يوجد أدناه اتصال وحدات Zio التي سيتم إعدادها باستخدام الذراع الروبوتية. يعد توصيل جميع الوحدات معًا أمرًا سهلاً للغاية ولن يستغرق إعداده أكثر من 10 دقائق.

الخطوة 5: قم بتوصيل Robotic Arm Servo بوحدة التحكم Zio 16 Servo

قم بتوصيل Robotic Arm Servo بوحدة التحكم Zio 16 Servo
قم بتوصيل Robotic Arm Servo بوحدة التحكم Zio 16 Servo

الخطوة 6: قم بتوصيل 16 Servo بـ DC / DC Booster وقم بتعيينها على 6.0V

قم بتوصيل 16 Servo بجهاز DC / DC Booster وقم بتعيينه على 6.0V
قم بتوصيل 16 Servo بجهاز DC / DC Booster وقم بتعيينه على 6.0V

نحن نستخدم DC / DC Booster لزيادة وضبط جهد إمداد البطارية إلى 6.0.

استخدم مقياس الجهد في DC Booster لضبط الجهد حتى تحصل على 6.0. اضغط على زر In / Out حتى تظهر الشاشة 6.0. تحتاج إلى إمداد الطاقة (بطارية 3.7 فولت) أولاً إلى DC / DC Booster من أجل ضبط الجهد.

الخطوة 7: قم بتوصيل Zuino M Uno بوحدة التحكم Zio 16 Servo

قم بتوصيل Zuino M Uno بوحدة التحكم Zio 16 Servo
قم بتوصيل Zuino M Uno بوحدة التحكم Zio 16 Servo

تقوم Qwiic بتوصيل Zuino M Uno بوحدة التحكم Zio Servo باستخدام كابل qwiic.

الخطوة 8: توصيل Uno بجهاز استقبال PS2

توصيل Uno بجهاز استقبال PS2
توصيل Uno بجهاز استقبال PS2

هنا رسم تخطيطي للوصلات. أنت بحاجة إلى 5 أسلاك توصيل من الذكور إلى الإناث لهذا الجزء.

الخطوة 9: كود الذراع الآلية

سنستخدم مكتبة PS2 Arduino لترميز وحدة التحكم اللاسلكية PS2 الخاصة بنا للعمل مع الذراع الروبوتية الخاصة بنا. يمكنك العثور على الكود المصدري وتنزيله لمشروع Robotic Arm Part 2 على صفحة Github الخاصة بنا.

قم بتنزيل وتثبيت المكتبات التالية وحفظها في مجلد مكتبات Arduino IDE المحلي:

  • مكتبة Adafruit PWM Servo Driver
  • مكتبة PS2 Arduino

لتثبيت المكتبات ، افتح Arduino IDE ، انتقل إلى علامة التبويب Sketch ، وحدد Include Library -> Add. Zip Library. حدد المكتبات أعلاه ليتم تضمينها في IDE الخاص بك.

Arduino لديه دليل مفيد حول كيفية تثبيت المكتبات على Arduino IDE الخاص بك. تحقق منها هنا!

الخطوة 10: قم بتشغيل الكود الخاص بك

قم بتشغيل الكود الخاص بك
قم بتشغيل الكود الخاص بك

افتح Arduino IDE. ضمن ملفات> أمثلة> PS2_Arduino_Library ، حدد PS2X_Servo

ملاحظة: قبل أن تتمكن من التحكم في ذراعك الآلي باستخدام وحدة تحكم PS2 ، تحقق من الخطوات التالية: قم بتشغيل وحدة تحكم PS2. تأكد من أن مؤشر LED للوضع يضيء. إذا لم يحدث ذلك ، فاضغط على زر الوضع في وحدة التحكم الخاصة بك. بعد القيام بما ورد أعلاه ، تحتاج إلى الضغط على زر إعادة الضبط في Zuino M Uno لقراءة إعدادات وحدة التحكم الخاصة بك. تحتاج إلى الضغط على L1 وعصا التحكم لتحريك ذراعك الآلي.

  • يتحكم ذراع التحكم الأيسر في ثني الذراع لأعلى أو لأسفل
  • يتحكم ذراع التحكم الأيمن في المخلب إما لفتح أو إغلاق وتدوير المخلب إلى اليسار أو اليمين.

الخطوة 11: شرح الكود

يعد استخدام مكتبة PS2X Arduino أمرًا بسيطًا ، ولا يتطلب سوى التهيئة والإعداد ثم أمر القراءة.

لتعيين اتصال وحدة تحكم PS2 الخاصة بك باستخدام Uno ، فيما يلي الدبابيس التي تحتاج إلى تحديدها في التعليمات البرمجية الخاصة بك:

/ *************************************************** *************** * مجموعة دبابيس متصلة بوحدة تحكم PS2: * - عمود 1e: أصلي * - 2e colmun: Stef؟ * استبدل الأرقام السرية بالأرقام التي تستخدمها ******************************************** ********************** / # حدد PS2_DAT 13 // 14 # تعريف PS2_CMD 11 // 15 # حدد PS2_SEL 10 // 16 # حدد PS2_CLK 12 // 17

لقد استبدلنا المسامير بالدبابيس التي نستخدمها للاتصال بـ Uno كما هو موضح في الرسم البياني Pin أعلاه.

/ *************************************************** **************** حدد أوضاع وحدة تحكم PS2: * - الضغوط = القراءة التناظرية لأزرار الضغط * - الدمدمة = هدير المحرك * إلغاء التعليق 1 من الخطوط لكل تحديد وضع ** **************************************************** ************ / // # حدد الضغط صحيح # حدد الضغوط خطأ // # عرّف صوابًا # عرّف rumble false

هنا قمنا بتعريف وضع PS2 للضغوط والدمدمة على أنها خاطئة. علقنا على تلك التي لا نستخدمها.

سنستخدم فقط أمر جويستيك ووحدة التحكم L1 للتحكم في حركة ذراعنا الآلية.

حلقة فارغة () {/ * يجب عليك قراءة Gamepad للحصول على قيم جديدة وتعيين قيم الاهتزاز ps2x.read_gamepad (تشغيل / إيقاف محرك صغير ، قوة محرك أكبر من 0-255) إذا لم تقم بتمكين الدمدمة ، استخدم ps2x.read_gamepad () ؛ مع عدم وجود قيم يجب عليك استدعاء هذا مرة واحدة على الأقل في الثانية * / if (خطأ == 1) // حلقة تخطي إذا لم يتم العثور على وحدة تحكم عودة ؛ else {// DualShock Controller ps2x.read_gamepad (false، vibrate)؛ // قراءة وحدة التحكم وتعيين محرك كبير للدوران بسرعة "اهتزاز" إذا كان (ps2x. Button (PSB_START)) // سيكون صحيحًا طالما تم الضغط على الزر Serial.println ("بدء قيد الانتظار") ؛ if (ps2x. Button (PSB_SELECT)) Serial.println ("التحديد قيد الانتظار") ؛ اهتزاز = ps2x. Analog (PSAB_CROSS) ؛ // سيؤدي هذا إلى ضبط سرعة اهتزاز المحرك الكبير بناءً على مدى صعوبة الضغط على الزر الأزرق (X) إذا كان (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// قيم عصا الطباعة إذا كان أي منهما TRUE RY_Value = ps2x. Analog (PSS_RY) ؛ RX_Value = ps2x. Analog (PSS_RX) ، LY_Value = ps2x. Analog (PSS_LY) ، LX_Value = ps2x. Analog (PSS_LX) ؛ Serial.print ("Stick Values:") ؛ Serial.print (RX_Value) ؛ Serial.print ("") ؛ Serial.print (RY_Value) ؛ Serial.print ("") ؛ Serial.print (LY_Value) ؛ Serial.print ("") ؛ Serial.println (LX_Value) ؛

الكود أدناه هو المكان الذي نقوم فيه بترميز الماكينات الخاصة بنا التي تتحكم في ذراعنا الروبوتية والتي نقوم بتضمينها في استدعاء الوظيفة تحت ps2x.button (PSB_L1) || زر ps2x (PSB_R1).

تحتاج إلى الضغط على الزر L1 أو R1 جنبًا إلى جنب مع عصا التحكم للتحكم في ذراعك الآلي.

أجهزة التحكم في ذراع التحكم الأيسر 2 و 3 لجزء الذراع - تتحكم في الانحناء لأعلى ولأسفل من الذراع على التوالي ، في حين أن أجهزة التحكم في ذراع التحكم الأيمن 0 و 1 من مخلب الذراع الروبوتية للفتح أو الإغلاق ، والتدوير لليسار أو اليمين.

SERVO 0 ، 1 - مخلب SERVO 2 ، 3 - الذراع

يمكنك إجراء تغييرات على القيم في هذا القسم للتحكم في درجة زاوية ذراعك الآلية:

pulselen0 = map (RY_Value، 0، 127، SERVOMIN0، SERVOMAX0) ؛ pulselen1 = map (RX_Value، 0، 127، SERVOMIN0، SERVOMAX0) ؛ pulselen2 = map (LY_Value، 0، 127، SERVOMIN2، SERVOMAX2) ؛ pulselen3 = map (LX_Value، 0، 255، SERVOMIN3، SERVOMAX3) ؛

موصى به: