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

الذراع الآلية: جنسن: 4 خطوات
الذراع الآلية: جنسن: 4 خطوات

فيديو: الذراع الآلية: جنسن: 4 خطوات

فيديو: الذراع الآلية: جنسن: 4 خطوات
فيديو: تشريح الذراع 2024, اكتوبر
Anonim
الذراع الآلية: جنسن
الذراع الآلية: جنسن

جنسن عبارة عن ذراع آلية مبنية على منصة Arduino مع التركيز على التخطيط البديهي للحركة ، ويتم ذلك كمشروع ائتماني مستقل تحت إشراف Charles B. Malloch ، دكتوراه. يمكنه تكرار سلسلة من الحركات المبرمجة عن طريق تحريك الذراع يدويًا. لقد حصلت على الإلهام لبنائه من رؤية أذرع روبوتية أخرى مبنية في مساحة صناع UMass Amherst M5. علاوة على ذلك ، أردت أن أتعلم كيفية استخدام برنامج CAD وأردت إنشاء مشروع Arduino متقدم. لقد رأيت هذا كفرصة للقيام بكل تلك الأشياء.

الخطوة 1: التصميم الأصلي والنطاق

التصميم الأصلي والنطاق
التصميم الأصلي والنطاق

كان برنامج CAD الذي اخترت تعلمه لهذا المشروع هو OnShape ، وكان أول شيء صممته هو جهاز HiTec HS-422 التناظري. لقد اخترت المؤازرة لأنها كانت متاحة لي محليًا وكان سعرًا معقولًا. كما أنها كانت بمثابة ممارسة جيدة لتعلم OnShape قبل الانتقال إلى تصميم أجزائي الخاصة. في هذه المرحلة المبكرة من المشروع ، كانت لدي فكرة عامة عما أريد أن تكون الذراع قادرة عليه. كنت أرغب في الحصول على نطاق مناسب من الحركة وقابض لالتقاط الأشياء. أبلغت هذه المواصفات العامة التصميم حيث واصلت تصميمه في CAD. كان أحد قيود التصميم الأخرى التي واجهتها في هذه المرحلة هو حجم سرير الطباعة على الطابعة ثلاثية الأبعاد الخاصة بي. هذا هو السبب في أن القاعدة التي تراها في الصورة أعلاه هي مربع بدائي نسبيًا.

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

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

الخطوة الثانية: التحكم

مراقبة
مراقبة

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

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

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

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

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

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

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

الخطوة الثالثة: الضوضاء

ضوضاء
ضوضاء

في الصورة أعلاه

باللون الأحمر: إشارة الإدخال الأصلية

باللون الأزرق: إشارة الإدخال بعد المعالجة

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

هنا حيث قمت بأول محاولة لتقليل الضوضاء. فتحت كل أجهزة مرة أخرى وأضفت سلكًا قادمًا من دبوس V + على مقياس الجهد. كنت بحاجة إلى المزيد من المدخلات التناظرية لقراءتها أكثر من Arduino Uno ، لذلك انتقلت أيضًا إلى Arduino Mega في هذه المرحلة. في الكود الخاص بي ، قمت بتغيير إدخال الزاوية من كونه قراءة تمثيلية للجهد على الدبوس الأوسط إلى نسبة الجهد على الدبوس الأوسط إلى الجهد على دبوس V +. كان أملي أنه إذا كان هناك ارتفاع في الجهد على المسامير ، فسيتم إلغاؤه في النسبة.

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

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

ساعدني معلمي ، الدكتور مالوك ، في تصحيح كل هذا واقترح أن أقوم أيضًا بقياس الجهد على الدبوس الأوسط بالنسبة إلى المسامير الأخرى. هذا ما فعلته في محاولتي الثالثة والأخيرة لتقليل ضوضاء مدخلات الزاوية. فتحت كل أجهزة ، وأعدت توصيل السلك الذي قطعته ، وأضفت سلكًا ثالثًا قادمًا من الدبوس المرجعي في مقياس الجهد. في الكود الخاص بي ، جعلت إدخال الزاوية مكافئًا للتعبير التالي: (الدبوس الأوسط - الدبوس المرجعي) / (V + الدبوس - الدبوس المرجعي). لقد اختبرته ونجحت في تقليل تأثيرات طفرات الجهد. بالإضافة إلى ذلك ، قمت أيضًا بوضع مرشح EWMA على هذا الإدخال. تم تصوير هذه الإشارة المعالجة والإشارة الأصلية أعلاه.

الخطوة 4: لف الأشياء

التفاف الأشياء
التفاف الأشياء

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

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

مستند CAD:

cad.onshape.com/documents/818ea878dda7ca2f…

موصى به: