التحكم بالسيارات عن بعد بالتأكيد هي متعة. في هذا البرنامج التعليمي, سنقوم ببناء سيارة الروبوت و التحكم بها عن طريق الهاتف الذكي بإستخدام تقنية البلوتوث .
القطع المطلوبة:
الأدوات التي تحتاجها لهذا المشروع :
اسلاك توصيل ذكر/ذكر (Jumper Wires Male Male)
اسلاك توصيل أنثى/ذكر (Jumper Wires Female/male)
ما هو الروبوت ؟
الروبوت هو جهاز كهروميكانيكي قادر على التفاعل بطرية أو بأخرى مع بيئته، و اتخاذ قرارات مستقلة أو إجراءات من أجل تحقيق مهنمة محددة.
يتكون الروبوت من العناصر التالية:
1- الهيكل.
2- المشغل الميكانيكي .
3- وحدة التحكم.
4-المدخلات/ الحساسات.
5- امدادات الطاقة.
في الخطوات التالية سنذكر كل عنصر من العناصر المذكورة اعلاه، بحث يمكن أن نفهمها بسهولة.
الهيكل (Structure / Chassis) :
يتألف الهيكل من المكونات الفزيائية. الروبوت يتكون من مكون او اكثر من المكونات الفزيائية التي تتحركة لتنفيذ مهام معينة. وفي حالتنا هيكل السيارة و العجلات تمثل هيكل الروبوت
المشغل الميكانيكي Actuator :
المحرك هو جهاز يقوم بتحويل الطاقة (في مجال الروبوت، تكون الطاقة الكهربائية) الى طاقة حركية. تنتج معظم المحركات إما الحركة الدورانية أو الخطية.
في حالتنا المحرك هو(DC Gear motor) وهو بالاساس عبارة عن محرك DC مركب مع علبة تروس (gear) تعمل على تقليل سرعة المحرك و زيادة عزم الدورات .
هيكل الروبوت
قطع اربع قطع من أسلاك (الحمراء و السوداء) مع طول حوالي 5-6 انش. قم بتجريد السلك من العازل في كل نهاية , ثم قم بلحم الأسلاك على المحركات.
يمكنك التحقق من قطبية المحركات من خلال توصيلها إلى بطارية. اذا كانت تدور في الاتجاه إلى الأمام (السلك الاحمر مع القطب الموجب و الأسود مع القطب السالب) هذا يدل على ان التوصيل تم بشكل صحيح.
تركيب المحرك :
لاحظ أن الأسلاك على كل محرك تشير الى إتجاه مركز الهيكل.
قم بضم اثنان من الأسلاك الحمراء و اثنان من الاسلاك السوداء معا على كل جانب من جوانب الهيكل. بعد الانضمام, سيكون لديك اثنان من النهايات على الجانب الايمن و اثنان على الجانب الأيسر.
تثبيت السقف العلوي:
بعد تركيب الاربع محركات في الطابق السفلي، قم بتركيب السقف العلوي. ثم قم بسحب نهايات الاسلاك نحو السطح العلوي.
هناك حاجة إلى المتحكم (العقل) لتحريك الروبوت من مكان إلى أخر. المتحكم له القدرة على تنفيذ برنامج و يكون مسؤولا عن جميع العمليات الحسابية، واتخاذ القرارات، و الاتصال . في هذا المشروع سيتم استخدام متحكمArduino كـوحدة تحكم.
يمكنك استخدام وحدة التحكم لدوران المحركات في إتجاه واحد. ولكن اذا كنت تريد أن تكون قادر على التحكم في المحرك بإتجاهات مختلفة (الأمام ،الخلف، يمين، ويسار) مع لوحة التحكم, فإنك بحاجة إلى مزيد من الدوائر . انت بحاجة إلى H-Bridge.
L298 H Bridge Module
H-Bridge، يقوم بتحريك محرك الـ DC بإتجاه الامام و الخلف. وهو يتكون من اربع مفاتيح الكترونية S1,S2,S3,S4 (Transistors / MOSFETS / IGBT).
الية العمل: انظر للصورة اعلاه لفهم ألية العمل للـ H-Bridge . المفاتيح في نفس الجهة إما (S1,S2) أو (S3,S4)لا يتم إغلاقهم بنفس الوقت , سيتم حدوث ماس كهربائي .
H-bridge توفر لك دائرة متكاملة، أو يمكنك أن تقوم ببناء الدائرة بنفسك عن طريق إستخدام اربع Transistor او MOSFETs. في هذا المشروع سيتم استخدام L298 H-bridge Module الذي يمكن من خلاله التحكم في سرعة واتجاه المحركات.
وصف مداخل و مخراج الـ L298H-bridge Module :
توصيل الدائرة
الخطوات لتوصيل الدائرة
قم بتوصيل الأسلاك الحمراء للمحركين على كل جهة معا و الأسلاك السوداء معا.
MOTOR A هو المسؤول عن المحركات على الجانب الأيمن, وفي المقابل يتم ربط المحركات على الجانب الايسر للـ MOTOR B.
اتبع التعليمات التالية ليتم توصيل كل شي :
برمجة الأردوينو
في الكود البرمجي سنقوم بمراجعة البيانات الواردة وتنفيذ عملية المقارنة ، اذا كانت البيانات المستقبلة من الهاتف الذكي F يتم تحريك الروبوت للأمام و إذا كانت B يتم تحريكه للخلف و اذا كانت R يتم تغير حركة لليمين و L للتحرك لليسار. ويتم إيقافة إذا كانت البيانات المستقبلة 0 .
قم برفع البرنامج التالي إلى متحكم الأردوينو:
char data = 0; //Variable for storing received data #define right1 7 //IN1 #define right2 8 #define rightE 9 #define left1 6 #define left2 5 #define leftE 10 void Forward(); void Backward(); void Left(); void Right(); void Stop1(); void setup() { Serial.begin(9600); //Sets the baud for serial data transmission pinMode(left1, OUTPUT); pinMode(left2, OUTPUT); pinMode(leftE, OUTPUT); pinMode(right1, OUTPUT); pinMode(right2, OUTPUT); pinMode(rightE, OUTPUT); delay(1000); } void loop() { if(Serial.available() > 0) { data = Serial.read(); //Read the incoming data & store into data switch (data){ case 'F': Forward(); break; case 'B': Backward(); break; case 'L': Left(); break; case 'R': Right(); break; case '0': Stop1(); break; } } } void Forward(){ digitalWrite(right1,1); digitalWrite(right2,0); analogWrite(rightE, 255); digitalWrite(left1,1); digitalWrite(left2,0); analogWrite(leftE, 255); } void Backward(){ digitalWrite(right1,0); digitalWrite(right2,1); analogWrite(rightE, 255); digitalWrite(left1,0); digitalWrite(left2,1); analogWrite(leftE, 255); } void Left(){ digitalWrite(right1,1); digitalWrite(right2,0); analogWrite(rightE, 255); digitalWrite(left1,0); digitalWrite(left2,1); analogWrite(leftE, 255); } void Right(){ digitalWrite(right1,0); digitalWrite(right2,1); analogWrite(rightE, 255); digitalWrite(left1,1); digitalWrite(left2,0); analogWrite(leftE, 255); } void Stop1(){ digitalWrite(left1,0); digitalWrite(left2,0); analogWrite(leftE, 0); digitalWrite(right1,0); digitalWrite(right2,0); analogWrite(rightE, 0); }
شرح الكود :
أولا لفعم الية العمل قم بالاطلاع على الجدول التالي. هو مفيد جدا أثناء كتابة التعليمات البرمجي :
في قسم الـ Loop يتم قراءة البيانات التي تم إرسالها من قبل الهاتف الذكي ثم يتم التحقق منها. فمثلا إذا كانت حرف “F” يتم إستدعاء الدالة Forward()ليتم تحريك الروبوت إلى الأمام ،وإذا كات حرف “B” يتم إستدعاء الدالة backward() ليتم تحريك الروبوت للخلف.
data = Serial.read(); //Read the incoming data & store into data switch (data){ case 'F': Forward(); break; case 'B': Backward(); break; case 'L': Left(); break; case 'R': Right(); break; case '0': Stop1(); break; }
نقوم بإنشاء الدالة Forward() , Backward() , Right(),Left() لتحكم في إتجاهات الروبوت.
و الدالة Stop1() لإيقاف حركة الروبوت
void Stop1(){ digitalWrite(left1,0); digitalWrite(left2,0); analogWrite(leftE, 0); digitalWrite(right1,0); digitalWrite(right2,0); analogWrite(rightE, 0); }
تطبيق الاندرويد
في هذا المشروع لن يتم تغطية طريقة برمجة تطبيق الاندرويد , يمكنك تحميل البرنامج من هنا
كيف يمكن استخدام التطبيق؟
1- قم بتنزيل البرنامج من هنا
2- قم بإقتران جهازك مع البلوتوث HC-06:
– تشغيل البلوتوث HC-06.
– تفحص الجهاز المتوفر .
-يتم الاقتران الى البلوتوث عن طريق ادخال كلمة المرور الافتراضية 1234 او 0000.
3- قم بفتح التطبيق , ثم قم بالضغط على زر الاجهزة المقترنة ثم قم بإختيار وحدة البلوتوث الخاصة بك (HC-06) .
قم بالضغط على الأسهم لتغير حركة الروبوت و على زر Stop لإيقاف الحركة .