كيفية بناء روبوت - الدرس 3: بناء روبوت تتبع الخط: 16 خطوة

الفضاء - علوم الفلك للقرن الØادي والعشرين

الفضاء - علوم الفلك للقرن الØادي والعشرين

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

Anonim

بعد الانتهاء من الوظائف الأساسية ، نحن الآن على استعداد لمنح روبوت Arduino إمكانية ترقية - تتبع الخط!

في هذا البرنامج التعليمي ، سيتم تعليمك خطوة بخطوة لإنشاء خط يتتبع روبوت Arduino. لتسهيل متابعة هذا البرنامج التعليمي ، يتم استخدام مجموعة الروبوت Arduino (Pirate: 4WD Arduino Mobile Robot Kit مع Bluetooth 4.0) هنا كمثال.

قائمة الدروس:

الدرس 1: مقدمة

الدرس 2: بناء روبوت اردوينو الأساسي

الدرس 3: بناء خط تتبع اردوينو روبوت

الدرس 4: قم ببناء روبوت اردوينو يمكنه تجنب العقبات

الدرس 5: بناء روبوت اردوينو مع تأثيرات الضوء والصوت

الدرس 6: بناء روبوت اردوينو يمكن أن يراقب البيئة

الدرس 7: قم ببناء روبوت اردوينو المتحكم فيه بتقنية Bluetooth

أجزاء الأجهزة التي قد تحتاجها:

تتبع خط (التالية) الاستشعار عن اردوينو × 3

اللوازم:

الخطوة 1:

عرض 2.5CM الشريط الكهربائي الأسود × 1

الخطوة 2:

1M * 1M السبورة البيضاء × 1

الخطوه 3:

دعم النايلون M3 * 30MM (مسامير ، المكسرات) × 3

الخطوة 4:

تعليمات التجميع

ليس من الصعب تجميع روبوت اردوينو. يرجى اتباع التعليمات التالية.

الخطوة 1:

أولاً ، تحتاج إلى 3 دعامات من النايلون ومسامير وجوز مرافقة لها.

الخطوة 5:

الخطوة 2: إرفاق دعامات النايلون

باستخدام المكسرات ، قم بتوصيل دعامات النايلون الموجودة أعلى المستشعرات Mini. عند إرفاق الدعامات ، يرجى الانتباه إلى اتجاههم: المكسرات والتحقيقات يجب أن تكون في اتجاه واحد.

الخطوة 6:

الخطوة 3: تجميع لوحة الاستشعار

أخرج اللوحة العلوية من المنصة الآلية. بعد ذلك ، قم بتوصيل لوحة المستشعر بالجزء الأمامي من المنصة.

الخطوة 7:

الخطوة 4: تجميع مستشعر تتبع الخط

أولاً ، قم بتوصيل المستشعر بالسلك المخصص لنقل البيانات. ثم ، استخدم مسامير M3 الخاصة بك لتركيب أجهزة الاستشعار على لوحة التمدد البارزة من مقدمة المنصة.

الخطوة 8:

توصيل الجهاز

بعد تجميع المستشعرات ، لا تتعجل لإعادة تشغيل اللوحة العلوية للمنصة - قبل القيام بذلك ، نحتاج أولاً إلى توصيل المستشعرات بـ Romeo BLE.

تُظهر الصورة الموجودة على الجانب الأيسر موضع ABC الصحيح لأجهزة الاستشعار على لوحة المستشعر ، والذي يتوافق مع المسامير 10 و 9 و 8 على Romeo BLE. عند توصيل أجهزة الاستشعار ، تأكد من أنك قمت بتوصيلها بالتسلسل المناسب. بعد توصيل المستشعرات ، أعد توصيل اللوحة العلوية للمنصة أعلى القاعدة.

الخطوة 9:

ضبط أجهزة الاستشعار

قبل تنزيل الكود ، نحتاج إلى ضبط مجساتنا. أولاً ، قم بتوصيل كبل USB بجهاز Romeo BLE (لوحة التحكم في Arduino Robot مع Bluetooth 4.0) لمنحه الطاقة. كما هو موضح في الصورة أدناه ، فإن المستشعر أدناه لديه رأس لولبي من Philips ؛ يمكن استخدام رأس المسمار هذا لضبط اكتشاف المستشعر عن بعد. خذ قطعة من الورق الأبيض وضعها أسفل مسبار المستشعر (يتم استخدام لون الورق لأغراض المعايرة). الحصول على مفك البراغي واستخدامه لتشديد رأس المسمار فيليبس. ستشعر أن مسبار المستشعر يتحرك فعليًا لأعلى ولأسفل حسب مدى إحكام تشديد رأس المسمار. سترى أيضًا إضاءة LED للمستشعر بمجرد بدء التشديد. شد رأس المسمار حتى نقطة التحقيق حوالي 2 سم فوق قطعة من الورق.

الخطوة 10:

الترميز

قم بتوصيل USB الخاص بك. قم بتنزيل كود Arduino ، المسمى "HuntingLineBlack.ino" ، من GitHub. انقر فوق الزر "تحميل" في Arduino IDE لتحميل الرمز إلى لوحة التحكم BLE.

الخطوة 11:

تكوين مسار Arduino Robot الخاص بك

اخرج السبورة البيضاء استخدم شريطك الكهربائي بعرض 2.5 سم لوضع مسار على السبورة كما هو موضح في الصورة أدناه.

الخطوة 12:

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

الخطوة 13:

ناقل الحركة: كيف يعمل

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

عندما يتحرك روبوتنا ، ستحدث ثلاثة شروط.

الخطوة 14:

(أ) عندما يبدأ الروبوت في التحرك على طول المسار ، يقوم المستشعر الأوسط (B) فقط باكتشاف الخط الأسود - المستشعران الأيمن والأيسر لم يتم تشغيلهما بعد. ستبقى السيارة متمركزة على طول المسار وتتقدم للأمام.

الخطوة 15:

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

الخطوة 16:

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

ملخص الرمز

ليست هناك حاجة لمناقشة الشفرة الأساسية - دعنا فقط نلقي نظرة على الجزء المتعلق بالنقل.

int RightValue ؛ // مستشعر الجرار الأيمن على رقم 8

Int MiddleValue؛ // مستشعر جرار الخط الأوسط على الدبوس 9

int LeftValue؛ // جهاز استشعار الخط الأيسر للجرار على الدبوس 10

// قراءة 3 دبابيس من قيم Line Tracking Sensor

RightValue = digitalRead (8)؛

MiddleValue = digitalRead (9)؛

LeftValue = digitalRead (10)؛

استخدم ثلاثة متغيرات - RightValue و MiddleValue و LeftValue - لتسجيل قيم قراءة 3 أجهزة استشعار.

تُستخدم وظيفة DigitalRead (pin) لقراءة قيمة منفذ الإدخال / الإخراج الرقمي. إذا كان هذا الجزء لا يزال غير واضح ، فالرجاء التحقق من دليل المصطلحات أو موقع Arduino الإلكتروني.

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

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

if (MiddleValue == LOW) {// line in the Robot.Speed ​​الأوسط (100،100)؛ تأخير (10)؛}

وإلا إذا ((LeftValue == HIGH) && (RightValue == HIGH)) {Robot.Speed ​​(100،100)؛ تأخير (10)؛}

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

وإلا إذا ((LeftValue == LOW) && (RightValue == HIGH)) {Robot.Speed ​​(-100،100)؛ // اتجه إلى اليسار تأخير (10) ؛}

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

وإلا إذا ((LeftValue == HIGH) && (RightValue == LOW)) {Robot.Speed ​​(100، -100)؛ // اتجه يمينا التأخير (10) ؛}