الروبوت ونظم التحكمالدرس 3ثلاث حصص دراسية

لوحة الأردوينو وتطبيقاتها

قطعة إلكترونية بحجم بطاقة الهوية تقريبًا، لكنها قادرة على "قراءة" ضغطة زر، أو شدة ضوء، أو درجة حرارة، ثم "اتخاذ قرار" فوري بتشغيل مصباح أو جرس أو محرك بناءً على ما قرأته: هذه هي لوحة الأردوينو. من دارة LED بسيطة تومض كل ثانية، إلى جرس ينذر عند ضغط زر، إلى محرك يدور تلقائيًّا عندما يحل الظلام — الشيفرة نفسها التي تكتبها بيدك هي ما يحدد كل هذا السلوك. كيف تتحول أسطر نصية من الشيفرة إلى قرار فعلي في دارة كهربائية حقيقية؟

أسئلة نفكر بها قبل أن نبدأ

  • ما المكونات الرئيسية لدارة لوحة الأردوينو UNO (المتحكّم الدقيق، منافذ الدخل/الخرج، منفذ USB)؟
  • ما وظيفة الدالتين setup() و loop() في أي برنامج أردوينو؟
  • ما الفرق بين وضعي المنفذ (INPUT) و(OUTPUT) في دالة pinMode؟
  • كيف تعمل دالتا digitalWrite() و digitalRead() في التحكم بالمخرجات وقراءة المدخلات؟

استراتيجية التعلّم لهذا الدرس

درس تطبيقي-عملي يقدّم لوحة الأردوينو وبنية برنامجها عبر محاكاة "مخبر الأردوينو" التي تربط شيفرة Arduino C حقيقية من ثلاثة مشاريع متصاعدة (LED، زر وجرس، حساس ومحرك) باستجابة فعلية مرئية لكل سطر، مع لعبة مطابقة لدوال الأردوينو الأساسية.

بما أن الكتاب يقدّم ثلاثة مشاريع Arduino C حقيقية متكاملة بشيفرتها الكاملة، صُمّمت محاكاة "مخبر الأردوينو" لتعرض هذه الشيفرة حرفيًّا مع تمييز السطر المسؤول عن كل استجابة فعلية للدارة، بدل تقديم الشيفرة كنص للقراءة فقط منفصل عن أي تفاعل، فتتحول قراءة الكود إلى تجربة سببية مباشرة (هذا السطر ⇐ هذه النتيجة).

شرح الدرس — عرض تقديمي تفاعلي

مصطلحات ومفاهيم الدرس

المتحكّم الدقيق (Microcontroller)
شريحة إلكترونية صغيرة قادرة على تنفيذ شيفرة برمجية، وهي "عقل" لوحة الأردوينو المسؤول عن اتخاذ القرارات وتنفيذ البرنامج.
setup()
دالة تُنفَّذ مرة واحدة فقط عند بدء تشغيل اللوحة، تُستخدَم لتهيئة إعدادات المنافذ عبر pinMode().
loop()
دالة تُنفَّذ بشكل متكرر ومستمر ما دامت اللوحة تعمل، وهي مكان كتابة الشيفرة الفعلية للتحكم بسلوك الدارة.
digitalWrite(pin, value)
دالة تتحكم بمنفذ مضبوط كمخرج (OUTPUT) بإعطائه القيمة HIGH (تشغيل) أو LOW (إيقاف).
digitalRead(pin)
دالة تقرأ حالة منفذ مضبوط كمدخل (INPUT)، وتُرجع HIGH أو LOW حسب حالته الفعلية (كضغط زر أو سقوط ضوء على حساس).

المحاكاة التفاعلية

الأنشطة

أنجزت 0 / 5

الألعاب التعليمية

الاختبارات — أسئلة الدرس

  1. ما الفرق بين دالتي setup() و loop() في برنامج الأردوينو؟
  2. ما وظيفة دالة pinMode()؟ وما الفرق بين وضعَيها OUTPUT و INPUT؟
  3. ماذا تفعل دالة digitalWrite(led, HIGH)؟
  4. ما الفرق بين استخدام زر ضغط وحساس LDR كمدخل في دارة أردوينو؟

