في هذا الدرس التعليمي لبلوتوث Arduino، سنقوم ببناء سيارة يتحكم فيها عن طريق البلوتوث باستخدام Arduino Uno، ووحدة بلوتوث HC-05، ودرع محرك Adafruit. يغطي هذا المشروع كل شيء من تجميع هيكل السيارة إلى برمجة Arduino وتطوير تطبيق تحكم لهاتفك الذكي.
في نهاية هذا الدليل، ستحصل على سيارة روبوتية تعمل بشكل كامل ويمكنك التحكم بها لاسلكيًا باستخدام جهاز الأندرويد الخاص بك. يمكنك زيارة هذا الدليل عن وحدة البلوتوث HC-05/HC-06 وكيفية استخدامها مع الأردوينو لتعلم كيفية استخدام وحدة HC-05 مع الأردوينو.
المكونات المطلوبة:
- 4 محركات تيار مستمر مع صناديق تروس
- درع المحرك Adafruit V1.2
- أردوينو أونو
- وحدة البلوتوث HC-05
- 3D-printed chassis and Arduino holder
- أسلاك التوصيل
- حوامل محركات وحامل أردوينو مطبوعة بتقنية الطباعة ثلاثية الأبعاد
- هاتف ذكي مثبت عليه تطبيق MIT App Inventor
Step 1: Mounting the Motors and Wheels
we’ll mount the DC motors as part of our Bluetooth-controlled car project.
- تثبيت المحركات: استخدم البراغي والصواميل لتثبيت محركات التيار المستمر على حوامل المحركات المطبوعة ثلاثياً.
- Mount the Wheels: Attach the wheels to the motors.
Step 2: Mounting the Arduino and Motor Shield
ثبت لوحة Arduino Uno ودرع محرك Adafruit بينما نتقدم في درسنا لبناء سيارة يتم التحكم فيها عبر البلوتوث.
- تثبيت حامل الأردوينو: قم بتثبيت حامل الأردوينو المطبوع ثلاثياً على الهيكل بشكل آمن.
- Mount the Arduino: Place the Arduino in the holder and secure it with screws.
- تثبيت درع المحرك: ضع درع المحرك Adafruit على لوحة أردوينو أونو، مع التأكد من أن جميع المسامير متراصة بشكل صحيح.
Step 3: Wiring the Components
توصيل المكونات بشكل صحيح أمر بالغ الأهمية في هذا المشروع لبناء سيارة يتم التحكم فيها عبر البلوتوث.
- توصيل المحركات بدرع المحرك:
– قم بتوصيل المحركات اليسرى بالمنافذ M1 و M2 على درع المحرك.
– قم بتوصيل المحركات اليمنى بالمنافذ M3 و M4 على درع المحرك. - توصيل وحدة البلوتوث HC-05:
– قم بتوصيل VCC إلى 5V على الأردوينو.
– قم بتوصيل GND إلى GND على الأردوينو.
– قم بتوصيل TXD إلى RX (الطرف 0) على الأردوينو.
– قم بتوصيل RXD إلى TX (الطرف 1) على الأردوينو.
Step 4: Powering the Bluetooth-Controlled Car
تعلم كيفية تزويد سيارتك التي يتم التحكم فيها عبر البلوتوث بالطاقة في هذه الخطوة.
- توصيل حزمة البطاريات:
– قم بتوصيل الأطراف الموجبة والسالبة لحزمة البطاريات بأطراف الطاقة على درع المحرك.
– تأكد من توصيل الأرضي بشكل صحيح.
Step 5: Programming the Arduino for Bluetooth Control
إليك كود الأردوينو للتحكم في سيارة الروبوت باستخدام أوامر البلوتوث من هاتفك الذكي. للحصول على إرشادات مفصلة حول برمجة الأردوينو والتحكم في محركات التيار المستمر، يمكنك زيارة مدونتنا حول التحكم في محركات التيار المستمر باستخدام جسر 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); }
الوصف:
هذا الكود يتحكم في روبوت بأربعة محركات تيار مستمر باستخدام الاتصال التسلسلي عبر البلوتوث. يستقبل الأردوينو الأوامر من الهاتف الذكي وينفذ الحركات المقابلة:
- تهيئة المحركات: يتم تكوين المحركات باستخدام مكتبة Adafruit Motor Shield () مع الموصلات M1 إلى M4. يتم ضبط كل محرك في البداية على السرعة القصوى.
- الاتصال التسلسلي: ينتظر الأردوينو بيانات تسلسلية من الهاتف الذكي. عندما يتم استقبال أمر، يتم قراءته وتخزينه في المتغير الخاص بالأمر.
- تنفيذ الأوامر: يتم استدعاء الدالة المناسبة للتحكم في المحركات اعتمادًا على الأمر المستلم (F للأمام، B للخلف، L لليسار، R لليمين، S للتوقف).
- وظائف الحركة:
forward(): جميع المحركات تتحرك إلى الأمام.
backward(): جميع المحركات تتحرك إلى الخلف.
turnLeft(): المحركات اليسرى تتحرك إلى الخلف، المحركات اليمنى تتحرك إلى الأمام.
turnRight(): المحركات اليسرى تتحرك إلى الأمام، المحركات اليمنى تتحرك إلى الخلف.
stop(): جميع المحركات تتوقف.
الخطوة 6: تطوير تطبيق أندرويد للتحكم بالبلوتوث
سنستخدم MIT App Inventor لإنشاء تطبيق يرسل أوامر إلى الروبوت عبر Bluetooth. لفهم أساسيات برمجة Arduino، يمكنك الرجوع إلى دليلنا "أساسيات برمجة Arduino".
- التسجيل وتسجيل الدخول:
اذهب إلى MIT App Inventor وسجّل الدخول باستخدام حساب Google الخاص بك. - إنشاء مشروع جديد:
انقر على "ابدأ مشروع جديد" واختر اسم "RobotCarControl". - تصميم واجهة المستخدم:
- أضف ListPicker واضبط النص على "Select Bluetooth Device". - أضف مكون BluetoothClient من لوحة الاتصالات (مكون غير مرئي). - أضف أربعة أزرار للتحكم: Forward (للأمام), Backward (للخلف), Left (لليسار), Right (لليمين)، واضبط ألوانها على هذا النحو. - برمجة الكتل (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"
الخطوة 7: توصيل الروبوت واختباره
- ربط جهاز Bluetooth:
قم بتشغيل Bluetooth على هاتفك الذكي واربطه مع وحدة HC-05 (كلمة المرور الافتراضية هي 1234). - الاتصال عبر التطبيق:
استخدم التطبيق للاتصال بوحدة Bluetooth.
استخدم الأزرار الاتجاهية للتحكم في الروبوت.
الخاتمة
بناء سيارة روبوتية تتحكم بها عبر Bluetooth هو مشروع مثير يجمع بين جوانب متعددة من الروبوتيات، بما في ذلك التحكم في المحركات، والاتصال عبر Bluetooth، وتطوير تطبيقات الهواتف المحمولة. باتباع هذا الدليل الشامل، يمكنك إنشاء سيارة روبوتية تعمل بكامل وظائفها وتستجيب للأوامر من هاتفك الذكي. يعزز هذا المشروع فهمك لأجهزة الأردوينو والوحدات اللاسلكية عبر Bluetooth، ويوفر أساساً قوياً لمشاريع الروبوتيات المتقدمة.
لا تتردد في طرح أي أسئلة في قسم التعليقات أدناه وتفقد مشاريع أردوينو الأخرى للحصول على المزيد من الإلهام.