في هذا الدرس التعليمي لبلوتوث Arduino، سنقوم ببناء سيارة يتحكم فيها عن طريق البلوتوث باستخدام Arduino Uno، ووحدة بلوتوث HC-05، ودرع محرك Adafruit. يغطي هذا المشروع كل شيء من تجميع هيكل السيارة إلى برمجة Arduino وتطوير تطبيق تحكم لهاتفك الذكي.
في نهاية هذا الدليل، ستحصل على سيارة روبوتية تعمل بشكل كامل ويمكنك التحكم بها لاسلكيًا باستخدام جهاز الأندرويد الخاص بك. يمكنك زيارة هذا الدليل عن وحدة البلوتوث HC-05/HC-06 وكيفية استخدامها مع الأردوينو لتعلم كيفية استخدام وحدة HC-05 مع الأردوينو.
المكونات المطلوبة:
- ورقة زجاج عضوي (بلكسيجلاس) لاستخدامها كهيكل للروبوت
- 4 محركات تيار مستمر مع صناديق تروس
- درع المحرك Adafruit V1.2
- أردوينو أونو
- وحدة البلوتوث HC-05
- حوامل محركات وحامل أردوينو مطبوعة بتقنية الطباعة ثلاثية الأبعاد
- أسلاك التوصيل
- حوامل محركات وحامل أردوينو مطبوعة بتقنية الطباعة ثلاثية الأبعاد
- هاتف ذكي مثبت عليه تطبيق MIT App Inventor
الخطوة 1: بناء الهيكل لسيارتك التي يتم التحكم فيها عبر البلوتوث
لبدء بناء سيارتك التي يتم التحكم فيها عبر البلوتوث، سنقوم بإنشاء الهيكل باستخدام ورقة من زجاج الأكريليك (Plexiglas). سيعمل هذا كقاعدة لتركيب جميع المكونات.
- قص البلكسيجلاس: قم بقياس وقص ورقة البلكسيجلاس إلى الأبعاد المطلوبة للهيكل.
- حوامل: قم بتصميم وطباعة حوامل المحركات لتثبيت محركات التيار المستمر بأمان على الهيكل.
- طباعة حامل أردوينو ثلاثي الأبعاد: قم بتصميم وطباعة حامل لتثبيت لوحة أردوينو أونو بشكل آمن على الهيكل.
الخطوة 2: تركيب المحركات
بعد ذلك، سنقوم بتركيب محركات التيار المستمر كجزء من مشروع سيارتنا التي يتم التحكم فيها عبر البلوتوث.
- تثبيت المحركات: استخدم البراغي والصواميل لتثبيت محركات التيار المستمر على حوامل المحركات المطبوعة ثلاثياً.
- تثبيت المحركات على الهيكل: قم بتثبيت حوامل المحركات على هيكل البلكسيجلاس باستخدام البراغي والصواميل.
الخطوة 3: تركيب لوحة الأردوينو ودرع المحرك
ثبت لوحة Arduino Uno ودرع محرك Adafruit بينما نتقدم في درسنا لبناء سيارة يتم التحكم فيها عبر البلوتوث.
- تثبيت حامل الأردوينو: قم بتثبيت حامل الأردوينو المطبوع ثلاثياً على الهيكل بشكل آمن.
- تثبيت الأردوينو: ضع لوحة أردوينو أونو في الحامل وقم بتثبيتها باستخدام البراغي.
- تثبيت درع المحرك: ضع درع المحرك Adafruit على لوحة أردوينو أونو، مع التأكد من أن جميع المسامير متراصة بشكل صحيح.
الخطوة 4: توصيل المكونات
توصيل المكونات بشكل صحيح أمر بالغ الأهمية في هذا المشروع لبناء سيارة يتم التحكم فيها عبر البلوتوث.
- توصيل المحركات بدرع المحرك:
– قم بتوصيل المحركات اليسرى بالمنافذ M1 و M2 على درع المحرك.
– قم بتوصيل المحركات اليمنى بالمنافذ M3 و M4 على درع المحرك. - توصيل وحدة البلوتوث HC-05:
– قم بتوصيل VCC إلى 5V على الأردوينو.
– قم بتوصيل GND إلى GND على الأردوينو.
– قم بتوصيل TXD إلى RX (الطرف 0) على الأردوينو.
– قم بتوصيل RXD إلى TX (الطرف 1) على الأردوينو.
الخطوة 5: تزويد السيارة التي يتم التحكم فيها عبر البلوتوث بالطاقة
تعلم كيفية تزويد سيارتك التي يتم التحكم فيها عبر البلوتوث بالطاقة في هذه الخطوة.
- توصيل حزمة البطاريات:
– قم بتوصيل الأطراف الموجبة والسالبة لحزمة البطاريات بأطراف الطاقة على درع المحرك.
– تأكد من توصيل الأرضي بشكل صحيح.
الخطوة 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); }
الوصف:
هذا الكود يتحكم في روبوت بأربعة محركات تيار مستمر باستخدام الاتصال التسلسلي عبر البلوتوث. يستقبل الأردوينو الأوامر من الهاتف الذكي وينفذ الحركات المقابلة:
- تهيئة المحركات: يتم تكوين المحركات باستخدام مكتبة Adafruit Motor Shield () مع الموصلات M1 إلى M4. يتم ضبط كل محرك في البداية على السرعة القصوى.
- الاتصال التسلسلي: ينتظر الأردوينو بيانات تسلسلية من الهاتف الذكي. عندما يتم استقبال أمر، يتم قراءته وتخزينه في المتغير الخاص بالأمر.
- تنفيذ الأوامر: يتم استدعاء الدالة المناسبة للتحكم في المحركات اعتمادًا على الأمر المستلم (F للأمام، B للخلف، L لليسار، R لليمين، S للتوقف).
- وظائف الحركة:
forward(): جميع المحركات تتحرك إلى الأمام.
backward(): جميع المحركات تتحرك إلى الخلف.
turnLeft(): المحركات اليسرى تتحرك إلى الخلف، المحركات اليمنى تتحرك إلى الأمام.
turnRight(): المحركات اليسرى تتحرك إلى الأمام، المحركات اليمنى تتحرك إلى الخلف.
stop(): جميع المحركات تتوقف.
الخطوة 7: تطوير تطبيق أندرويد للتحكم عبر البلوتوث
سنستخدم 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"
الخطوة 8: توصيل الروبوت واختباره
- ربط جهاز Bluetooth:
قم بتشغيل Bluetooth على هاتفك الذكي واربطه مع وحدة HC-05 (كلمة المرور الافتراضية هي 1234). - الاتصال عبر التطبيق:
استخدم التطبيق للاتصال بوحدة Bluetooth.
استخدم الأزرار الاتجاهية للتحكم في الروبوت.
الخاتمة
بناء سيارة روبوتية تتحكم بها عبر Bluetooth هو مشروع مثير يجمع بين جوانب متعددة من الروبوتيات، بما في ذلك التحكم في المحركات، والاتصال عبر Bluetooth، وتطوير تطبيقات الهواتف المحمولة. باتباع هذا الدليل الشامل، يمكنك إنشاء سيارة روبوتية تعمل بكامل وظائفها وتستجيب للأوامر من هاتفك الذكي. يعزز هذا المشروع فهمك لأجهزة الأردوينو والوحدات اللاسلكية عبر Bluetooth، ويوفر أساساً قوياً لمشاريع الروبوتيات المتقدمة.
لا تتردد في طرح أي أسئلة في قسم التعليقات أدناه وتفقد مشاريع أردوينو الأخرى للحصول على المزيد من الإلهام.