تصميم روبوت التحكم به عن طريق الصوت (البلوتوث)

2

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

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




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

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

arduino uno
h-bridge
hc-05 
dc motors
h-bridge
استخدمت هذه الشريحة لكى يتم التحكم فى مواتير dc 
ويمنع منعا باتا توصيل مواتير dc بطريقة مباشرة مع الأردوينو لتجنب حرق الأردوينو


dc motor
هو احد انواع المواتير التى تستخدم فى تحريك الروبوت والتى سيتم التحكم بها

HC-05 bluetooth
هذه شريحة البلوتوث الى سيتم استخدامها لنقل البيانات بين الهاتف و الأردوينو وهى تتميز بقدرتها على ارسال وإستلام البيانات على عكس نظيرتها HC-06 التى تستطيع ارسال البيانات فقط



الأردوينو فأى نوع كافى ووافى سنستخدم فى مشروعنا اردوينو اونو

والبطارية هى منفذ الطاقة الذى سيمد الأردوينو وشريحة h-bridge
بالطاقة 

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


كما تلاحظون التوصيلات ليست بالأمر المعقد ابدا كل ما عليكم اتباع الصور الأتيه
حيث قمت بتوصيل h bridge  بمصدر جهد خارجى وقمت بتوصيل منافذ التحكم الى المنافذ الرقمية الخاصة بالأردوينو
وقمت بتوصيل شريحة البلوتوث واستخدمت مقاومتان لتقليل الجهد الداخل على منفذ rx
يجب توصيل منافذ en الى المنافذ الرقمية وتكون هذه المنافذ هى المسؤلة عن تشغيل المواتير
ونتجه الأن الى تركيب جسم الروبوت 
اولا نحضر مثل هذا المجسم لا تهم المادة المصنعة لكن المهم هو ان تكون المادة وزنها خفيف 

ونقوم بتوصيل المواتير بالعجلات كما هو موضح بالصورة
ونقوم بلصق المواتير كما هو موضح فى الصورة


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

ثالثا : الكود : 


#include<SoftwareSerial.h>
SoftwareSerial bt(2,3); //rx tx

#define IN1 12//controll motor pins
#define IN2 11
#define IN3 10
#define IN4 9
#define ENA 8
#define ENB 7

char data ;
void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  pinMode(ENA, OUTPUT);
  pinMode(ENB, OUTPUT);
  digitalWrite(ENA, 1);
  pinMode(ENB, 1);
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, LOW);
  bt.begin(9600);
}

void loop() {
  if(bt.available()>0){
    data= bt.read();
    switch(data){
      case 'f':
        forward();
        break;
      case 'b':
        reverse();
        break;
      case 'r':
        right();
        break;
      case 'l':
        left();
        break;
      case 's':
        stoprobot();
        break;
    }
  }
}

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);
}
فى البداية اضافة المكتبة الأساسية للعمل عن طريق 
#include<SoftwareSerial.h>
ثم تعريف شريحة البلوتوث الى المكتبة عن طريق 
SoftwareSerial bt(2,3); //rx tx
ثم تعريف منافذ الخاصه بالدرايفر عن طريق 
#define IN1 12//controll motor pins
#define IN2 11
#define IN3 10
#define IN4 9
#define ENA 8
#define ENB 7
من ثم تعريف المنافذ كمخارج 
ندخل الأن الى كود void loop
فى البداية التاكد من حالة شريحة البلوتوث اذا كانت متاحه ام لا 
ثم اخذ القراءة من هذه الشريحة وجعله فى متغير
if(bt.available()>0){
    data= bt.read();
من ثم عمل مقارنة البيانات اذا كانت البيانات تساوى f 
قم باستدعاء داله التقدم الى الأمام وهكذا الى اخره 

رابعا التطبيق : 

التطبيق الذي قمت بتصميمه على الهاتف المحمول عند 
يتحرك الريبوت الى الأمام forwardعند نطق بكلمة 
يتحرك الريبوت الى الخلف back عند نطق بكلمة 
يتحرك الريبوت الى اليمين rightعند نطق بكلمة 
يتحرك الريبوت الى اليسار leftعند نطق بكلمة 



لأى استفسارات اتركها فى صندوق التعليقات 

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

تصميم بلال حسان سعدى

التعليقات