بسم الله الرحمن الرحيم
بعد ان قمنا بتصميم العديد من المشاريع التى لها علاقة بسيارة الروبوت :-
روبوت متتبع الخط line follower
تصميم روبوت التحكم به عن طريق الصوت
تصميم روبوت التحكم به بالصوت عن طريق البلوتوث
ولكن اليوم سنقوم ببعض التطويرات على هذا المشروع حيث سنتحكم بهذا الروبوت باستخدام ريموت كنترول
اولا الأدوات
ir remote reciever and sender
arduino uno
2 motor dc
l239d driver
battery
ir remote reciever and sender
وسيلة التواصل التى سنستعملها فى هذا المشروع
arduino uno
المتحكم الذي سنستخدمه الذي سيقوم بمعالجة البيانات و اتختذ القرار
l239d driver
هذه الشريحة تشبه شريحة h-bridge فهى تقوم بالتحكم فى محركات dc ويجب استخدام هذه الشريحة
وان تم توصيل المواتير مباشرة الى الأردوينو سيتم حرق الأردوينو
ثانيا المجسم :
ونتجه الأن الى تركيب جسم الروبوت
اولا نحضر مثل هذا المجسم لا تهم المادة المصنعة لكن المهم هو ان تكون المادة وزنها خفيف
ونقوم بتوصيل المواتير بالعجلات كما هو موضح بالصورة
ونقوم بلصق المواتير كما هو موضح فى الصورة
فينتج لدينا هذا الشكل
كل ما عليكم وضع باقى التوصيلات على هذا المجسم وهذا الأمر يقف على حسب مهارتكم
ثالثا التوصيلات :
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq6vEB0hR3OE-i1amRR-Y6FWCrczKY46SVI1zth9V-AFY2RLkKLdUK43KJ17xQr8GFj_Ay2xsiGyjamlWc1Im0tdj2IY-y1jpy5qZmtYdWg_ffF5YbQYQF2een2BY7D_Zvng2sILKq9Us8/s16000/robot+ir+remote+control.png)
التوصيلات هى كما موضحه فى الأعلى لم نقوم بشرحها لاننا شرحناها من قبل
رابعا الكود :
فى البداية يجب ان نصل الى البيانات التى يقوم الريموت بارسالها عند الضغطة على اى زر
عن طريق هذا الكود
#include <IRremote.h>
IRrecv rec(8);
decode_results res;
void setup(){
rec.enableIRIn();
Serial.begin(9600);
}
void loop(){
if(rec.decode(&res)){
Serial.println(res.value , HEX);
rec.resume();
}
}
حيث يقوم هذا الكود بقراءة البيانات المرسلة من الريموت وطباعتها فى السيريال مونيتور كل ما عليك تحديد الأزرار التى تريد ان تستعملها
الكود النهائى :-
#include <IRremote.h>
#define IN1 12
#define IN2 11
#define IN3 10
#define IN4 9
IRrecv rec(8);
decode_results res;
void setup(){
rec.enableIRIn();
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
void loop(){
if(rec.decode(&res)){
if(res.value == 0xZZZZZZZ){
Serial.print("right");
right(); }
rec.resume();
if(res.value == 0xZZZZZZZ){
Serial.print("back");
reverse(); }
rec.resume();
if(res.value == 0xZZZZZZZ){
Serial.print("left");
left(); }
rec.resume();
if(res.value == 0xZZZZZZZ){
Serial.print("forward");
forward(); }
rec.resume();
if(res.value == 0xZZZZZ){
Serial.print("stop");
stoprobot(); }
rec.resume(); }}
void forward()
{
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void reverse()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void left()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void right()
{
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
void stoprobot()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
شرح الكود :-
فى البداية قمت باضافة المكتبة الأساسية لكي اتعامل مع ir remote
#include <IRremote.h>
من ثم انشاء متغيرات تحتوى على منافذ الموتور
#define IN1 12
#define IN2 11
#define IN3 10
#define IN4 9
من ثم قمت بانشاء كائنين كائن يتم وضع فيه منفذ الخاص بالمستلم
ثم كائن الأخر يتم انشائه وهو خاص بالبيانات المستلمة من الريموت
IRrecv rec(8);
decode_results res;
من ثم تشغيل المستلم وتهيئته لاستلام البيانات
rec.enableIRIn();
بعد ذلك القيام بتعيين جميع منافذ الموتور كخرج واخراج 0 فولت على جميع المنافذ
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
بعد هذا بدء استلام البيانات عن طريق هذا الأمر
if(rec.decode(&res)){
من ثم البدء فى عمل مقارنات من القيمة المرسلة وقيمة الزر الذي قمت بتعيينه ويجب استبدال ZZZZZ بقيمة الزر التى سبق ان قرانها من على السيريال مونيتر مع الحفاظ على وجود 0x
وباقى الكود لن نقوم بشرحه بسبب اننا قمنا بشرحه العديد من المرات
لتحميل الكود اضغط هنا
خامسا التجربة النهائية :
تجربة المشروع النهائية على موقع تنكر كاد يمكنك مشاهدة هذا الفيديو
لا يوجد تعليقات
أضف تعليق