You are currently viewing Building a Bluetooth-Controlled Robot Car with Arduino, HC-05, and Adafruit Motor Shield
This robot car was built using an Arduino Uno, an Adafruit Motor Shield, and an HC-05 Bluetooth module. The image shows the control app displayed on a tablet in the background.

بناء سيارة روبوتية تتحكم بها عبر Bluetooth باستخدام Arduino، HC-05، ومنصة تحكم محركات Adafruit

في هذا الدرس التعليمي لبلوتوث Arduino، سنقوم ببناء سيارة يتحكم فيها عن طريق البلوتوث باستخدام Arduino Uno، ووحدة بلوتوث HC-05، ودرع محرك Adafruit. يغطي هذا المشروع كل شيء من تجميع هيكل السيارة إلى برمجة Arduino وتطوير تطبيق تحكم لهاتفك الذكي.

"3D rendering of a mobile robot chassis with four yellow wheels and a flat, square base. The wheels are connected to the base, showing the initial assembly stage of the robot.

في نهاية هذا الدليل، ستحصل على سيارة روبوتية تعمل بشكل كامل ويمكنك التحكم بها لاسلكيًا باستخدام جهاز الأندرويد الخاص بك. يمكنك زيارة هذا الدليل عن وحدة البلوتوث HC-05/HC-06 وكيفية استخدامها مع الأردوينو لتعلم كيفية استخدام وحدة HC-05 مع الأردوينو.

المكونات المطلوبة:

  • ورقة زجاج عضوي (بلكسيجلاس) لاستخدامها كهيكل للروبوت
  • 4 محركات تيار مستمر مع صناديق تروس
  • درع المحرك Adafruit V1.2
  • أردوينو أونو
  • وحدة البلوتوث HC-05
  • حوامل محركات وحامل أردوينو مطبوعة بتقنية الطباعة ثلاثية الأبعاد
  • أسلاك التوصيل
  • حوامل محركات وحامل أردوينو مطبوعة بتقنية الطباعة ثلاثية الأبعاد
  • هاتف ذكي مثبت عليه تطبيق MIT App Inventor

الخطوة 1: بناء الهيكل لسيارتك التي يتم التحكم فيها عبر البلوتوث

لبدء بناء سيارتك التي يتم التحكم فيها عبر البلوتوث، سنقوم بإنشاء الهيكل باستخدام ورقة من زجاج الأكريليك (Plexiglas). سيعمل هذا كقاعدة لتركيب جميع المكونات.

  1. قص البلكسيجلاس: قم بقياس وقص ورقة البلكسيجلاس إلى الأبعاد المطلوبة للهيكل.
  2. حوامل: قم بتصميم وطباعة حوامل المحركات لتثبيت محركات التيار المستمر بأمان على الهيكل.
  3. طباعة حامل أردوينو ثلاثي الأبعاد: قم بتصميم وطباعة حامل لتثبيت لوحة أردوينو أونو بشكل آمن على الهيكل.

الخطوة 2: تركيب المحركات

بعد ذلك، سنقوم بتركيب محركات التيار المستمر كجزء من مشروع سيارتنا التي يتم التحكم فيها عبر البلوتوث.

  1. تثبيت المحركات: استخدم البراغي والصواميل لتثبيت محركات التيار المستمر على حوامل المحركات المطبوعة ثلاثياً.
  2. تثبيت المحركات على الهيكل: قم بتثبيت حوامل المحركات على هيكل البلكسيجلاس باستخدام البراغي والصواميل.

الخطوة 3: تركيب لوحة الأردوينو ودرع المحرك

ثبت لوحة Arduino Uno ودرع محرك Adafruit بينما نتقدم في درسنا لبناء سيارة يتم التحكم فيها عبر البلوتوث.

  1. تثبيت حامل الأردوينو: قم بتثبيت حامل الأردوينو المطبوع ثلاثياً على الهيكل بشكل آمن.
  2. تثبيت الأردوينو: ضع لوحة أردوينو أونو في الحامل وقم بتثبيتها باستخدام البراغي.
  3. تثبيت درع المحرك: ضع درع المحرك Adafruit على لوحة أردوينو أونو، مع التأكد من أن جميع المسامير متراصة بشكل صحيح.

الخطوة 4: توصيل المكونات

