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

روبوت يتبع الخط المعتمد على PID مع صفيف مستشعر POLOLU QTR 8RC: 6 خطوات (بالصور)
روبوت يتبع الخط المعتمد على PID مع صفيف مستشعر POLOLU QTR 8RC: 6 خطوات (بالصور)

فيديو: روبوت يتبع الخط المعتمد على PID مع صفيف مستشعر POLOLU QTR 8RC: 6 خطوات (بالصور)

فيديو: روبوت يتبع الخط المعتمد على PID مع صفيف مستشعر POLOLU QTR 8RC: 6 خطوات (بالصور)
فيديو: برمجة الروبوت لتتبع الخط -line follower robot 2024, شهر نوفمبر
Anonim
خط تتبع يعتمد على PID مع صفيف مستشعر POLOLU QTR 8RC
خط تتبع يعتمد على PID مع صفيف مستشعر POLOLU QTR 8RC

أهلا!

هذه هي الكتابة الأولى لي على التعليمات ، واليوم سأأخذك على الطريق ، وشرح كيفية بناء خط يعتمد على PID يتبع الروبوت باستخدام مصفوفة مستشعر QTR-8RC.

قبل الانتقال إلى بناء الروبوت ، نحتاج إلى فهم ما يسمى بـ PID ،

الخطوة 1: مبدأ العمل

ما هو PID ؟؟

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

المصطلحات الرئيسية كما هو مذكور في وثائق polalu

تتناسب القيمة النسبية تقريبًا مع موضع الروبوت الخاص بك فيما يتعلق بالخط. بمعنى ، إذا كان الروبوت الخاص بك متمركزًا بدقة على الخط ، فإننا نتوقع قيمة متناسبة تبلغ 0 بالضبط

تسجل القيمة التكاملية تاريخ حركة الروبوت الخاص بك: إنها مجموع كل قيم المصطلح النسبي التي تم تسجيلها منذ بدء تشغيل الروبوت

المشتق هو معدل تغير القيمة النسبية

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

الآن نحن بحاجة إلى النظر في مصطلح الخطأ ، هذا هو الفرق بين قيمتي setpoint والقيمة الحالية. (قيمة setpoint هي القراءة التي تتوافق مع الوضع "المثالي" لأجهزة الاستشعار أعلى السطور. والتيار القيمة هي القراءات اللحظية للمستشعر. على سبيل المثال: إذا كنت تستخدم مستشعر المصفوفة هذا وتستخدم 8 مستشعرات ، فستتلقى قراءة موضعية تبلغ 3500 إذا كنت في وضع التشغيل ، وحوالي 0 إذا كنت بعيدًا جدًا عن الخط وحوالي 7000 إذا كنت على حق جدًا.). هدفنا هو جعل الخطأ صفرًا. عندها فقط يستطيع الروبوت أن يتبع الخط بسلاسة.

ثم يأتي الجزء الحسابي.

1) احسب الخطأ.

خطأ = قيمة نقطة الضبط - القيمة الحالية = 3500 - الموضع

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

2) تحديد السرعات المعدلة للمحركات.

MotorSpeed = Kp * Error + Kd * (خطأ - LastError) ؛

LastError = خطأ ؛

RightMotorSpeed = RightBaseSpeed + MotorSpeed ،

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed ؛

من الناحية المنطقية ، يعني الخطأ 0 أن الروبوت الخاص بنا خارج إلى اليسار ، مما يعني أن الروبوت الخاص بنا يحتاج إلى التحرك قليلاً إلى اليمين ، وهذا بدوره يعني أن المحرك الأيمن يحتاج إلى إبطاء والمحرك الأيسر بحاجة إلى الإسراع. هذا هو PID!

