مشروعك الاول في الاردوينو
(الجزء الثالث)
بعد ان قمنا بتعلم ما هي الاردوينو وما هي الفائده منها ذهبنا للبدء بمشروعنا الاول بأستخدام الاردوينو حيث تعلمنا كيفية ربط ضوء LED بالاردوينو وجعله يعمل وميض بعد ذلك وجب علينا التعلم عن كيفية برمجة الاردوينو للتحكم اكثر في هذا الوميض لهذا انتقلنا لدرس برمجة الاردوينو بأستخدام Arduino IDE .
الان سوف نتعلم كيف نبدأ ببرمجة الاردوينو بأستخدام البرمجيه السابق ذكرها لأكمال مشروعنا الاول
وهو عمل وميض لضوء LED للأطلاع على شرح التوصيلات من هنا
من اين ابدأ بتعلم برمجة الاردوينو؟
لكل شخص اسلوبه الخاص في بدايته بتعلم برمجة الاردوينو , لاكن عن نفسي اريد ان اشارككم تجربتي الخاصه في تعلم برمجة الاردوينو , في بداياتي لم افهم كيف تجري الامور داخل الكود البرمجي وكان من الصعب علي بعد ان اتعلم درس معين ان اقوم بتطبيقه فأنتهجت النهج الاتي ; كنت اقوم بتنزيل الكودات الجاهزه وتشغيلها على داره معينه ( لنفرض دارة وميض الضوء مثلا)
وابدأ بتعديل بعض القيم داخل الكود وملاحظة تأثير التعديلات التي قمت بأدخالها على عمل الداره الكهربائيه لدي وهذا ما قام بتكوين صوره منطقيه لدي عن عمل كل جمله برمجيه بالكود الذ قمت بتعديله ومع تكرار هذه العمليه والتعلم في كل مره اصبح لدي القدره على كتابة كود برمجي من الصفر دون الرجوع للكودات الجاهزه وتعديلها .
وهكذا سيكون درسنا الاول في تعلم برمجة الاردوينو من الصفر حيث سنقوم بفتح كود جاهز وفهمه والتعديل عليه , هيا لنبدء .
قم بفتح كود وميض ضوء جاهز ( LED Blinking Sketch )
كل ما عليك لأنجاز هذه الخطوه هو الذهاب الى نافذة File>Examples>Basics>Blink
بعد الضغط على خيار Blink سيفتح لنا كود جاهز يقوم بتشغيل الضوء في دارتنا لمدة ثانيه من يقوم بأطفائه لمده ثانيه اخرى
عند الضغط على خيار Blink سيظهر لك الكود بالشكل التالي
كما تلاحظ هناك الكثير من الالوان والاشارات والكلام الغير مفهوم بالنسبه لنا
دعنا نعمل على فهم هذا الكود الممتع سطرا بسطر
دعنا نعمل على فهم هذا الكود الممتع سطرا بسطر
السطر الاول الذي تراه بالمثال في الاسفل هو ملاحظه من المبرمج الذي قام بكتابة الكود لك , يريد ان يوصل معلومه لك او ربما لنفسه بالمستقبل كي لا ينساها .
على سبيل المثال كتب لنا المبرمج السابق في هذه الملاحظه مبدأ على ال Void setup التي سيتم شرحها في النقطه التاليه
الاردوينو لا يقوم بتنفيذها كأمر ولا يقرأها اساسا يمكنك كتابة ملاحظه اينما شئت داخل الكود البرمجي فقط ضع // من ثم اكتب ما تريد يمكنك كتابة الملاحظه بأي لغة تريد ولا يوجد عليها اية ضوابط لأننا كما ذكرنا سابقا الاردوينو لن يقرأها ولن ينفذها
على سبيل المثال كتب لنا المبرمج السابق في هذه الملاحظه مبدأ على ال Void setup التي سيتم شرحها في النقطه التاليه
الاردوينو لا يقوم بتنفيذها كأمر ولا يقرأها اساسا يمكنك كتابة ملاحظه اينما شئت داخل الكود البرمجي فقط ضع // من ثم اكتب ما تريد يمكنك كتابة الملاحظه بأي لغة تريد ولا يوجد عليها اية ضوابط لأننا كما ذكرنا سابقا الاردوينو لن يقرأها ولن ينفذها
// the setup function runs once when you press reset or power the board
void setup
اي اوامر برمجيه تكتب بداخلها تنفذ مره واحده عن تشغيل الاردوينو ولا يعاد تكرارها الا اذا تم اعادة تشغيل الاردوينو
تكتب بداخلها عادة الاوامر التي تهتم بتعريف مدخل او مخرج معين او اي شئ لا تحتاج ان تقوم بتعريفه او القيام به اكثر من مره خلال عمل البرنامج
تكتب بداخلها عادة الاوامر التي تهتم بتعريف مدخل او مخرج معين او اي شئ لا تحتاج ان تقوم بتعريفه او القيام به اكثر من مره خلال عمل البرنامج
void setup(){
اي اوامر برمجيه تقوم بكتابتها هنا يتم تنفيذها مره واحده عند تشغيل الاردوينو
}
pinMode
يتسخدم هذا الامر البرمجي لتعريف احد مداخل او مخارج الديجيتال للأردوينو لأن الاردوينو لن تفهم لوحدها فيما اذا كنت تريد ان يكون رقم 13 مدخل او مخرج وفي حالتنا نحن نريد ان نخرج طاقه للضوء عن طريق رقم 13 لذلك سنقوم بتعريفه للأردوينو على انه مخرج كما هو مبين في المثال
لاحظ! انه تم وضع هذا الامر في داخل void setup لأني اريد ان اخبر الاردوينو بأنني اريد رقم 13 كمخرج مره واحده خلال تنفيد البرنامج
لاحظ! انه تم وضع هذا الامر في داخل void setup لأني اريد ان اخبر الاردوينو بأنني اريد رقم 13 كمخرج مره واحده خلال تنفيد البرنامج
pinMode(13,OUTPUT);
void Loop
على عكس void setup اي اوامر برجيه يتم وضعها في داخل void loop يتم تنفيذها بشكل متكرر
يجب ان تعلم ان الاردوينو تقوم بتنفيذ جمل الاوامر داخلها بالترتيب وعندما تنتهي من تنفيذها تكرر العمليه لحين فصل الطاقه عن الاردوينو
يجب ان تعلم ان الاردوينو تقوم بتنفيذ جمل الاوامر داخلها بالترتيب وعندما تنتهي من تنفيذها تكرر العمليه لحين فصل الطاقه عن الاردوينو
void loop(){
اي اوامر برمجيه تقوم بكتابتها هنا يتم تنفيذها بشكل متكرر
}
digital Write
وتعني هذه الجمله البرمجيه اني اريد إخراج امر (طاقه) على منفذ ما كما تلاحظ في المثال تم تحديد المخرج رقم 13 وتم تحديد القيمه التي
ستخرج وهي HIGH اي انه سيقوم بأخراج 5 فولت على المخرج رقم 13 وسيضيئ الضوء الموصول على هذا المخرج
وفي حال تم تحديد القيمه LOW سيقوم بأخراج 0 فولت على المخرج ذاته وسيتطفئ الضوء الموصول على نفس المخرج
digitalWrite(13,HIGH);
delay
عند وضع هذه الجمله في مكان معين في الكود فأنها تقوم بعمل تأخير مدته يتم وضعها بين قوسين علما ان هذه الجمله يتم التعامل معها بأستخدام اجزاء الثانيه مثلا عند كتابةdelay(1000 هذا يعني تأخير بمقدار واحد ثانيه فقط وعند وضع 2000 بين الاقواس هذا يعني تأخير بمقدار ثانيتين واهكذا
عند وضع هذه الجمله في مكان معين في الكود فأنها تقوم بعمل تأخير مدته يتم وضعها بين قوسين علما ان هذه الجمله يتم التعامل معها بأستخدام اجزاء الثانيه مثلا عند كتابةdelay(1000 هذا يعني تأخير بمقدار واحد ثانيه فقط وعند وضع 2000 بين الاقواس هذا يعني تأخير بمقدار ثانيتين واهكذا
delay(1000);
هنا سيصبح لديك تصور عن اخر جملتين في الكود وهنا نسخ للجملتين السابقتين بالاضافه لتعديل بعض القيم في بعضهما
الان! يجب عليك نقل الكود البرمجي وكتابته على برنامج Arduino IDE الموجود على حاسوبك ورفعه على الاردوينو من ثم التعديل على القيم وملاحظة الفروق .
بعد كتابة الكود وفهمه يجب عليك عمل وميض مميز بأستخدام الجمل البرمجيه التي تعلمتها وارساله لنا على الايميل anas@jodevelop.com لنقوم بإدخالك للسحب لدينا على جوائز للمتابعين المتميزين