بسم الله الرحمن الرحيم
بعد ان قمنا بتصميم روبوت الغرض منه اطفاء الحرائق وتصميم روبوت متتبع للخط يمكن الإطلاع عليه من هنا:
سنقوم اليوم بدمج هذه المشاريع مع بعضها البعض حيث سنحصل علي روبوت يقوم بتتبع الخط وعندما يتحسس وجود اي حرائق يقوم باطفاء الحريق
اولا الأدوات:
flame sensor
3x tracking sensor
Arduino
2x dc motors
h-bridge
battery 9v
line sensor
يعتبر من الحساسات المهمة مع الأردوينو حيث انه يتحسس من اللون الأسود والأبيض
فيعطى واحد عند استشعاره للون الأسود يعطى صفر وعند استشعاره للون الأبيض يعطى واحد
سنستخدم منه ثلاثة للسماح للروبوت بمعرفه اتجاه الخط فإذا كان الخط يسير بإتجاه مستقيم
فإن الحساس الأوسط سيعطى صفر
وإذا واتجه الخط ناحية اليمين يقرء الحساس الأيمن صفر
وإذا اتجه الخط ناحية اليسار يقرأ الحساس الأيسر صفر
dc motor
هذا نوع من المواتير وهو المستخدم غالبا فى الروبوتات الخاصة بالأردوينو
سنستخدم فى هذا المشروع هذا النوع من المواتير
h-bridge
تعتبر هذه الشريحة التى تتحكم بالمواتير
يمنع منعا باتا توصيل الأردوينو بطريقة مباشرة مع المواتير
والا سيتم حرق الأردوينو
تأخذ هذه الشريحة مصدر طاقة خارجى وغالبا ما يكون بطارية 9 فولت
تأخذ الإشارة من الأردوينو لبدء عمل اي موتور مع تحديد اتجاه دورانه
Arduino
المتحكم المستخدم للقيام بمعالجة البيانات
flame sensor
حساس اللهب وهو مفيد في معرفة اذا كان هناك حرائق ام لا
ثانيا التوصيلات:
يتكون متتبع الخط من 3 منافذ منفذ الطاقة 5 فولت ومنفذ السالب الي السالب ومنفذ الإشارة حيث يتم توصيل منفذ الإشارة الخاص بالحساس الأيمن الي منفذ رقم 8 الرقمي وتوصيل الحساس الأوسط منفذ الإشارة الي منفذ رقم 9 وتوصيل منفذ الإشارة الخاص بالحساس الأيسر الي منفذ رقم 7
ويتم توصيل حساس اللهب كالاتي منفذ الطاقة الي 5 فولت ومنفذ السالب الي السالب ومنفذ الإشارة الي 6 الرقمي
يتم توصيل المضخة الخاصة بضخ المياه عن طريق ترانزيستور npn فحيث يتم توصيل emiter الي السالب الخاص بالمضخة وتوصيل collector الي السالب الخاص ببطارية 9 فولت وتوحيد الطرف السالب مع توصيل سالب اﻷردوينو معهم و توصيل base الخاص بالترانزيستور الي منفذ 5 الرقمي
وتوصيل المواتير dc الي h-bridge وتوصيل منافذ الإشارة الخاصة ب h-bridge الي المنافذ رقم A0,A1,A2,A3,A4
مجسم الروبوت
المجسم الذى سنستخدمه اليوم سيكون بهذا الشكل
نقوم بلصق المواتير بهذا الشكل
بعد ذلك قوموا بوضع باقى المكونات على حسب مهارتكم
يجب وضع حساس الخط فى مقدمة الروبوت وجعل مسافة 1 سم بين الحساس والأرض
ويجب وضع حساس فى اقصي يمين مقدمة الروبوت
ووضع اخر فى اقصى يسار مقدمة الروبوت
ووضع الأخير فى وسط مقدمة الروبوت
فى الجزء المواجه الى الأرض
ثالثا الكود :
const int LeftMotorForward =A0;
const int LeftMotorBackward =A1;
const int RightMotorForward =A2;
const int RightMotorBackward =A3;
const int EnableAB =A4;
const int sensor_right = 8;
const int sensor_middle = 9;
const int sensor_left = 7;
const int flamese = 6;
const int pump = 5;
void mforward()
{
//to make robot move forward
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorForward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorBackward, LOW);
Serial.println("go forward!");
}
void mleft()
{
//to move robot left
digitalWrite(RightMotorForward, HIGH);
digitalWrite(LeftMotorForward, LOW);
Serial.println("go left!");
}
void mright()
{
//to move robot right
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorForward, LOW);
}
void mstop()
{
//to stop the robot
digitalWrite(RightMotorForward, LOW);
digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorBackward, LOW);
digitalWrite(LeftMotorBackward, LOW);
Serial.println("Stop!");
}
void setup()
{
pinMode(RightMotorForward, OUTPUT);
pinMode(LeftMotorForward, OUTPUT);
pinMode(LeftMotorBackward, OUTPUT);
pinMode(RightMotorBackward, OUTPUT);
pinMode(EnableAB,OUTPUT);
digitalWrite(EnableAB,1);
delay(100);
}
void loop()
{
int right_state = digitalRead(sensor_right);
int left_state = digitalRead(sensor_left);
int middle_state = digitalRead(sensor_middle);
if(right_state == 0 && left_state == 1 && middle_state == 1)
{
mright();}
if(right_state == 1 && left_state == 0 && middle_state == 1)
{
mleft();}
if(right_state == 1 && left_state == 1 && middle_state == 0)
{
mforward(); }
if(right_state == 1 && left_state == 1 && middle_state == 1)
{
mstop();}}
void fire_fight(){
int x = digitalRead(flamese);
if(x==1){
digitalWrite(pump,1);
}else{
digitalWrite(pump,0);}}
في البداية يجب تعريف المتغيرات الأساسية مثل منافذ المواتير والحساسات ومنفذ المضخة وتعريف المدخلات والمخرجات
ثم القيام بعمليات مقارنة هل الخط يتجه لليمين تحرك الروبوت لليمين هل الخط متجه للأمام حرك الروبوت للامام هل الخط يتجه لليسار تحرك الروبوت ناحية اليسار و اذا كانت هناك اي اشارة من حساس اللهب قم بتشغيل المضخة علي الفور
لتحميل الكود اضغط هنا
تصميم وبرمجة : بلال حسان سعدي
لا يوجد تعليقات
أضف تعليق