الاردوينو

ذراع روبوت

سبق أن قمنا بتوصيل محرك سيرفو مع الاردوينو ، الآن سنقوم ببناء ذراع روبوت باستخدام الاردوينو ، الذراع الروبوتية لها العديد من الاستخدامات في الترفيه والصناعة ، مثل أتمتة المصانع. عموما لإنشاء ذراع روبوت بسيطة ، ستحتاج إلى 4 محركات سيرفو وأحدث إصدار من برنامج Arduino IDE. إذا كنت تستخدم الإصدارات القديمة ، فستحتاج إلى تنزيل مكتبة Servo. ونحن بحاجة إلى المكونات المدرجة في الجدول التالي:

المكونالعدد
اردينو اونو آر 3 – Arduino UNO R31
مقاومة متغيرة – Potentiometers 10K1
محرك سيرفو – اي نوع يدعم 5 فولت تيار مستمر4
لوحة توصيل
اسلاك20

كيف سيعمل البرنامج؟

درسنا في محركات السيرفو للتحكم فيها سوف نحتاج إلى استخدام تعديل عرض النبضة PWM. وسوف نستخدم في مقاومة متغيرة قيمتها (10K) باستخدام المقاومة المتغيرة سوف تتغير زاوية محرك السيرفو ، في الكود سوف نحدد المحركات والمقاومات ونحدد نطاق التحكم من 0 إلى 1024 حسب ورقة بيانات المحرك و الاردوينو. الأمر بسيط للغاية. ولكن ما هي المقاومة المتغيرة او مجزء الجهد؟

[ads2] 

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

مقاومة متغيرة دائرية
مقاومة متغيرة دائرية

الرسم التخطيطي

في هذا المشروع ، سنقوم بتوصيل محرك السيرفو بالمخرجات الرقمية التالية والتي تدعم تضمين عرض النبضة  (D3 ، D5 ، D6 ، و D7) ، وربط المقاومة المتغيرة إلى المدخلات التناظرية التالية (A0 ، A1 ، A2 ، A3). توصيل محركات السيرفو الاربعة والمقاومة المتغيرة مع الارديونو سيكون على النحو التالي:


الكود

تأكد من أن توصيلاتك صحيحة تماما ، ثم قم بتوصيل الاردوينو بجهاز الكمبيوتر باستخدام USB ثم قم بتحميل هذا الكود إلى لوحة الاردوينو أو أي لوحة تملكها:

//this code from www.tocircuit.com ;
#include <Servo.h>

//Servo Motors Defintion

Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;

//Potentiometers Defintion

int pot1 = A0;
int pot2 = A1;
int pot3 = A2;
int pot4 = A3;

int valPot1;
int valPot2;
int valPot3;
int valPot4;

void setup()
{

servo1.attach(3);
servo1.write(0); //define servo1 start position
servo2.attach(5);
servo2.write(90); //define servo2 start position
servo3.attach(6);
servo3.write(90); //define servo3 start position
servo4.attach(9);
servo4.write(70); //define servo4 start position
}

void loop()
{
// potentiometers (value between 0 and 1023)

valPot1 = analogRead(pot1);
valPot1 = map (valPot1, 0, 1023, 90, 180); //(servo value between 0 and 180)
servo1.write(valPot1);

valPot2 = analogRead(pot2);
valPot2 = map (valPot2, 0, 1023, 0, 180);
servo2.write(valPot2);

valPot3 = analogRead(pot3);
valPot3 = map (valPot3, 0, 1023, 0, 180);
servo3.write(valPot3);

valPot4 = analogRead(pot4);
valPot4 = map (valPot4, 0, 1023, 0, 180);
servo4.write(valPot4);

}

الآن قم بتغيير قيم المقاومة المتغيرة (في اتجاه عقارب الساعة أو عكس عقارب الساعة) وشاهد تحرك محركات السيرفو، ويمكنك تعديل الكود لإضافة المزيد من محركات السيرفو لتصبح ذراع الروبوت ذات امكانيات اكبر.

ملاحظة: إذا كنت تستخدم محرك سيرفو يعمل على 5 فولت ، فلن تحتاج إلى وحدة طاقة خارجية ، لأن كيبل الكمبيوتر USB قادر على تزويدك بالطاقة الكافية ، لذلك لا تقلق بشأن الطاقة.


‫2 تعليقات

  1. السلام عليكم اخي العزيز انا لدي معرفة بلغة الجافا فهل تساعدني في مجال الاردوينو وكذلك ماهي اللغات المتطلب تعلمها و المهارات والوقت بشكل عام يعني كم استغرق في تعلم الاساسيات

اترك تعليقاً

أنت تستخدم إضافة Adblock

برجاء دعمنا عن طريق تعطيل إضافة Adblock