الجمعة، 26 يونيو 2015

كتابة أول سكيتش


اول سكيتش

 أول سكيتش  

هذه التدوينة تتناول كيفية كتابة أول سكيتش. وسنستخدم في الشرح السكيتش الذي يجعل المصباح يومض (BlinkLED) وتتضمن ايضاً شرح لكل جزء من مكونات هذا السكيتش.
ماهو السكيتش | What`s the Sketch
سكيتش هو الاسم الذي يطلق على برنامج الاردوينو. وهو الكود البرمجي الذي يرفع الى لوح الاردوينو لكي يشتغل.
Comments  |   التعليق
السطور الأولى القليلة بما يخص سكيتش الوميض هي (التعليق). وهي كالتالي:
/*

 * Blink
 *
 * The basic Arduino example.  Turns on an LED on for one second,
 * then off for one second, and so on...  We use pin 13 because,
 * depending on your Arduino board, it has either a built-in LED
 * or a built-in resistor so that you need only an LED.
 *
 * http://www.arduino.cc/en/Tutorial/Blink
 */

كل شيء بين /* و /* يتم تجاهله من قبل الاردوينو عندما يشغل السكيتش (لكن أي * ضمن التعليق ليس لها علاق هي فقط موجودة لإضفاء جمالية للتعليق). الغرض من التعليق لكي يتيح للناس قراءه النص البرمجي وشرح ما يقوم به البرنامج او كيفية عملة ولماذا. من الجيد كتابة التعليقات في سكيتشاتك وتحديث التعليق في حاله قمت بالتعديل على السكيتش. لتتيح إمكانية التعلم او التعديل من قبل اشخاص اخرين. باختصار التعليق شرح لما يقوم به الكود البرمجي،
يوجد نمط اخر لكتابة التعليقات لكن القصيرة منها التي لا تتعدى السطر الواحد. وهي اضافه //بداية السطر كما موضح ادناه:
int ledPin = 13;                // LED connected to digital pin 13
حيث ان (LED connected to digital pin 13) هي التعليق.

Variablesالمتغيرات |
المتغيرات هي مكان لخزن جزه من البيانات. ومن خصائصها لها اسم ,نوع وقيمة. مثل السطر أعلاه من سكيتش الوميض يحتوي على المتغير (ledpin) ونوعه (int) وقيمة (13). واستخدمت لتحديد أي رأس من لوح الاردوينو موصول للمصباح(LED). كل سكيتش يظهر فيه الاسم(ledpin) قيمة ستكون متغيرة. في هذا الحالة يكون باستطاعة الشخص الذي يكتب الكود ان يختار ما يناسبه من رؤوس لوح الاردوينو ويبدلها مكان ال(13).او يغير قيمة المتغير الى الرأس الذي تم توصيل المصباح له.

Functionsالدوال |
الدالة (او تعرف أيضا بالأجراء) هي اسم لمقطع الكود التي بالإمكان استخدامها لغرض اخر في السكيتش. كمثال نأخذ تعريف الدالة (setup()) هي دالة من سكيتش الوميض.
void setup()

{
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
}

السطر الأول يوفر معلومات عن الدالة، كالاسم ,"setup" النصوص قبل وبعد الاسم تحدد العوامل(سيتم شرحها لاحقا)الكود بين }و {يسمى الـ(body of the function) وهو ماهيه عمل الدالة.

ما الذي يمكن ان تطلق عليه اسم الدالة في سكيتشك الخاص او أي سكيتش في لغة الاردوينو كمثال السطر (pinMode(ledPin, OUTPUT); ) الدالة هي (pinMode() ) والمعاملات هي (ledPin) و (OUTPUT) التي تحدد أي رأس و وضع لتفعله.

الدوال pinMode(),digitalWrite(),delay()
·        الدالة(pinMode()) تعد الرأس كمدخل او مخرج. لاستخدامها تحدد الرأس لأحد الثابتين مدخل (INPUT) او مخرج (OUTPUT). عند تحديده كمدخل حينها يمكن للرأس ان يتحسس حاله المتحسس كان يكون مفتاح(PUSHBUTTON)او عند تحديده كمخرج يعمل على تشغيل المصباح(LED) مثلا.
·        الدالة (digitalWrite()) تخريج قيمة الى رأس معين كمثال:
digitalWrite(ledPin, HIGH);
ضبط الدالة(ledPin) (pin13) الى الوضع(HIGH) او 5 فولط. او (LOW) الى الرأس الموصول للأرضي او صفر فولط.
·        الدالة (delay()) تجعل الاردوينو ينتظر لعدد معين من الميلي ثانية قبل استكمال تنفيذ السطور التالي من الكود. 1000 ميلي ثانية تعادل ثانية لذلك :
delay(1000);

يجعل الاردوينو في الانتظار لمده ثانية واحده.

الدالة (loop()) و (setup ())
هي دالتين خاصة وهي جزء من كل سكيتشات الاردوينو:
(loop()) و (setup()) تنفذ مرة واحد عند بدء السكيتش وهي مكان جيد لفعل أوامر تأهيلية مثل تحدد أوضاع الرؤوس او تهيئه مكتبات برمجية.
الدالة (setup()) تستخدم مرارا وتكرارا وقي تمثل قلب للكثير من السكيتشات. ستحتاج للدالتين معاً في سكيتشاتك حتى وان كنت لا تحتاجها باي شيء J
Exercises
تمارين
·         *غير الكود البرمجي لتجعل المصباح(LED) يشتغل لمدة 100ميلي وينطفئ لمده 1000 ميلي.
·         *غير الكود البرمجي لتجعل المصباح(LED) يشتغل عند اشتغال اللوح ويبقى مشتغل.

سكيتش وميض المصباح (LED blink) موجود في الامثلة.اضغط هنا للانتقال اليه.


هناك تعليقان (2):