شرح الموضوع
لوحة الأردوينو عبارة عن نظام حاسوبي صغير ومتكامل، تتكون من دارة إلكترونية مع متحكم دقيق "Microcontroller"، وهو نظام مفتوح المصدر بشقيه العتادي (Hardware) والبرمجي (Software)، يقوم…
الدرس ٣: لوحة الأردوينو وتطبيقاتها
- في هذا الدرس ستتعرف على لوحة الأردوينو وبيئته البرمجية، وستعمل على تنفيذ مجموعة من التطبيقات العملية والمشاريع الصغيرة باستخدام لوحة الأردوينو وبيئتها البرمجية، وستكون قادراً على التمييز بين وظائف بعض القطع الإلكترونية المختلفة.
- وهذا يؤهلك لأن تبني نظاماً متكاملاً في نهاية الدرس والخاص بالروبوت السيار، وتمكنك من الانطلاق نحو تطبيق مشاريع أكبر تفيدك في حياتك العملية.
لوحة الأردوينو
نشاط (١):
تفحص لوحة الأردوينو في المختبر، وتعرف على مكوناتها مع زملائك مدوناً ملاحظاتك.
مفتوح المصدر (Open Source): حيث تتوافر جميع التصميمات المتعلقة بلوحات الأردوينو بشكل مجاني، بحيث يمكن تعديلها وتطويرها من قبل المطورين حول العالم، كما أن بيئة البرمجة الخاصة باللوحة مجانية ومفتوحة المصدر، ويمكن تحسينها وإضافة توسيعات لها من قبل المبرمجين حول العالم.
لوحة الأردوينو عبارة عن نظام حاسوبي صغير ومتكامل، تتكون من دارة إلكترونية مع متحكم دقيق "Microcontroller"، وهو نظام مفتوح المصدر (Open Source) بشقيه العتادي (Hardware) والبرمجي (Software)، يقوم المتحكم بأداء الوظائف الحاسوبية، من استقبال المعطيات والبيانات، ومعالجتها، وإصدار الأوامر اللازمة لعمل الأجزاء والقطع الأخرى المرتبطة بهذا النظام.
ويُستخدم الأردوينو بصورة أساسية في تصميم المشاريع الإلكترونية التفاعلية، والتي تستخدم حساسات مختلفة، مثل: (درجات الحرارة، والمسافة، والضغط.. إلخ) وكذلك في مشاريع التحكم الآلي وانترنت الأشياء (Internet of Things)، وتتميز الأكواد البرمجية الخاصة بالمتحكم أنها تشبه لغة C++، وتسمى ARDUINO C ويوجد عدة أنواع من لوحات الأردوينو، منها ARDUINO MINI, ARDUINO MEGA, ARDUINO UNO وتختلف هذه الأنواع فيما بينها في عدد المداخل والمخارج ومصدر الجهد (5 أو 3.3 فولت) ونوع المتحكم الدقيق فيها بالإضافة إلى ميزات إضافية في كل نوع.
في هذا الدرس سيتم استخدام لوحة الأردوينو أونو (ARDUINO UNO)، وهي تحتوي على:
- متحكم دقيق من نوع ATmega328
- 14 (مدخل ومخرج) للإشارة الرقمية.
- 6 مداخل للإشارة التماثلية.
- ذاكرة 32KB.
- مصدر للطاقة.
- نظام إرسال المعلومات المتتالي (UART) و مفتاح Reset.

بيئة مبرمج الأردوينو
حمل برنامج بيئة الأردينو من موقع الشركة الرسمي وهو مجاني، ثم اعمل على تنصيبه على جهاز الحاسوب، وتأكد من أن جهاز الحاسوب قد تعرف على اللوحة وأعطى لها رقم منفذ تسلسلي (Com port) عند توصيل كابل USB.
رابط موقع الشركة: http://arduino.cc/hu/Main/Software
افتح البرنامج بعد التنصيب، وتعرف على أقسامه المختلفة:

1 شريط القوائم. 2 شريط الأوامر السريعة. 3 منطقة كتابة الكود وملاحظات عن الكود. 4 منطقة التنبيهات لعرض الأخطاء البرمجية.
نشاط (٢):
تشغيل ثنائي ضوئي كوماض (Blinking led)
الأدوات المطلوبة:
- لوحة تجارب.
- لوحة أردوينو أونو.
- أسلاك توصيل.
- مقاومة ثابتة (1KΩ).
- باعث ضوئي.
اتبع الخطوات التالية، ثم دون ملاحظاتك: 1 وصل لوحة الأردوينو بالحاسوب بوساطة كابل USB 2 حدد نوع الأردوينو المستخدم من قائمة Tools، ثم من Boards واختار Arduino Uno. 3 حدد رقم مدخل ال COM المتصل بلوحة الأردوينو من قائمة Tools، ثم Port 4 اكتب البرنامج في الشكل التالي في بيئة مبرمج الأردوينو واحفظه باسم Flasher. 5 تحقق من صحة البرنامج وخلوه من الأخطاء من قائمة Sketch، ثم Verify. 6 ركب الدارة البسيطة التالية، وقم بتوصيلها إلى لوحة الأردوينو كما هو مبين في الشكل الآتي: 7 حمل البرنامج الى لوحة الأردوينو من قائمة Sketch ثم Upload 8 دون ملاحظاتك.

