مقدمـــــة عن المشروع
في هذه المشروع ، سوف نتعلم كيفية صنع روبوت تابع للخطوط باستخدام الاردوينو ، سيستخدم الروبوت مستشعرين قريبين من الأشعة تحت الحمراء للكشف عن الخط وعلى أساس المدخلات الواردة من المستشعرات ، سوف يقوم اردوينو بتوجيه المحركات للحركة بمساعدة درع المحرك .
متطلبات المشروع
المنتجات الخاصة بالمشروع
مواتير ودرايفرات, جميع المنتجات
موديول محركات درايفر L293D Motor Shield for Arduino
لمحة سريعة
وصلتان لمضاعفات “هواية” بجهد 5 فولت متصلة بمؤقت Arduino المخصص عالي الدقة
4 جسور H: توفر مجموعة شرائح L293D 0.6 أمبير لكل جسر (ذروة 1.2 أمبير) مع حماية من الإغلاق الحراري ، وثنائيات حماية داخلية ضد الارتداد.
يمكن تشغيل المحركات على 4.5VDC إلى 25VDC.
ما يصل إلى 4 محركات DC ثنائية الاتجاه مع تحديد سرعة فردي 8 بت (لذلك ، دقة حوالي 0.5٪)
ما يصل إلى محركين متدرجين (أحادي القطب أو ثنائي القطب) مع ملف واحد أو ملف مزدوج أو خط متداخل.
للاطلاع على فكرة مشروع تساعدك على برمجة واستخدام هذا المنتج
SKU: AA031
بوردات ولوحات نحاسية, جميع المنتجات
لوحة تجارب صغيرة 170 نقطة SYB-170 أبيض Mini Breadboard
لمحة سريعة
نقاط التعادل: 170 (10 × 17)
الحجم: 48 × 35 × 10 ملم (طول × عرض × ارتفاع).
الاستخدام: تجريبي ، اختبار ، روبوت
وصلة عبور مطابقة ، قطرها 0.8 مللي متر
مقاطع زنبركية مطلية بالنيكل من البرونز الفوسفور
يقبل مجموعة متنوعة من أحجام الأسلاك (29-20 AWG)
SKU: AA055
أسلاك وتوصيلات, جميع المنتجات
أسلاك توصيل ذكر لذكر 40 قطعة 20 سم Male to Male jumper wires
لمحة سريعة:
40P لون خط DuPont
الطول: 200 ملم
الوزن: 30 جم
متوافق مع رؤوس تباعد 2.54 مم
40 قطعة من سلك الانتقال الملون من الذكور إلى الذكور
جودة عالية وفي حالة عمل جيدة
متين وقابل لإعادة الاستخدام
سهل التركيب والاستخدام
SKU: AA045
- Chassis (including motors and wheels )
- Arduino Uno r3
- L293D Motor Shield
- IR Proximity Sensors (pair)
- Jumper Wires
- Switch
- 4AA Battery Holder
طريقة العمل والتوصيل
الآن ، قم بإجراء التوصيلات حسب المخطط أعلاه …
Left Sensor>>Arduino:-
- Vcc>>5v
- Gnd>>Gnd
- Out>>A4
Right Sensor>>Arduino:-
- Vcc>>5v
- Gnd>>Gnd
- Out>>A5
قم بتوصيل المحركات بدرع المحرك وقم بتوصيل درع المحرك بلوحة الاردوينو . قم بتوصيل حامل البطارية بالدرع من خلال مفتاح . هذا كل شيء للتوصيلات ، دعنا ننتقل إلى الخطوة التالية …
الكــــــود البرمجي
لتحميل الكود البرمجي اضغط هنا
//including the libraries #include <AFMotor.h> //defining pins and variables #define lefts A4 #define rights A5 //defining motors AF_DCMotor motor1(4, MOTOR12_8KHZ); AF_DCMotor motor2(3, MOTOR12_8KHZ); /* AF_DCMotor motor1(3, MOTOR12_8KHZ); AF_DCMotor motor2(4, MOTOR12_8KHZ); */ void setup() { //setting the speed of motors motor1.setSpeed(200); motor2.setSpeed(200); //declaring pin types pinMode(lefts,INPUT); pinMode(rights,INPUT); //begin serial communication Serial.begin(9600); } void loop(){ //printing values of the sensors to the serial monitor Serial.println(analogRead(lefts)); Serial.println(analogRead(rights)); //line detected by both if(analogRead(lefts)<=400 && analogRead(rights)<=400){ //stop motor1.run(RELEASE); motor2.run(RELEASE); } //line detected by left sensor else if(analogRead(lefts)<=400 && !analogRead(rights)<=400){ //turn left motor1.run(BACKWARD); motor2.run(FORWARD); /* motor1.run(RELEASE); motor2.run(FORWARD); */ } //line detected by right sensor else if(!analogRead(lefts)<=400 && analogRead(rights)<=400){ //turn right motor1.run(FORWARD); motor2.run(BACKWARD); /* motor1.run(FORWARD); motor2.run(RELEASE); */ } //line detected by none else if(!analogRead(lefts)<=400 && !analogRead(rights)<=400){ //stop motor1.run(FORWARD); motor2.run(FORWARD); /* motor1.run(BACKWARD); motor2.run(BACKWARD); */ } }