توصيل المكونات بشكل صحيح أمر بالغ الأهمية في هذا المشروع لبناء سيارة يتم التحكم فيها عبر البلوتوث. 

  1. توصيل المحركات بدرع المحرك:
    – قم بتوصيل المحركات اليسرى بالمنافذ M1 و M2 على درع المحرك.
    – قم بتوصيل المحركات اليمنى بالمنافذ M3 و M4 على درع المحرك.
  2. توصيل وحدة البلوتوث HC-05:
    – قم بتوصيل VCC إلى 5V على الأردوينو.
    – قم بتوصيل GND إلى GND على الأردوينو.
    – قم بتوصيل TXD إلى RX (الطرف 0) على الأردوينو.
    – قم بتوصيل RXD إلى TX (الطرف 1) على الأردوينو.
Diagram of a mobile robot using four DC motors connected to a motor controller and an Arduino. The Arduino is connected to a battery pack (AAA batteries) via a switch. The diagram shows the wiring between the motors, the motor controller, and the power source.

الخطوة 5: تزويد السيارة التي يتم التحكم فيها عبر البلوتوث بالطاقة

تعلم كيفية تزويد سيارتك التي يتم التحكم فيها عبر البلوتوث بالطاقة في هذه الخطوة.

  1. توصيل حزمة البطاريات:
    – قم بتوصيل الأطراف الموجبة والسالبة لحزمة البطاريات بأطراف الطاقة على درع المحرك.
    – تأكد من توصيل الأرضي بشكل صحيح.

الخطوة 6: برمجة الأردوينو للتحكم عبر البلوتوث

إليك كود الأردوينو للتحكم في سيارة الروبوت باستخدام أوامر البلوتوث من هاتفك الذكي. للحصول على إرشادات مفصلة حول برمجة الأردوينو والتحكم في محركات التيار المستمر، يمكنك زيارة مدونتنا حول التحكم في محركات التيار المستمر باستخدام جسر H المزدوج L298N ودرع محرك الأردوينو.

/**
 * Author: Omar Draidrya
 * Date: 2024/07/03
 * This code controls the forward and backward movement of a motor using an H-bridge.
 */

#include <AFMotor.h>

AF_DCMotor motor1(1);  // Create motor #1 using M1 connector
AF_DCMotor motor2(2);  // Create motor #2 using M2 connector
AF_DCMotor motor3(3);  // Create motor #3 using M3 connector
AF_DCMotor motor4(4);  // Create motor #4 using M4 connector

char command;

void setup() {
    Serial.begin(9600);  // Start serial communication at 9600 baud rate
    motor1.setSpeed(255);  // Set initial motor speeds
    motor2.setSpeed(255);
    motor3.setSpeed(255);
    motor4.setSpeed(255);
}

void loop() {
    if (Serial.available() > 0) {
        command = Serial.read();  // Read the incoming command

        if (command == 'F') {
            forward();
        } else if (command == 'B') {
            backward();
        } else if (command == 'L') {
            turnLeft();
        } else if (command == 'R') {
            turnRight();
        } else if (command == 'S') {
            stop();
        }
    }
}

void forward() {
    motor1.run(FORWARD);
    motor2.run(FORWARD);
    motor3.run(FORWARD);
    motor4.run(FORWARD);
}

void backward() {
    motor1.run(BACKWARD);
    motor2.run(BACKWARD);
    motor3.run(BACKWARD);
    motor4.run(BACKWARD);
}

void turnLeft() {
    motor1.run(BACKWARD);
    motor2.run(BACKWARD);
    motor3.run(FORWARD);
    motor4.run(FORWARD);
}

void turnRight() {
    motor1.run(FORWARD);
    motor2.run(FORWARD);
    motor3.run(BACKWARD);
    motor4.run(BACKWARD);
}

void stop() {
    motor1.run(RELEASE);
    motor2.run(RELEASE);
    motor3.run(RELEASE);
    motor4.run(RELEASE);
}
    

الوصف:

هذا الكود يتحكم في روبوت بأربعة محركات تيار مستمر باستخدام الاتصال التسلسلي عبر البلوتوث. يستقبل الأردوينو الأوامر من الهاتف الذكي وينفذ الحركات المقابلة:

  1. تهيئة المحركات: يتم تكوين المحركات باستخدام مكتبة Adafruit Motor Shield () مع الموصلات M1 إلى M4. يتم ضبط كل محرك في البداية على السرعة القصوى.
  2. الاتصال التسلسلي: ينتظر الأردوينو بيانات تسلسلية من الهاتف الذكي. عندما يتم استقبال أمر، يتم قراءته وتخزينه في المتغير الخاص بالأمر.
  3. تنفيذ الأوامر: يتم استدعاء الدالة المناسبة للتحكم في المحركات اعتمادًا على الأمر المستلم (F للأمام، B للخلف، L لليسار، R لليمين، S للتوقف).
  4. وظائف الحركة:
    forward(): جميع المحركات تتحرك إلى الأمام.
    backward(): جميع المحركات تتحرك إلى الخلف.
    turnLeft(): المحركات اليسرى تتحرك إلى الخلف، المحركات اليمنى تتحرك إلى الأمام.
    turnRight(): المحركات اليسرى تتحرك إلى الأمام، المحركات اليمنى تتحرك إلى الخلف.
    stop(): جميع المحركات تتوقف.

