روبوت ذراع باستخدام الأردوينو #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);
}


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

لا يوجد تعليقات

أضف تعليق