الأربعاء، 17 يونيو 2020

3.1 | كتابة أول كود أردوينو | دورة تعلم الاردوينو باحترافية


the first ِArduino code

3.1 | كتابة أول كود أردوينو | دورة تعلم الاردوينو باحترافية

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

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

دعنا الأن نستعرض كود البلنك الذي سبق وأن رأينا نتيجته, أن اللد النتصل مع منفذ رقم 13 يقوم بالاضاءة ثانية وينطفئ ثانية...
بدايتا وقبل أن نبدأ, فمن الواضح أنه قد تلاحظ بعض الملاحظات على الكود.
  1. وجود فاصلة منقوطة نهاية كل كود,
  2. أما بالنسبة للملاحظة الثانية فأنا سوف, أسهلها لك, وهي وجود دالتين, سنتعرف على الدوال بالتفصيل في الشبتر الخامس..
الأن بهاتين الملاحظتين نستطيع استنباط أساسيات أي كود أردوينو.

القواعد العامة لاي كود أردوينو

  1. يجب أن يحتوي أي كود أردوينو على دالتين (function) على الأقل, وهما void setup () و void loop ()
  2. يجب أن تنتهي أي جملة برمجية بلغة ال C++ بالفاصلة المنقوطة (semicolon).
لاحظ الشكل التالي الذي يشير إلى تلك الدالتين ويوضح باختصار شديد فاإدتها.
فقط نكتفي بهذه المعلومة حولة هاتين الدالتين, والتي سوف نبني عليهما, وسنعود إليهمابالتفصيل في موضوع أخر.

ضبط المنافذ الرقمية كمخارج

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

المقصود ب  exp هو أي عملية حسابية يكون ناتجها رقم صحيح من 0 إلى عدد المنافذ الرقمية للوحة الأردوينو مطروحا منها واحد, على سبيل المثال في لوحة الأردوينو أونو يوضع بدل ال exp جملة برمجية ناتجها ما بين 0 إلى 13.
يوضع في الخانة الثانية (setup) نوع المخرج إما INPUT أو OUTPUT أو INPUT_PULLUP , وفي حالتنا هذه نستخدم OUTPUT أي كمخرج.

أمثلة:

pinMode(13, OUTPUT);

pinMode(5, INPUT);

في الجملة الأولى يتم ضبط الرجل رقم 13كمخرج, أما الجملة الثانية يتم ضبط الرجل رقم 5 كمدخل.


الكتابة على منفذ الأردوينو

بعد أن يتم تحديد أحد أطراف الأردوينو كمخرج, لابد من إخراج قيمة عليه إما صفر أو واحد, وذلك لأن الكتابة تتم على المخارج الرقمية.
يكافئ الصفر الرقمي 0V في حين يكافئ الواحد الرقمي 5V.
يستخدم الأمر التالي لإخراج قيمة صفر أو واحد على مخرج الأردوينو.
أمثلة:
digitalWrite (13, LOW);
digitalWrite (13, HIGH);

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

 التأخير الزمني | delay

من المعروف أن الأردوينو ذو سرعة كبيرة وهي 16 ميقا هيرتز أي أنه سريع جدا وأحيانا نحتاج إلى تخفيض سرعة الأردوينو ويتم ذلك باستخدام الأمر البرمجي التالي.
قيمة ال exp يجب أن تكون رقم صحيح وهو يعني قيمة المدة التي يتوقف فيها الأردوينو عن العمل بالملي ثانية.
أمثلة:
delay (500);
delay (1000);

في الجملة الأولى يتوقف الأردوينو 500 ملي ثانية أي نصف ثانية, أما في الجملة الثانية فغن الأردوينو يتوقف ثانية كاملة.

الوميض | Blink

أعتقد في المرة الأولى لم تكن فهمت كود البلنك أما الأن لو قمت باظهاره أمامك مرة أخرى, فأعتقد أن الأمور قد تكون اتضحت نوعا ما.

الأن لو قلت لك, ماذا تفهم من الكود ؟
أعتقد أنك ستقول, لقد قمنا بوضع الدالة setup التي لا بد أن تكون بأي برنامج أردوينو, والتي نضع بداخلها إعدادات الأردوينو, وقد ضبطنا بداخلها المنفذ الرقمي 13 كمخرج, ثم في الدالة loop وضعنا الكود البرمجي وهو أن يكون 5 فوات على المخرج 13, ثم يتوقف الأردوينو ثانية ثم يخرج الأردوينو صفر فولت على المخرج 13 ثم يتوقف الأردوينو ثانية, وبمعد انتهاء الدالة loop تقوم باعادة نفسها.
هذا هو كود الوميض المشهور, لكن لم ننتهي منه, سنعود اليه مرة اخرى بعد شرح محاضرة بعنوان رحلة مع كود الأردوينو, التي سنبين فيها باذن الله كيفية تسلسل تنفيذ الكود, وذلك لاننا نتعامل مع مبتدئين.

الخلاصة (ملاحظات مهمة)
قبل اخراج قيمة على منفذ الأردوينو, يجب ضبطه كمخرج.
الأردوينو سريع جدا, واذا قام باضاءة واطفاء اللد بسرعته فلن نرى شيئا, لذلك نستخدم delay لتبطيئ سرعته...


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

للإنتقال إلى الموضوع السابق, اضغط هنا.
للإنتقال إلى الموضوع التالي, اضغط هنا.


والسلام عليكم ورحمة الله تعالى وبركاته

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