يتم تحديد قيمة MotorSpeed من المعادلة نفسها. RightBaseSpeed و LeftBaseSpeed هما السرعات (أي قيمة PWM 0-255) التي يعمل بها الروبوت عندما يكون الخطأ صفراً.

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

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

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

  1. ابدأ بـ kp و Kd يساوي 0 ، وابدأ بـ Kp ، حاول أولاً ضبط Kp على 1 ولاحظ الروبوت ، هدفنا هو اتباع الخط حتى لو كان متذبذبًا ، إذا تجاوز الروبوت الخط وفقده ، قلل من قيمة kp.إذا لم يستطع الروبوت التنقل في دورة وكان بطيئًا في زيادة قيمة Kp.
  2. بمجرد أن يبدو أن الروبوت يتبع الخط إلى حد ما ، اضبط قيمة Kd (قيمة Kd> قيمة Kp) ابدأ من 1 وقم بزيادة القيمة حتى ترى محركًا سلسًا مع تذبذب أقل.
  3. بمجرد أن يبدأ الروبوت في اتباع الخط ، قم بزيادة السرعة ومعرفة ما إذا كان قادرًا على الاحتفاظ بالخط واتباعه.

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

الآن يمكننا أن نبدأ في بناء الروبوت الخاص بنا.

الخطوة 2: The Build

البناء
البناء
البناء
البناء
البناء
البناء

Arduino atmega 2560 مع كابل USB - هذا هو المتحكم الرئيسي المستخدم.

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

www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…

محركات التروس الدقيقة - يحتاج الروبوت إلى محركات دوارة سريعة من أجل التعامل مع روتين PID ، لذلك استخدمت محركات مصنفة عند 6 فولت 400 دورة في الدقيقة وعجلات قابضة مناسبة.

www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…

www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…

مصفوفة مستشعر QTR 8Rc - يمكن استخدامها لتتبع الخط ، كما ذكرنا سابقًا ، أعتقد أن لديك الآن فهمًا واضحًا لكيفية تشغيل مصفوفة المستشعر باستخدام PID. الكود بسيط للغاية واستخدام مكتبات اردوينو الحالية ستكون قادرًا لبناء خط متابع سريع.

www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…

TB6612FNG Motor driver - كنت أرغب في استخدام محرك يمكنه التعامل مع المنعطفات وتغيير الاتجاهات في لمح البصر ، وهو قادر على كبح المحركات بشكل فعال عندما تنخفض إشارة PWM.

www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…

بطارية ليبو - بطارية ليبو 11.1 فولت تستخدم لتوفير الطاقة للروبوت بالرغم من أنني استخدمت بطارية ليبو 11.1 فولت إلا أن هذه السعة تفوق ما هو مطلوب للاردوينو والمحركات. بطارية ليبو أو حزمة بطارية Ni-MH 6 فولت ستكون مثالية لهذا السبب يجب أن أستخدم محول باك لتحويل الجهد إلى 6 فولت.

11.1 فولت-

7.4 V-

وحدة محول باك-

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

الخطوة 3: التجميع

تجميع
تجميع
تجميع
تجميع
تجميع
تجميع
تجميع
تجميع

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

هذا مخطط مثالي وجدته على الإنترنت ، والذي يخبرك بكيفية إجراء الاتصالات.

الخطوة 4: تصميم مسار الخط الخاص بك

تصميم مسار الخط الخاص بك
تصميم مسار الخط الخاص بك

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

الخطوة 5: برمجة الكود الخاص بك

1. قم بتنزيل وتثبيت Arduino

IDE لسطح المكتب

النوافذ -

· نظام التشغيل Mac OS X -

لينكس -

2. قم بتنزيل ملف مصفوفة مستشعر QTR 8 RC والصقه في مجلد مكتبات Arduino.

·

· لصق الملفات إلى المسار - C: / Arduino / libraries

3. قم بتنزيل وفتحLINEFOLLOWING.ino

4. قم بتحميل الكود على لوحة اردوينو عبر كابل USB

الخطوة 6: تم

Image
Image

الآن لديك خط يتبع الروبوت الذي صنعته بنفسك.

آمل أن يكون هذا البرنامج التعليمي مفيدًا. لا تتردد في الاتصال بي عبر [email protected] إذا كان لديك أي مشكلة.

أراك قريبًا بمشروع جديد آخر.

استمتع بالبناء !!

موصى به: