مهندس اتمتة - Automation Engineer مهندس اتمتة - Automation Engineer
recent

آخر الأخبار

recent
recent
جاري التحميل ...

  1. Thank you very much for your great topic

    ردحذف
  2. موضوع رائع ♥️

    ردحذف
  3. عاش ياهندسه ♥️

    ردحذف
  4. شغل رائع ♥️

    ردحذف
  5. تسلم ايدك ياهندسه

    ردحذف

مشروع روبوت تتبع الخط (سيارة) - Automations engineer

مشروع تتابع الخط باستخدام Arduino:



line follower robot using arduino uno:





  

هناك الكثير من العربات في مجال الروبوتات وخاصه التي يهتم بها الطلاب بصناعه هذا الروبوتات ومن امثلها الأكثر شيوعا  line follower robot الذي يتجنب الروبوتات ويتبع خط يسير في مساراته وان نقوم بتصنيع هذا الروبوت من المتحكم الدقيق Arduino وسنتحدث بتفاصيل عن كيفيه صناعه روبوت تتبع الخط باستخدام Arduino خطوه بخطوه ونتحدث عن ماذا تحتاج هذا المشروع من أفكار تحتاج الى معرفه بعض اساسيات الترميز الالكتروني وArduino والاتصال به واذا لم تكن على معرفه بهذه الأشياء يمكنك تعلمها لقد قمنا بتحميل كل المحتوى هنا ونتكلم بتفاصيل عن بناء هذا الربط وكل  ما عليك سيدي القارئ قراءه هذا المقال بالتفصيل وبعد ذلك سوف تكون قادر على بناء روبرت تتابع المسار.







Line Follower Robot:



هو روبوت بسيط للغاية يتبع خطا اما خط أسود في خلفيه بيضاء او خط ابيض في خلفيه سوداء وهذا هو نوع من الروبوتات سهل البناء وغالبا ما يكون هو أفضل مشروع للمبتدئين الذين بدأ العمل في مشروع الروبوت.

هناك نوعان من الروبوتات متابعه الخط الأول روبوت تتبع الخط الأسود هو الذي يسير على الخط الأسود في خلفيه بيضاء.

والثاني روبرت تتابع الخط الأبيض وهو الذي يسير على خط ابيض في خلفيه سوداء.

نور يستشعر متابعه الخط ثم يتبعوا ويسير عليه.

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


ما هي روبوتات تتابع الخط؟


ان روبوتات اتباع الخطوط هي روبوتات اليه يمكنه اتباع مسار واحد يمكن ان يكون أي خط لون غامق في خلفيه بيضاء 

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





كيف يعمل الخط الذي يتابعه الروبوت؟


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


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


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


يجمع الإشارات والبيانات من كلا المستشارين في نفس الوقت ويقارن قيمه كل مستشعر مع السابق ثم يرسل Arduino تعليمات الى سائق(درايفر) المحرك وهو عباره عن اشاره كهربيه بقدر (3.3 فولت) وهي اقل من جهد تشغيل المحرك ولذلك يتم استخدام Driver ال L289n. لربط Arduino بالمحركات و بدون هذا لا يستطيع المحرك التشغيل.






المكونات المطلوبة لتنفيذ المشروع:


  • Arduino Uno
  • 2- IR Sensor
  • Chassis
  • 4-wheel
  • 4-bo motor
  • Jumper wire
  • Battery 9v
  • L298N Motor driver


مخطط الدائرة المشروع:




رسم مخط المشروع باستخدام Proteus:







الكود المستخدم:



//WWWW.automationsengineer.blogspot.com

 int val = 0 ;  
 int va2 = 0 ;  
 void setup()  
 {  
   Serial.begin(9600); // sensor buart rate  
   pinMode(2,INPUT);  // IR 1 SENSOR   
   pinMode(3,INPUT);  // IR 2 SENSOR   
   pinMode(5,OUTPUT); // LED PIN  
   pinMode(6,OUTPUT); // LED PIN  
   pinMode(7,OUTPUT); // LED PIN  
   pinMode(8,OUTPUT); // LED PIN  
   pinMode(9,OUTPUT);  // MOTOR 1 PIN  
   pinMode(10,OUTPUT); // MOTOR 1 PIN  
   pinMode(11,OUTPUT); // MOTOR 2 PIN  
   pinMode(12,OUTPUT); // MOTOR 2 PIN  
 }  
 void loop()   
 {  
  val = digitalRead(2); // IR 1 sensor output pin connected  
  va2 = digitalRead(3); // IR 2 sensor output pin connected  
  Serial.println(val); // see the value in serial mpnitor in Arduino IDE  
  Serial.println(va2); // see the value in serial mpnitor in Arduino IDE  
  delay(10);  
  if(val == 0 )       // RIGHT DIRECTION  
  {  
    digitalWrite(5,HIGH);  // LED ON  
    digitalWrite(6,LOW);  // LED OFF  
    digitalWrite(7,HIGH);  // LED ON  
    digitalWrite(8,LOW);  // LED OFF  
    digitalWrite(9,HIGH);  // MOTOR 1 HIGH  
    digitalWrite(10,LOW);  // MOTOR 1 LOW  
    digitalWrite(11,HIGH); // MOTOR 2 HIGH  
    digitalWrite(12,LOW);  // MOTOR 2 LOW  
  }  
  if(va2 == 0 )       // LEFT DIRECTION  
  {  
    digitalWrite(5,LOW);  // LED OFF  
    digitalWrite(6,HIGH);  // LED ON  
    digitalWrite(7,LOW);  // LED OFF  
    digitalWrite(8,HIGH);  // LED ON  
    digitalWrite(9,LOW);  // MOTOR LOW  
    digitalWrite(10,HIGH); // MOTOR HIGH  
    digitalWrite(11,LOW);  // MOTOR LOW  
    digitalWrite(12,HIGH); // MOTOR HIGH  
  }  
  if(val == 0 & va2 == 0 ) // FORWARD DIRECTION  
  {  
    digitalWrite(5,HIGH);  // LED ON  
    digitalWrite(6,LOW);  // LED OFF  
    digitalWrite(7,LOW);  // LED OFF  
    digitalWrite(8,HIGH);  // LED ON  
    digitalWrite(9,LOW);  // MOTOR 1 LOW  
    digitalWrite(10,HIGH); // MOTOR 1 HIGH  
    digitalWrite(11,HIGH); // MOTOR 2 HIGH  
    digitalWrite(12,LOW);  // MOTOR 2 LOW  
  }  
   if(val == 1 & va2 == 1 ) // STOP DIRECTION  
  {  
    digitalWrite(5,LOW);  // LED OFF  
    digitalWrite(6,LOW);  // LED OFF  
    digitalWrite(7,LOW);  // LED OFF  
    digitalWrite(8,LOW);  // LED OFF  
    digitalWrite(9,LOW);  // MOTOR 1 LOW  
    digitalWrite(10,LOW);  // MOTOR 1 LOW  
    digitalWrite(11,LOW);  // MOTOR 1 LOW  
    digitalWrite(12,LOW);  // MOTOR 1 LOW  
  }  
  } 




كما يمكنك متابعتنا من خلال الرابط:






وفي النهاية أشكركم وأتمنى لكم التوفيق


عن الكاتب

Eng/ELhussein.tawfeiq

التعليقات


جميع الحقوق محفوظة

مهندس اتمتة - Automation Engineer