الخطوة 7: تطوير تطبيق أندرويد للتحكم عبر البلوتوث

سنستخدم MIT App Inventor لإنشاء تطبيق يرسل أوامر إلى الروبوت عبر Bluetooth. لفهم أساسيات برمجة Arduino، يمكنك الرجوع إلى دليلنا "أساسيات برمجة Arduino".

  1. التسجيل وتسجيل الدخول:
    اذهب إلى MIT App Inventor وسجّل الدخول باستخدام حساب Google الخاص بك.
  2. إنشاء مشروع جديد:
    انقر على "ابدأ مشروع جديد" واختر اسم "RobotCarControl".
  3. تصميم واجهة المستخدم:
    - أضف ListPicker واضبط النص على "Select Bluetooth Device". - أضف مكون BluetoothClient من لوحة الاتصالات (مكون غير مرئي). - أضف أربعة أزرار للتحكم: Forward (للأمام), Backward (للخلف), Left (لليسار), Right (لليمين)، واضبط ألوانها على هذا النحو.
  4. برمجة الكتل (Blocks):
    أضف الكتل التالية لإدارة اتصال Bluetooth وإرسال أوامر التحكم.
when ListPicker1.BeforePicking
  set ListPicker1.Elements to BluetoothClient1.AddressesAndNames

when ListPicker1.AfterPicking
  if call BluetoothClient1.Connect address ListPicker1.Selection
    then set Label1.Text to "Connected"
    else set Label1.Text to "Not Connected"

when ButtonForward.TouchDown
  if BluetoothClient1.IsConnected
    call BluetoothClient1.SendText text "F"

when ButtonBackward.TouchDown
  if BluetoothClient1.IsConnected
    call BluetoothClient1.SendText text "B"

when ButtonLeft.TouchDown
  if BluetoothClient1.IsConnected
    call BluetoothClient1.SendText text "L"

when ButtonRight.TouchDown
  if BluetoothClient1.IsConnected
    call BluetoothClient1.SendText text "R"

when ButtonForward.TouchUp
  if BluetoothClient1.IsConnected
    call BluetoothClient1.SendText text "S"

when ButtonBackward.TouchUp
  if BluetoothClient1.IsConnected
    call BluetoothClient1.SendText text "S"

when ButtonLeft.TouchUp
  if BluetoothClient1.IsConnected
    call BluetoothClient1.SendText text "S"

when ButtonRight.TouchUp
  if BluetoothClient1.IsConnected
    call BluetoothClient1.SendText text "S"

    

الخطوة 8: توصيل الروبوت واختباره

  1. ربط جهاز Bluetooth:
    قم بتشغيل Bluetooth على هاتفك الذكي واربطه مع وحدة HC-05 (كلمة المرور الافتراضية هي 1234).
  2. الاتصال عبر التطبيق:
    استخدم التطبيق للاتصال بوحدة Bluetooth.
    استخدم الأزرار الاتجاهية للتحكم في الروبوت.

الخاتمة

بناء سيارة روبوتية تتحكم بها عبر Bluetooth هو مشروع مثير يجمع بين جوانب متعددة من الروبوتيات، بما في ذلك التحكم في المحركات، والاتصال عبر Bluetooth، وتطوير تطبيقات الهواتف المحمولة. باتباع هذا الدليل الشامل، يمكنك إنشاء سيارة روبوتية تعمل بكامل وظائفها وتستجيب للأوامر من هاتفك الذكي. يعزز هذا المشروع فهمك لأجهزة الأردوينو والوحدات اللاسلكية عبر Bluetooth، ويوفر أساساً قوياً لمشاريع الروبوتيات المتقدمة.

لا تتردد في طرح أي أسئلة في قسم التعليقات أدناه وتفقد مشاريع أردوينو الأخرى للحصول على المزيد من الإلهام.

omartronics

مرحبًا بكم في OmArTronics، مركز عشاق التكنولوجيا والعقول المبدعة! اسمي عمر، مؤسس هذا الموقع الإلكتروني وقناة اليوتيوب، وأنا مهندس شغوف ذو خلفية في الهندسة الكهربائية والميكانيكية، وأتابع حاليًا دراسة الماجستير في الميكاترونيكس في ألمانيا.

اترك تعليقاً