اردوينو – الدرس الثاني – برمجة الوميض (L LED)

مقدمة

في هذا الدرس ستتعلم برمجة الاردوينو لتجعل الـ LED الملحق به تومض.

arduino-lesson-2

المواد والأدوات

 

arduino-lesson-2

اردوينو اونو

arduino-lesson-2

سلك اردوينو

الليد الملحقة بالاردوينو (L LED)

يتمتع الاردوينو بموصلات في كلتا الجهتين والتي تساعده على الإرتباط مع أجهزة إلكترونية أخرى أو مع مختلف اللوحات المتاحة التي تساعد في توسيع إمكانياته.

يمتلك الاردوينو LED ملحقة به والتي يمكن لنا أن نتحكم بها عن طريق البرمجة مباشرة.

   يرمز لها عادة بالـ(L LED) ويتم التحكم بها بواسطة المنفذ الرقمي 13.

مجرد توصيل لوحة الاردوينو بجهاز الكمبيوتر ستعمل (L LED) بدون تحميل أي برنامج، في حال كانت لا تعمل فعلينا التحقق من سلامة سلك USB أو سلامة لوحة الاردوينو.

توجد ال (L LED) داخل محيط الدائرة الحمراء في الصورة التالية:

arduino-lesson-2

الكود البرمجي

في هذا الدرس ستعيد برمجة الاردوينو بإستعمال برنامجك الخاص ثم ستغير معدل وميض الـ(L LED).

في الدرس السابق تم تثبيت برنامج الاردوينو IDE 

يمتلك برنامج اردوينو  (IDE) العديد من البرامج الجاهزة التي يمكن لك تحميلها واستعمالها بسرعة، وذلك يشمل مثال الوميض يمكنك استخدامه لاختبار الاتصال بين جهاز الكمبيوتر ولوحة اردوينو.

حمل كود الوميض Blink من خلال:

  File-> Examples-> 01.Basics

arduino-lesson-2

عندما تفتح النافذة كبرها حتى تشاهد الكود البرمجي لبرنامج الوميض بوضوح.

arduino-lesson-2

كل الأمثلة الملحقة ببرنامج اردوينو (IDE) “للقراءة فقط”  ذلك يعني أنه يمكن لك أن تحملها للوحة ولكن لا يمكنك تغييرها.

بما أنك ستغير في الكود عليك إذًا أن تقوم بحفظ نسختك الخاصة.

من خلال قائمة “File” من برنامج اردوينو (IDE) اختر “save as” ثم احفظه بإسم مناسب مثل “My Blink”.

اردوينو الوميض

لقد قمت بحفظ نسختك، ذلك يعني انه يمكنك العثور على برنامجك من خلال قائمة:

File-> Sketchbook

arduino-lesson-2

ستربط لوحتك بالكمبيوتر عبر سلك USB ثم تتأكد من صحة “Board Type” و “Serial Port” قد تحتاج إلى العودة لـ الدرس السابق.

انقر على زر Upload الزر الثاني من اليسار في لوحة الأدوات:

اردوينو الوميض

يعرض برنامج اردوينو (IDE) الاعدادت الجارية للوحة في أسفل النافذة.

إذا شاهدت لوحة الحالة فستلاحظ لوحة تقدم والعديد من الرسائل في الأول سيكتب لك Compiling Sketch ….  هذا يعني أن كود الوميض في عملية التحويل إلى نسخة قابلة للتنفيذ على الاردوينو.

اردوينو الوميض

بعد ذلك ستتغير الحالة إلى “Uploading” أو تحميل  في هذه المرحلة على الـLED الملحقه في الاردوينو أن تبدأ في الوميض.

اردوينو الوميض

أخيرًا ستتحول الحاله إلى “Done” أي “انتهى”.

اردوينو الوميض

تخبرك الرسالة أن هذا البرنامج يستعمل 1,084 بيتس من ال-32,256 المتوفرة.
يمكن أن تواجهك الرسالة التالية:

اردوينو الوميض
ذلك يعني أن لوحتك ليست مربوطة  بجهاز الكمبيوتر أو نظام التشغيل ليس مثبت أو أن منفذ التواصل المتسلسل خاطئ.

إذا واجهتك هذه الرسالة، يمكنك العودة لدرس السابق وتتثبت من صحة تنصيب البرنامج.

عندما ينتهي التحميل، على لوحتك إعادة العمل والبدء في الوميض.

التالي هو برنامج الوميض:

int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
delay(1000);               // wait for a second
digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
delay(1000);               // wait for a second
}

 ستلاحظ سريعًا أن أغلب هذا الكود “تعليقات”.

لا تؤثر التعليقات في سير البرنامج؛ فهي موجودة لتوفير شرح  لطريقة سير البرنامج بلغة أسهل.

كل شيء بين /*   و   */    في بداية الكود هي مجموعة من التعليقات التي تشرح مضمون الكود.

هنالك أيضًا تعليقات عبارة عن سطر واحد فقط،  تبدء بـ //

السطر الأول من كود الوميض هو:

int led = 13;

كما ذكر في  التعليق، هذا يعطي اسم لمنفذ الاردوينو المربوط بالـ LED غالباً ما يكون هذا المنفذ رقم 13 وهو موجود في الأردوينو UNO الاردوينو

يليها الدالة Setup تعمل هذه الدالة عند الضغط على زر Reset كذلك تعمل عند تشغيل أو إعادة تشغيل اللوحة