الإثراء

  • ابحث عن الفرق بين المنافذ الرقمية (Digital) والمنافذ التناظرية (Analog) في لوحة الأردوينو، ومتى تحتاج لاستخدام دالة analogRead() بدل digitalRead().
  • ابحث عن مفهوم "PWM" (تعديل عرض النبضة) وكيف يتيح التحكم بسرعة محرك أو شدة إضاءة LED تدريجيًّا بدل تشغيل/إيقاف فقط.
  • ابحث عن لوحات تحكم دقيقة أخرى بديلة لأردوينو (كـ Raspberry Pi وESP32) والفرق بينها من حيث الإمكانيات والاستخدام.

أوراق العمل

ورقة عمل مُشتقّة تلقائيًا من أنشطة وأسئلة هذا الدرس، جاهزة للتنزيل أو الطباعة مباشرة.

الاسم: ______________________الشعبة: ______التاريخ: ______________

أولًا: الأنشطة

  1. برمجة وميض LED بزمن مختلف: وصّل لوحة أردوينو بـ LED واحد، واكتب برنامج وميض بسيط، ثم عدّل قيمة delay() لتغيير سرعة الوميض، ولاحظ الأثر الفعلي على الدارة.
  2. بحث: لغة Arduino C مقابل C++: ابحث عن العلاقة بين لغة Arduino C ولغة C++ الأصلية، وما الدوال أو المكتبات الإضافية التي توفرها بيئة أردوينو تحديدًا.
  3. إضافة زر ضغط للتحكم بجرس: أضف زر ضغط ودارة جرس (Buzzer) إلى لوحة الأردوينو، واكتب شيفرة تُشغِّل الجرس فقط عند ضغط الزر، باستخدام digitalRead داخل جملة شرطية.
  4. للنقاش: زر مقابل حساس: ما الفرق الجوهري بين استخدام زر ضغط وحساس ضوء (LDR) كمدخل للتحكم بنفس المخرج؟ أي منهما يجعل الدارة "أكثر ذكاءً"؟ وضّح إجابتك.
  5. أفكر: مشروع أردوينو جديد: فكّر في مشروع جديد بمدخل ومخرج لم يُذكر في الدرس (كحساس حرارة يتحكم بمروحة)، وصف الشيفرة المطلوبة (setup/loop) بشكل عام دون كتابتها بالكامل.

ثانيًا: أسئلة الدرس

  1. ما الفرق بين دالتي setup() و loop() في برنامج الأردوينو؟
  2. ما وظيفة دالة pinMode()؟ وما الفرق بين وضعَيها OUTPUT و INPUT؟
  3. ماذا تفعل دالة digitalWrite(led, HIGH)؟
  4. ما الفرق بين استخدام زر ضغط وحساس LDR كمدخل في دارة أردوينو؟

دليل المعلم

الأهداف التعليمية

  • أن يوضّح الطالب المكونات الأساسية لدارة لوحة أردوينو UNO ووظيفة كل منها.
  • أن يميّز الطالب بين دالتي setup() و loop() ودالتي digitalWrite() و digitalRead().
  • أن يقرأ الطالب شيفرة Arduino C حقيقية ويربط كل سطر منها باستجابة فعلية للدارة.

الخطة الزمنية

الحصة الأولى: مكونات لوحة الأردوينو + بنية setup/loop. الحصة الثانية: digitalWrite وdigitalRead + المحاكاة (مشروعا LED والجرس). الحصة الثالثة: مشروع الحساس LDR + نشاط المختبر ولعبة المطابقة.

استراتيجيات التدريس المقترحة

  • التدرج في عرض المشاريع الثلاثة من الأبسط (مخرج فقط) إلى الأكثر تعقيدًا (مدخل بشري ثم مدخل بيئي تلقائي) لبناء الفهم تراكميًّا.
  • استخدام محاكاة "مخبر الأردوينو" لربط كل سطر شيفرة بأثره الفعلي على الدارة المصوَّرة قبل الانتقال للتوصيل الفعلي في المختبر.
  • التركيز على الفرق بين "زر" (تحكم بشري) و"حساس" (استجابة تلقائية للبيئة) كفكرة مفتاحية تُمهّد لدرس الروبوت السيّار التالي.

الأخطاء الشائعة لدى الطلبة

  • نسيان ضبط pinMode بالوضع الصحيح (INPUT أو OUTPUT) قبل استخدام المنفذ، فيعمل بشكل غير متوقع.
  • الخلط بين مكان كتابة إعدادات التهيئة (setup) والشيفرة المتكررة (loop)، فيضع أوامر pinMode داخل loop بالخطأ فتُنفَّذ مرارًا بلا حاجة.

