404

الصفحه التي تبحث عنها غير موجوده

روبوت ذراع باستخدام الأردوينو #2

0

 بسم الله الرحمن الرحيم

بعد ان قمنا سابقا بتصميم مثل هذا الروبوت ولكن كانت الية التحكم باستخدام المقاومات المتغيرة سنقوم اليوم باستخدام البلوتوث بالتحكم بهذا الروبوت 
 للإطلاع علي المشروع السابق من هنا

 اولا الأدوات  

4x servo motor
arduino uno 
hc-05 bluetooth module

موتور سيرفو  

احد انواع المواتير التي يمكن استعمالها الأردوينو والتي يمكنها الدوران بزاوية معينة 
 

arduino uno

المتحكم الذي سنستخدمه في اخراج الإشارات الي المواتير واستلام الإشارات من شريحة البلوتوث


 
 

 hc-05 bluetooth module 

شريحة البلوتوث التي سنتعامل معها ونرسل لها البيانات من التطبيق الي الأردوينو فهي الوسيط 
 



ثانيا التوصيلات : 

 يحتوي الموتور السيرفو علي 3 منافذ منفذ الطاقة يتم توصيله الي 5 فولت
 ومنفذ السالب يتم توصيله الي سالب الأردوينو 
ومنفذ الإشارة يتم توصيله الي منفذ من منافذ الرقمية 
وهكذا مع باقي المواتير السيرفو 
وتحتوي شريحة البلوتوث علي 4 منافذ
منفذ الطاقة يتم توصيله الي 5 فولت 
ومنفذ السالب يتم توصيله الي السالب
ومنفذ tx يتم توصيله الى 4
ومنفذ rx يتم توصيله الي 3

ثالثا الكود :

 #include<Servo.h>
#include<SoftwareSerial.h>
Servo serv1;
Servo serv2;
Servo serv3;
Servo serv4;
SoftwareSerial bt(4,3);

char da1 ;
char da2 ;
char da3 ;
char da4 ;

char data ;
void setup() {
serv1.attach(3);
serv2.attach(5);
serv3.attach(6);
serv4.attach(10);
bt.begin(9600);
}

void loop() {
while(bt.available()<0){}
data = bt.read();
if(data == 'f'){
  da1= bt.read();
  da1 = map(da1,0,180,0,255);
  da1 = constrain(da1,0,180);
  serv1.write(da1);
}
if(data == 's'){
  da2= bt.read();
  da2 = map(da2,0,180,0,255);
  da2 = constrain(da2,0,180);
  serv2.write(da2);
}
if(data == 't'){
  da3= bt.read();
  da3 = map(da3,0,180,0,255);
  da3 = constrain(da3,0,180);
  serv3.write(da3);
}
if(data == 'b'){
  da4= bt.read();
  da4 = map(da4,0,180,0,255);
  da4 = constrain(da4,0,180);
  serv4.write(da4);
}
data = 0;
  }


في البداية يجب تعريف بعض المكتبات الأساسية للتعامل مكتبتي 
servo و SoftwareSerial
 #include<Servo.h>
#include<SoftwareSerial.h>
 وبعد ذلك تعريف المواتير داخل المكتبة عن طريق
Servo serv1;
Servo serv2;
Servo serv3;
Servo serv4;
من ثم تعريف منافذ البلوتوث 
SoftwareSerial bt(4,3);
من ثم تعريف بعض المتغيرات من نوع char لكي نستقبل بها بيانات التطبيق
 char da1 ;
char da2 ;
char da3 ;
char da4 ;
char data ;
من ثم تعريف منافذ المواتير 
serv1.attach(3);
serv2.attach(5);
serv3.attach(6);
serv4.attach(10);
ومن ثم تحديد سرعة شريحة البلوتوث في استلام البيانات 
bt.begin(9600);
من ثم التاكد من حالة عمل شريحة البلوتوث 
while(bt.available()<0){}
ونقوم بوضع المتغير data لكي يحتوي علي البيانات المرسلة 
data = bt.read();
من ثم القيام ببعض الشروط اذا كانت data تساوي f
قم بقراءة زاوية التي قمت بتعيينها في التطبيق واخرجها علي الموتور السيرفو 
وهكذا مع باقي الكود حتي النهاية 
if(data == 'f'){
  da1= bt.read();
  da1 = map(da1,0,180,0,255);
  da1 = constrain(da1,0,180);
  serv1.write(da1);
}


لتحميل الكود و التطبيق من هنا
 
 
تصميم وبرمجة : بلال حسان سعدي
 

كيفية عمل روبوت ذراع #1