void setup() {                
// initialize the digital pin as an output.
pinMode(led, OUTPUT);     
}

يتكون كل برنامج اردوينو من دالة Setup والتي تحتوي على سلسلة من التعليمات داخل{}

في هذه الحالة هنالك تعليمة واحدة، وهي كما تم شرحها  في التعليق، يقوم الاردوينو بتخصيص المنفذ رقم 13 لعملية منفذات (إضاءة  L LED).

يجب أن يتكون كل برنامج اردوينو من دالة  “Loop” والتي تعمل مباشرة بعد دالة “Setup”
تقوم دالة “Loop” بتنفيذ وتكرار سلسلة التعليمات الموجودة بداخلها طالما أن جهاز الاردوينو يعمل

void loop() {
digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
delay(1000);               // wait for a second
digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
delay(1000);               // wait for a second
}

سوف تجعل الآن الـ(L LED) تومض بطريقة أسرع، كل ما عليك فعله هو التخفيض في قيمة الإنتظار”delay”

اردوينو الوميض

وحدة قيمة الإنتظار هي ملي ثانية، فإذا أردت أن تومض الـ(L LED) بضعف السرعة الحالية، كل ما عليك فعله هو تغيير 1000 إلى 500  هكذا فإن مدة الإنتظار ستجبر البرنامج على الوقوف لمدة نصف ثانية عوض عن ثانية كاملة.

حمل البرنامج مرة أخرى وسنلاحظ أن الـ (L LED) تومض بسرعة.

أنشطة أخرى

يمكنك تغيير قيمة الإنتظار إلى 100 ملي ثانية لتجعل الوميض أسرع بكثير.




نظام التحكم في الإضاءة عبر البلوتوث

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

برمجة وحدة البلوتوث

المواد والأدوات

X1  وحدة البلوتوث (HC-06)

led-5mm-red

X1 الثنائي المشع للضوء 

220 Ω resistor

X1 مقاومة 220 اوم

small size breadboard 170 colors

X1 لوحة تجارب صغيرة

اردوينو

X1 أردوينو أونو 

us-sanitizer-without-touch

 اسلاك توصيل أنثى/ذكر (Jumper Wires Female/male)

أسلاك توصيل

سلاك توصيل ذكر/ذكر (Jumper Wires Male Male)

نظرة عامة

يقوم النظام بارسال أوامر التحكم في ايقاف وتشغيل الإضاءة من تطبيق الجوال إلى لوحة التحكم (الاردوينو) عبر وحدة البلوتوث، يعمل البلوتوث HC-06 على الاتصال التسلسلي , من خلاله يمكنك ارسال و استقبال البيانات. يحتوي البلوتوث على منفذين للطاقة ,ومنفذ Tx لإرسال البيانات ,ومنفذ RX لاستقبال البيانات المرسله للبلوتوث.

remote-lighting-control

توصيل الدائرة:

remote-lighting-control

البرمجة

char data = 0;
void setup()
{
   Serial.begin(9600);
   pinMode(13, OUTPUT);
}
void loop()
{
  if(Serial.available() > 0)
  {
    data = Serial.read();
    Serial.print(data);
    Serial.print("\n");
    if(data == '1')
      digitalWrite(13, HIGH);
    else if(data == '0')
            digitalWrite(13, LOW);
  }
}

شرح البرمجة: 

  • في الكود البرمجي سنقوم بمراجعة البيانات الواردة وتنفيذ عملية المقارنة ، إذا كانت البيانات المستقبلة من الهاتف الذكي 1 يتم إضاءة الثنائي المشع للضوء  ويتم إطفاء إذا كانت البيانات المستقبلة 0 .

الـ boud rate الافتراضي لوحدة البلوتوث (HC-06)هي 9600

Serial.begin(9600);

لقراءة البيانات الواردة وتخزينها في متغير data

data = Serial.read();

يمكنك العودة إلى الدرس الثالث لمعرفة شرح الكود المتعلق بالتحكم في الـLEDs.

ملاحظة : يجب فصل الاسلاك الموصولة بالاردوينو بمنافذ الTX والRX عند تحميل اي نص جديد الى الاردوينو، لتفادي اي نوع من انواع تداخل الاشارات بين الاردوينو وHC-06 .

بعد رفع الكود على الاردوينو يمكنك فتح شاشة الإتصال التسلسلي(Serial Monitor)   ومراقب البيانات المرسلة.

remote-lighting-control

تطبيق الاندرويد

في هذا المشروع لن يتم تغطية طريقة برمجة تطبيق الاندرويد , يمكنك تحميل البرنامج من هنا

كيف يمكن استخدام التطبيق؟
1- قم بتنزيل البرنامج من هنا
2- قم بإقتران جهازك مع البلوتوث   HC-06:
– تشغيل البلوتوث HC-06.
– تفحص الجهاز المتوفر .
-يتم الاقتران الى البلوتوث عن طريق ادخال كلمة المرور الافتراضية  1234 او   0000.
3- قم بفتح التطبيق , ثم قم بالضغط على زر الاجهزة المقترنة  ثم قم بإختيار وحدة البلوتوث الخاصة بك (HC-06) .

remote-lighting-control

قم بالغلط على زر تشغيل لتشغيل الـ LED  و ايقاف لإطفاءه.

remote-lighting-control