الأربعاء، 18 مارس، 2015

التحكم عن بعد باستخدام الأردوينو وموديول البلوتوث الجزء الأول


أولا هذا الموضوع هو أحد فصول كتاب الأردوينو المنتظر أن يخرج للنور خلال
كام شهر إن شاء الله

اللى عايز يحمل الشرح ده باللإضافة للأكواد يقدر يحمله من خلال الرابط

التحكم عن بعد بإستخدام البلوتوث
توجد طرق عديدة للتحكم فى الأجهزة فمن الممكن أن يتم ذلك بإستخدام
شبكة اللإنترنت ,  تقنية ال ZegBee ,  تقنية البلوتوث وغيرها  والميزة الموجودة فى إستخدام البلوتوث هى توافره فى الأجهزة التى يحملها معظمنا , فهو يتواجد فى الموبايل أو اللابتوب وغيرهم .

للتحكم عن بعد بأى جهاز نحتاج إلى وجود  المرسل Sender   والمستقبل Receiver  حيث يقوم المرسل  بإرسال إشارة تحتوى على بيانات ويقوم المستقبل باستقبالها وباستخدام الاكواد يقوم بتحليلها ومن ثم يؤدى المهمة المراد إتمامها طبقا لهذه البيانات .







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

كيفية إستخدام وتوصيل مودويول البلوتوث : 




المودويول المستخدم فى هذه التجربة هو المودويول HC_05 وبالنظر إلى الداتاشيت الخاصة به نجد مجموعة معلومات  هامة جداً عنه:
أولا هذا المودويول يقوم بإرسال البيانات إلى أى جهاز يوصل معه بإستخدام طريقة الإتصال التسلسلى Serial Communication  والتى تعنى إرسال البيانات بصورة تتابعية من خلال خط إرسال واحد وهذا عكس طريقة النقل المتوازى والتى فيها يمكن إرسسال البيانات مرة واحدة من خلال 8 خطوط او أكثر
صورة للسيريال وال Parallel
 


ولو إستخدمنا خط إرسال واحد فقط عندئذ لن نتمكن من الإرسال والإستقبال فى نفس الوقت لذلك يتم إستخدام خطين واحد للإرسال واخر للإستقبال , وبالتالى فعند النظر إلى رجول المودويول سنجد أنه يحتوى على رجل لإرسال البيانات وأخرى للإستقبال وواحدة تعمل كأرضى وواحدة لتغذية المودويل ومكتوب عليها VCC  كما هو موضح بالصورة السابقة 

يوجد فى هذا المودويول أيضاً مخرج أو رجل تسمى Key    : وهى تستخدم ال mode  الخاص بلبوتوث حيث أن للبلوتوث نظامين  Two Modes  ... الأول وفيه يمكن للمودويول إستقبال الأوامر ( وليس البيانات ) مثل أوامر تغير إعدادات المودويول ومنها على سبيل المثال تغير سرعة نقل البيانات من السرعة المعروفة 9600 بت فى الثانية إلى أى سرعة أخرى .
أما النظام الثانى ففيه يكون الموديول مستعد لإستقبال وإرسال بيانات .
من الطبيعى أن نقوم بتوصيل هذا المودويل على Rx , TX  الموجودين بالأردوينو ولكنى لما قمت بتجربة ذلك وجدت مجموعة من المشاكل (سأذكرها فى نهاية الفصل ) فلجأت إلى طريقة أخرى متوفرة فى الأردوينو وهى إستخدام مكتبة Software Serial والتى تمكنك من جعل أى من رجول الأردوينو تقوم بإرسال البيانات بطريقة السيريال Serial  وهى مكتبة سهلة جدا فى التعامل وتحتاج فقط عدد بسيط من الاوامر  للتعامل معها كما سنرى ويمكنك الإطلاع عليها من خلال الرابط التالى :

وبالتالى لو أردنا توصيل الأردوينو بالمودويول فلابد من إختيار مخرجين من مخارج الأردوينو واحد للإرسال وآخر للإستقبال لو فرضنا مثلا أننا أننا الرجل رقم  10  من الأردوينو للإرسال فلابد من توصيله على المخرج RX  الموجود بالموديول ولو إخترنا المخرج رقم  11  من الأردوينو للإستقبال فلابد من توصيله على المخرج TX  الموجود بموديول البلوتوث والأرضى يتم توحيده ( أى يتم توصيل الأرضى الخاص بالمودويول مع الأرضى الخاص بالأردوينو مع الأرضى الخاص بمصدر الجهد إذا كنت تستخدم مصدر جهد ) وبالتالى يكون التوصيل كما بالشكل :


مع ملاحظة أنه تم توصيل المخرج المسمى Key  الموجود فى المودويل على الرجل رقم 9 فى الأردوينو أو توصيلها على الخمسة فولت مباشرة .




التجربة العملى :
مطلوب التحكم فى 3 ليدات عن طريق البلوتوث بحيث :
عند إرسال الرقم 1 من الموبايل لمودويول البلوتوث يتم إضاءة الليد الأول , وعند إرسال 2 يتم اضاءة الثانى و عند ارسال 3 يتم اضاءة الثالث وعند ارسال صفر يتم إطفاؤهم جميعاً .



يتأتى لنا هنا سؤال : وهو كيف يمكن للموبايل أن يقوم بإرسال بيانات إلى مودويول البلوتوث الموصل على الأردوينو ؟
الاجابة يمكنك عمل تطبيق يقوم بذلك اذا كنت تجيد برمجة الموبايلات .
أما إذا كنت لا تتقن ذلك فالموضوع ليس صعباً نهائياُ حيث يمكنك الدخول على Google Play  وتنزيل تطبيق يسمى Blutooth Terminal  أو Blutooth Terminal  Arduino وهذا التطبيق يمكنك من عمل اتصال مع موديول البولوتوث الموصل بالأردوينو وإرسال واستقيال البيانات منه كما سنرى .


المكونات المطلوبة للمشروع :
أردوينو أونو  Arduino Uno R3 والكابل الخاص به .
مودويول بلوتوث HC_05
مجموعة أسلاك توصيل
ليدات  .
مقاومات 330 اوم .
موبايل عليه تطبيق ال Blutooth Terminal   . أو لاب توب عليه أى برنامج بيتعامل مع البلوتوث .
...


التعرف على مكتبة Software Serial
كما سبق وأشرنا أنها مكتبة تستخدم لجعل أياً من مخارج الأردوينو  ينقل البيانات بصورة تتابعية أى Serial Communication  والدالة المستخدمة لذلك هى



ولإستخدام هذه المكتبة لابد من إستدعائها داخل البرنامج بالأمر التالى :




ويمكن قرائة البيانات التى تصل للأردوينو من خلال الدالة :



ويجب تخزين القيمة التى يتم قرائتها فى متغير 



كما يمكن إخراج بيانات من الأردوينو  من خلال الدالة :


وهذا الأمر سيقوم بإرسال البيانات من موديول البلوتوث إلى الجهاز المقترن معه سواء كان موبايل أو لاب توب :

حيث أن البيانات تصل إلى الأردوينو عندما يتم تنفيذ الأمر


كما يمكن التأكد من وصول البيانات من خلال الدالة :


بالنسبة للكود :

 


الجزء الثانى إضغط هنا