نصائح التقييم

  • اطلب من الطالب تتبّع شيفرة أردوينو جديدة (غير المشاريع الثلاثة) وتحديد ما يحدث للدارة عند كل سطر.
  • استخدم محاكاة مخبر الأردوينو كتقييم تكويني سريع لفهم العلاقة بين الشيفرة والاستجابة الفعلية قبل الدخول للمختبر الحقيقي.

تحليل الذكاء الاصطناعي للدرس

الفكرة العامة

لوحة الأردوينو تجسّد المبدأ الأساسي لأي نظام تحكم مبرمج: قراءة حالة من العالم الفعلي (مدخل)، واتخاذ قرار برمجي بناءً عليها، وتنفيذ استجابة فعلية (مخرج) — وهذا المسار الثلاثي (مدخل ← قرار ← مخرج) هو نفسه الذي يحكم أي روبوت أو نظام تحكم آلي حديث.

المفاهيم الأساسية

  • مكونات لوحة أردوينو UNO الأساسية
  • بنية البرنامج: setup() و loop()
  • دالتا digitalWrite() و digitalRead() للتحكم بالمخرجات وقراءة المدخلات

المفاهيم الفرعية

  • الفرق بين وضعَي المنفذ INPUT و OUTPUT
  • دالة delay() للتحكم بالزمن
  • الفرق بين مدخل بشري (زر) ومدخل بيئي تلقائي (حساس)

الكلمات المفتاحية

أردوينوالمتحكّم الدقيقsetuploopdigitalWritedigitalRead

المصطلحات

  • المنفذ الرقمي (Digital Pin): منفذ في لوحة الأردوينو يمكن برمجته كمدخل يقرأ حالة (HIGH/LOW) أو كمخرج يتحكم بحالة، عبر دالة pinMode.
  • الجملة الشرطية (if): بنية برمجية تنفّذ مجموعة أوامر فقط إذا تحقق شرط معين، وتُستخدَم غالبًا مع digitalRead لاتخاذ قرار بناءً على قيمة مدخل.

المهارات المستهدفة

  • قراءة شيفرة Arduino C وربط كل سطر بأثره الفعلي على الدارة
  • التمييز بين إعدادات التهيئة والشيفرة المتكررة
  • التمييز بين المدخل البشري والمدخل البيئي التلقائي

الأهداف

  • التعرف إلى مكونات لوحة أردوينو UNO
  • فهم دالتَي setup() و loop() ودالتَي digitalWrite() و digitalRead()

نواتج التعلّم

  • يوضّح الطالب وظيفة كل من setup() و loop() في برنامج أردوينو.
  • يربط الطالب كل سطر من شيفرة Arduino C حقيقية باستجابة فعلية محددة للدارة.
  • يميّز الطالب بين دارة تعتمد مدخلًا بشريًّا (زر) ودارة تعتمد مدخلًا بيئيًّا تلقائيًّا (حساس).

المتطلبات السابقة

  • فهم أساسي للدارات الكهربائية البسيطة (مصدر، مخرج، مفتاح) من دروس سابقة في التكنولوجيا.

أكثر الأخطاء الشائعة

  • نسيان ضبط pinMode بالوضع الصحيح قبل استخدام المنفذ
  • الخلط بين محتوى setup() ومحتوى loop()

احتياجات الدرس من مكوّنات

محاكاة تفاعلية تربط أسطر شيفرة حقيقية باستجابة دارة مصوَّرة عبر ثلاثة مشاريع متصاعدة التعقيدخمسة أنشطة متنوعة (مختبر، بحث، نقاش، تفكير)لعبة مطابقة لدوال الأردوينو الأساسية

مستوى بلوم

التطبيق، عبر قراءة وربط شيفرة Arduino C حقيقية بسلوك دارة فعلية.

نوع الدرس

تطبيقي-عملي، يعتمد على قراءة شيفرة حقيقية وتوصيل دارات فعلية في مختبر الحاسوب.

الفئة العمرية

الصف الحادي عشر — فرعا العلمي والصناعي

أفضل طريقة شرح حسب الفئة العمرية

الفئة العمرية (16-17 سنة) تستوعب مفاهيم البرمجة المضمّنة (Embedded Programming) بعمق أكبر حين تشاهد كل سطر شيفرة حقيقي يُترجَم فورًا إلى استجابة بصرية ملموسة على دارة مصوَّرة، وحين يُبنى الفهم تدريجيًّا من مشروع بمخرج واحد فقط إلى مشروع بمدخل بشري ثم مدخل بيئي تلقائي، بدل تقديم الدوال كقواعد نظرية منفصلة عن أي تطبيق فعلي.