0


 بسم الله الرحمن الرحيم

يعد هذا التطبيق من احد افضل التطبيقات التى يمكن تصميمها بإستخدام الأردوينو ويتم استخدام هذه الروبوتات فى المصانع فى صناعه المنتجات بكميات اكبر 

فسنقوم فى هذا المشروع بعمل روبوت زراع والذى سيستمر معنا كسلسلة 

اولا سنقوم بعمل روبوت زراع يتم التحكم به عن طريق 4 مقاومات متغيرة


اولا الأدوات :

4 x servo motor

arduino uno

4 x 
potentiometer

servo motor

الموتور السيرفو وهو الذى سيقوم بتحريك الزراع ويتم استخدام اربعه مواتير لبناء لتوفير الحركة الكاملة للروبوت



arduino uno

لوحة معالجة البيانات التى سيتم استخدامها فى معالجة البيانات


potentiometer
مقاومة المتغيرة او المكون التى سنستخدمه لتحيديد درجة التحرك الخاصه بالمواتير السيرفو
حيث سنستخدم اربع مقاومات لتحريك الأربعه المواتير


ثانيا التوصيلات :
أ - التوصيل الإكترونى :


حيث تحتوى المقاومة المتغير على ثلاثة منافذ 
منفذ يتم توصيبله ب  5 فولت الخاص بالأردوينو 
المنفذ الأوسط يتم توصيله بالمداخل التماثلية
المنفذ الأخير يتم توصيله بالسالب

ويحتوى الموتور السيرفو على ثلاثة منافذ
منفذ للموجب يتم توصيله الى 5 فولت
والسالب يتم توصيله الى السالب
والمنفذ الخاص بالبيانات يتم توصيله الى منافذ pwm الخاصه بالأردوينو وهى 
3 و 5 و 6 و10

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


ثالثا الكود : 

#include<Servo.h>
Servo serv1;
Servo serv2;
Servo serv3;
Servo serv4;

int v1 = A0;
int v2 = A1;
int v3 = A2;
int v4 = A4;

int da1 ;
int da2 ;
int da3 ;
int da4 ;
void setup() {
serv1.attach(3);
serv2.attach(5);
serv3.attach(6);
serv4.attach(10);

}

void loop() {
   da1= analogRead(v1);
da1 = map(da1,0,180,0,1023);
da1 = constrain(da1,0,180);
serv1.write(da1);
   da2= analogRead(v2);
da2 = map(da2,0,180,0,1023);
da2 = constrain(da2,0,180);
serv2.write(da2);
   da3= analogRead(v3);
da3 = map(da3,0,180,0,1023);
da3 = constrain(da3,0,180);
serv3.write(da3);
   da4= analogRead(v4);
da4 = map(da4,0,180,0,1023);
da4 = constrain(da4,0,180);
serv4.write(da4);
}

تفصيل الكود :
فى البداية قمت باضافة المكتبة الأساسية للتعامل مع المواتير السيرفو وقمت بإخبار المكتبة عن وجود اربعه مواتير سيرفو عن طريق 
#include<Servo.h>
Servo serv1;
Servo serv2;
Servo serv3;
Servo serv4;
ثم قمت بتعريف المنافذ الخاصه بالمقاومات المتغيرة عن طريق

int v1 = A0;
int v2 = A1;
int v3 = A2;
int v4 = A4;
وتعريف متغيرات يتم فيها تخزين القراءة الخاصة بالمقاومة التى ستكون بين 0 الى 1023
int da1 ;
int da2 ;
int da3 ;
int da4 ;
فى بداية void setup يجب تعريف المنافذ الخاصه بالمواتير السيرفو عن طريق 
serv1.attach(3);
serv2.attach(5);
serv3.attach(6);
serv4.attach(10);
ثم الدخول الى الكود الخاص بنا
اولا قم بقراءة القيمة الناتجة من المقاومة المتغيرة التى ستكون قيمتها بين 0 الى 1023
وقم بتخزين هذه القيمة فى المتغير الخاص بالبيانات الأول
قم بعمل مساواة لهذه القيمة التى قيمتها الأدنى هى 0 وقيمتها الأقصى هى 1023 
وقم بجعلها تساوى هذه القيمة التى تنحصر بين 0 الى 180
ثم قم بتحريك الموتور السيرفو الأول على ناتج المساواة
ثم يتكرر هذا الكود بهذا النمط مع باقى المواتير مع تغيير اسماء المنافذ

لأى استفسارات اكتب فى التعليقات

لتحميل الكود اضغط هنا

تصميم وبرمجة : بلال حسان سعدى