- المواد المطلوبة
- وحدة بلوتوث HC-06
- مخطط الرسم البياني
- تكوين تطبيق Roboremo للتحكم في المؤازرة:
- الكود والشرح
- عمل التحكم في محرك سيرفو باستخدام البلوتوث:
يعد استخدام محرك سيرفو شائعًا في الروبوتات للتحكم الدقيق. هنا ، في هذا البرنامج التعليمي ، سنوضح لك كيفية استخدام محرك سيرفو لاسلكيًا مع Arduino UNO وجهاز Android عبر اتصال Bluetooth. لقد قمنا بالفعل بالتحكم في المؤازرة باستخدام Arduino ، هذه المرة نتحكم في محرك سيرفو باستخدام Arduino و Bluetooth.
المواد المطلوبة
- اردوينو UNO
- وحدة بلوتوث HC-05 أو HC-06
- أجهزة السيارات
- تطبيق Roboremo من Playstore
- اللوح
- توصيل الأسلاك
وحدة بلوتوث HC-06
يمكن أن تعمل البلوتوث في الوضعين التاليين:
- وضع القيادة
- وضع التشغيل
في وضع الأوامر ، سنكون قادرين على تكوين خصائص Bluetooth مثل اسم إشارة Bluetooth ، وكلمة المرور الخاصة بها ، ومعدل تشغيل الباود وما إلى ذلك. وضع التشغيل هو الذي يمكننا من خلاله إرسال واستقبال البيانات بين متحكم PIC ووحدة البلوتوث. ومن ثم في هذا البرنامج التعليمي ، سنلعب فقط مع وضع التشغيل. سيتم ترك وضع الأمر على الإعدادات الافتراضية. سيكون اسم الجهاز HC-05 (أنا أستخدم HC-06) وستكون كلمة المرور 0000 أو 1234 والأهم من ذلك أن معدل البث بالباود الافتراضي لجميع وحدات Bluetooth سيكون 9600.
تعمل الوحدة على إمداد 5 فولت وتعمل دبابيس الإشارة على 3.3 فولت ، وبالتالي يوجد منظم 3.3 فولت في الوحدة نفسها. ومن ثم لا داعي للقلق بشأن ذلك. من أصل ستة دبابيس سيتم استخدام أربعة فقط في وضع التشغيل. يظهر جدول توصيل الدبوس أدناه
لا | دبوس على HC-05 / HC-06 | اسم التثبيت على MCU | الرقم السري في الموافقة المسبقة عن علم |
1 | Vcc | Vdd | 31 دبوس st |
2 | Vcc | Gnd | 32 دبوس الثاني |
3 | TX | RC6 / Tx / CK | 25 ال دبوس |
4 | آر إكس | RC7 / Rx / DT | 26 ال دبوس |
5 | حالة | NC | NC |
6 | EN (تمكين) | NC | NC |
تحقق من مشاريعنا الأخرى لمعرفة المزيد عن وحدة Bluetooth HC-05 مع وحدات التحكم الدقيقة الأخرى:
- لعبة سيارة تعمل بالتحكم عن طريق البلوتوث باستخدام اردوينو
- نظام أتمتة المنزل المتحكم فيه عبر البلوتوث باستخدام 8051
- أضواء التحكم الصوتي باستخدام Raspberry Pi
- راديو FM يتم التحكم به بواسطة الهاتف الذكي باستخدام Arduino والمعالجة
- ربط وحدة البلوتوث HC-06 بوحدة التحكم الدقيقة PIC
تحقق أيضًا من جميع المشاريع المتعلقة بالبلوتوث هنا.
مخطط الرسم البياني
يرد أدناه مخطط الدائرة لمشروع Arduino Bluetooth Servo Motor Control:
تكوين تطبيق Roboremo للتحكم في المؤازرة:
الخطوة 1: - قم بتنزيل تطبيق Roboremo من متجر Android Play Store وقم بتثبيته على هاتفك الذكي. بعد تثبيته سترى نافذة التطبيق كما هو موضح في الشكل 1 وبالنقر على زر "القائمة" سترى النافذة الموضحة في الشكل 2 أدناه:
الخطوة 2: - ثم انقر فوق زر الاتصال وسترى النافذة الموضحة في الشكل 3 أدناه ، ثم يتعين عليك تحديد " Bluetooth RFCOMM" ومن ثم ستتمكن من توصيل وحدة البلوتوث HC-06 الخاصة بك بتطبيق Android "Roboremo".
الخطوة 3: - بعد الاتصال بوحدة البلوتوث HC-06 ، عد إلى نافذة الشكل 2 ثم انقر فوق " تحرير واجهة المستخدم " لإنشاء واجهة المستخدم وفقًا لحاجتك.
عند النقر فوق "تحرير واجهة المستخدم" ، سترى مرة أخرى النافذة الموضحة في الشكل 1 ، ثم انقر في أي مكان على الشاشة ، وسترى نافذة التطبيق مثل الشكل 4 وحدد " الزر " للحصول على بنية الزر.
الخطوة 4: - بعد تحديد الزر ، ستحصل على بنية زر على الشاشة للتعديل. يمكنك تغيير حجم الهيكل وتحريكه في أي مكان على الشاشة. الآن ، لتعيين القيمة التي سيتم إرسالها عند النقر عبر البلوتوث ، لديك "تعيين إجراء الضغط" (كما هو موضح في الشكل 6) واكتب القيمة التي تريد إرسالها من هذا الزر المحدد. مثل ، نحن نرسل '1' لتدوير المؤازرة عن طريق الضغط على زر "ابدأ" في تطبيق Roboremo android.
يمكنك التحقق من جميع القيم ، التي يتم إرسالها عند النقر على أزرار مختلفة ، في الجدول أدناه القسم.
الخطوة 5: - أخيرًا لدينا واجهة مستخدم للتحكم في محرك سيرفو باستخدام الهاتف الذكي.
الكود والشرح
يتم تقديم الكود الكامل لـ Arduino Control Servo Motor عبر Bluetooth في النهاية.
يحتوي Arduino على مكتبة لـ Servo Motors ويتعامل مع جميع الأشياء المتعلقة بـ PWM لتدوير المؤازرة ، ما عليك سوى إدخال الزاوية التي تريد التدوير إليها وهناك وظيفة servo1.write (زاوية) ؛ والتي ستدور المؤازرة إلى الزاوية المرغوبة.
لذلك نحن هنا نبدأ بتحديد مكتبة محرك سيرفو ويتم استخدام مكتبة البرامج التسلسلية لتحديد دبوس Rx و Tx.
#تضمن
في الكود أدناه ، نقوم بتهيئة دبابيس Arduino لـ Rx و Tx ، وتحديد متغيرات المؤازرة وأشياء أخرى .
أجهزة myServo ؛ int TxD = 11 ؛ كثافة العمليات RxD = 10 ؛ المؤازرة int المؤازرة int int new1؛ SoftwareSerial bluetooth (TxD ، RxD) ؛
الآن ، قم بإعداد جميع المتغيرات والمكونات للمرحلة الأولية. هنا لدينا تعلق مضاعفات في 9 التاسع دبوس من اردوينو وجعل الموقف المبدئي من مضاعفات 0 درجة. كما تم ضبط معدل الباود للاتصالات التسلسلية والبلوتوث على 9600.
إعداد باطل () { int pos = 0 ؛ myServo.attach (9) ، myServo.write (0) ، Serial.begin (9600) ؛ // بدء الاتصال التسلسلي بسرعة 9600 بت في الثانية bluetooth.begin (9600) ؛ }
في وظيفة الحلقة الفارغة ، سيقوم Arduino بفحص القيم الواردة طوال الوقت وتدوير المؤازرة وفقًا للقيمة المستلمة من الهاتف الذكي. سيتم استلام جميع القيم باستخدام الاتصال التسلسلي.
إذا كانت القيمة 0 ، فسيتم تدوير المؤازرة إلى درجة 0. وبالمثل ، إذا أرسلنا 45 و 90 و 135 و 180 من تطبيق Bluetooth ، فستدور المؤازرة إلى زاوية 45 و 90 و 135 و 180 درجة على التوالي.
حلقة باطلة () { if (bluetooth.available ()) { String value = bluetooth.readString () ؛ servoposition = value.toInt () ؛ if (value.toInt () == 0) { Serial.println (servoposition) ؛ myServo.write (0) ، } if (value.toInt () == 45) { Serial.println (servoposition) ؛ myServo.write (45) ، } if (value.toInt () == 90) { Serial.println (servoposition) ؛ myServo.write (90) ؛ } if (value.toInt () == 135) { Serial.println (servoposition) ؛ myServo.write (135) ، } if (value.toInt () == 180) { Serial.println (servoposition) ؛ myServo.write (180) ؛ }
إذا أرسلنا القيمة '1' بالضغط على زر Start ، فستدور المؤازرة باستمرار حتى يتم الضغط على زر الإيقاف . نحن هنا نرسل '2' عند الضغط على زر الإيقاف ، والذي سيقرأه Arduino وسيكسر حلقة while وسيتم إيقاف المؤازرة.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString () ؛ Serial.println (قيمة) ؛ إذا (value.toInt () == 2) {Serial.println ("YYY") ؛ استراحة؛ }} المؤازرة ++؛ تأخير (30) ؛ Serial.println (المؤازرة) ؛ myServo.write (المؤازرة) ؛ إذا (المؤازرة == 180) {المؤازرة = 0 ؛ كسر ؛}}}}
عمل التحكم في محرك سيرفو باستخدام البلوتوث:
في هذا المشروع ، نتحكم في محرك سيرفو باستخدام تطبيق Android "Roboremo". في واجهة هذا التطبيق ، قمنا بإنشاء 5 أزرار للتحكم في محرك سيرفو كما هو موضح سابقًا. يتم عرض عمل كل زر في الجدول أدناه:
S. لا. |
اسم الزر |
قيمة الإرسال |
وصف |
1. |
بداية |
1 |
يستخدم هذا الزر لبدء تدوير المؤازرة من 0 درجة إلى 180 درجة. |
2. |
قف |
2 |
يستخدم هذا الزر لإيقاف المؤازرة في أي وقت. |
3. |
0⁰ |
0 |
يستخدم هذا الزر لتدوير المؤازرة إلى 0⁰. |
4. |
90 درجة |
90 |
يستخدم هذا الزر لتدوير المؤازرة إلى 90 درجة. |
5. |
180 درجة |
180 |
يستخدم هذا الزر لتدوير المؤازرة إلى 180 درجة. |
لذلك ، بالضغط على هذه الأزرار في تطبيق Android Roboremo الخاص بك ، سيتم إرسال البيانات عبر Bluetooth في الهاتف الذكي إلى وحدة HC-06 Bluetooth. من بيانات الوحدة النمطية HC-06 يتم تلقيها بواسطة Arduino ويقوم Arduino بتدوير المؤازرة بالزاوية المحددة في الكود الخاص بالزر المحدد. قمنا أيضًا بترميز الزاوية 45 و 135 ، ولكن نظرًا لمحدودية تطبيق Roboremo ، لا يمكنك سوى إنشاء 5 أزرار ، لذلك تخطينا زرين.
هذه هي الطريقة التي يمكنك بها إرسال البيانات من Smartphone إلى Arduino باستخدام Bluetooth للتحكم في المؤازرة لاسلكيًا. يمكن استخدام هذا في العديد من التطبيقات مثل سيارات اللعب والروبوتات وما إلى ذلك.