ملاحظة طرف رقم 13 موصول الى ثنائي ضوئي في معظم لوحات الأردوينو.

``
cpp Flasher_IAH int led = 13; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }``

نلاحظ من النشاط السابق بأن الثنائي عمل كوماض لفترة 1 ثانية لكل ومضة، قم بتعديل الكود البرمجي لتصبح فترة الومضة الواحدة 3 ثوان؟
تطبيقات على الاردوينو
نشاط (٣):
قراءة قيمة رقمية وإخراج قيمة رقمية (Digital in-out)
- لوحة تجارب وأسلاك توصيل
- لوحة أردوينو أونو
- مقاومة ثابتة (1KΩ)
- طنان (Buzzer)
- مفتاح (Push Button)
الخطوات:
1 عمل على توصيل الدارة كما بالشكل: 2 اكتب البرنامج التالي، واحفظه باسم Buzzer.

``
cpp int led = 13; int buzzer = 4; int button = 8; void setup() { pinMode(led, OUTPUT); pinMode(buzzer, OUTPUT); pinMode(button, INPUT); } void loop() { digitalWrite(buzzer, LOW); if(digitalRead(button)==HIGH) { digitalWrite(led, HIGH); digitalWrite(buzzer, LOW); delay(1000); digitalWrite(led, LOW); digitalWrite(buzzer, HIGH); delay(1000); } }``
3 أعمل على تحميل البرنامج إلى لوحة الأردوينو من خلال وصلة ال (USB) 4 اضغط على المفتاح، سجل ملاحظاتك مع شرح آلية عمل الدارة.

ملاحظة موقع الويب (123D circuits): الذي يمكن من خلاله محاكاة متحكم الاردوينو. اعمل على فتح حساب لك في الموقع، وابدأ في تنفيذ تطبيقاتك عليه.
نشاط (٤):
التحكم بحركة محرك وفقا لشدة الإضاءة باستخدام مقاومة ضوئية LDR وقراءتها بشكل رقمي (digital)
- لوحة تجارب وأسلاك توصيل.
- لوحة أردوينو أنو.
- مقاومات ثابتة (1KΩ، 10KΩ).
- مقاومة ضوئية LDR.
- ثنائي N4007.
- ترانزستور (BC547 او BC337).
- محرك بسيط.
- بطارية 9 فولت.
1 اعمل على توصيل الدارة كما في الشكل:

2 اكتب البرنامج التالي واحفظه باسم LDR_Motor.
``
cpp int led = 13; int ldr = 8; int mot = 4; void setup() { pinMode(led, OUTPUT); pinMode(mot, OUTPUT); pinMode(ldr, INPUT); } void loop() { digitalWrite(mot, LOW); if(digitalRead(ldr)==HIGH) { digitalWrite(led, HIGH); digitalWrite(mot, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); } }``

3 أعمل على تحميل البرنامج إلى لوحة الأردوينو من خلال وصلة ال (USB). 4 عرض المقاومة للضوء مرة، واعزل الضوء عنها مرة أخرى. سجل ملاحظاتك مع شرح آلية عمل الدارة.
- من خلال شبكة الإنترنت قم بتنزيل البرامج المرفقة وتعرف إلى خصائصها وطريقة عملها.
ملاحظة من برامج المحاكاة للدارات الإلكترونية برنامج فريتزنج (Fritzing) وبرنامج بروتوس (Proteus): وهي برامج تستخدم لرسم الدارات الإلكترونية بشكلها الحقيقي. وتتوفر على الإنترنت بشكل مجاني.
أسئلة الدرس
1 ما هي أهم ميزات متحكم الأردوينو؟ 2 ما المقصود بمكتبة الأردوينو Arduino Library ؟ 3 ما الفرق بين المداخل التماثلية والمداخل الرقمية في لوحة متحكم الأردوينو ؟ 4 أعط أسماء أدوات وأجهزة يتم توصيلها في المداخل الرقمية والمداخل التماثلية للوحة الأردوينو.