
01 — Welcome to Arduino & Physical Computing
Duration: 2h
LEARNING OBJECTIVES
-
Explain what Arduino is and where it's used
-
Identify the main parts of the Arduino Uno board
CONCEPTS
-
Physical computing
-
Arduino Uno anatomy
-
Microcontroller vs computer
-
Power & USB
PRACTICAL ACTIVITY
Unbox and inspect the Arduino Uno; identify pins, power input, and onboard LED; install the Arduino IDE and connect the board.
MINI CHALLENGE
In pairs, correctly label 8 components on a printed board diagram in under 5 minutes.
REQUIRED COMPONENTS
-
Arduino Uno
-
USB cable
-
Laptop with IDE installed
EXPECTED OUTCOME
Every student has a working IDE connection to their own Arduino Uno.
S02 — Arduino IDE & First Sketch
Duration: 2h
LEARNING OBJECTIVES
-
Navigate the Arduino IDE interface
-
Upload a working sketch to the board
CONCEPTS
-
Sketch structure (setup/loop)
-
Compiling & uploading
-
Syntax basics
-
Comments
PRACTICAL ACTIVITY
Write, upload, and modify the Blink sketch; change timing values and observe the effect on the onboard LED.
MINI CHALLENGE
Make the onboard LED blink in a distinct pattern (e.g., SOS) using only setup() and loop().
REQUIRED COMPONENTS
-
Arduino Uno
-
USB cable
EXPECTED OUTCOME
Students can independently write, upload, and debug a basic sketch.
S03 — Digital Inputs — Push Buttons
Duration: 2h
LEARNING OBJECTIVES
-
Wire a push button as a digital input
-
Use pinMode and digitalRead correctly
CONCEPTS
-
Digital input vs output
-
Pull-up/pull-down resistors
-
INPUT_PULLUP
-
Debouncing (concept)
PRACTICAL ACTIVITY
Wire a button circuit that lights an LED only while pressed; then invert the logic so the LED is on by default.
MINI CHALLENGE
Build a 'press-to-toggle' circuit where one press turns the LED on and the next turns it off.
REQUIRED COMPONENTS
-
Breadboard
-
Push button
-
LED
-
220Ω resistor
-
10kΩ resistor
-
Jumper wires
EXPECTED OUTCOME
A working button-controlled LED circuit with correct pull-up wiring.
S04 — Analog World — Potentiometers & Analog Input
Duration: 2h
LEARNING OBJECTIVES
-
Read a variable analog signal with analogRead()
-
Map raw values to a usable range
CONCEPTS
-
Analog vs digital signals
-
0–1023 ADC range
-
map() function
-
Serial Monitor for debugging
PRACTICAL ACTIVITY
Wire a potentiometer, read live values on the Serial Monitor, and map them to control LED brightness.
MINI CHALLENGE
Use the potentiometer to control the blink speed of an LED in real time.
REQUIRED COMPONENTS
-
Breadboard
-
Potentiometer
-
LED
-
220Ω resistor
-
Jumper wires
EXPECTED OUTCOME
Students can read, map, and apply an analog sensor value to control output.
S05 — Let There Be Light — LEDs & PWM
Duration: 2h
LEARNING OBJECTIVES
-
Explain how PWM simulates analog output
-
Control brightness with analogWrite()
CONCEPTS
-
Pulse Width Modulation
-
PWM-capable pins
-
RGB LEDs
-
Color mixing
PRACTICAL ACTIVITY
Wire an RGB LED and write code to fade smoothly between colors using analogWrite().
MINI CHALLENGE
Program a 'traffic light' color sequence with accurate timing using only PWM pins.
REQUIRED COMPONENTS
-
Breadboard
-
RGB LED (or 3 LEDs)
-
3× 220Ω resistors
-
Jumper wires
EXPECTED OUTCOME
A working RGB fade/color-sequence program.
S06 — Sound & Buzzers
Duration: 2h
LEARNING OBJECTIVES
-
Generate tones with the tone() function
-
Build simple sound-feedback logic
CONCEPTS
-
Piezo buzzers
-
Frequency & pitch
-
tone() and noTone()
-
Arrays for note sequences
PRACTICAL ACTIVITY
Wire a buzzer and play a short melody using an array of notes and durations.
MINI CHALLENGE
Compose an 8-note alert melody that plays only when a button is pressed.
REQUIRED COMPONENTS
-
Breadboard
-
Piezo buzzer
-
Push button
-
Jumper wires
EXPECTED OUTCOME
A button-triggered sound-feedback circuit.
S07 — Sensing the Environment — LDR (Light Sensor)
Duration: 2h
LEARNING OBJECTIVES
-
Read light levels with a photoresistor
-
Apply threshold logic to trigger outputs
CONCEPTS
-
Voltage dividers
-
LDR behaviour
-
Threshold / conditional triggering
-
Calibration
PRACTICAL ACTIVITY
Build a voltage-divider circuit with an LDR and calibrate a light threshold using the Serial Monitor.
MINI CHALLENGE
Build an automatic night-light: LED turns on only when the room is dark.
REQUIRED COMPONENTS
-
Breadboard
-
LDR
-
10kΩ resistor
-
LED
-
220Ω resistor
-
Jumper wires
EXPECTED OUTCOME
A working light-triggered automatic circuit.
S08 — Sensing Distance — Ultrasonic Sensor
Duration: 2h
LEARNING OBJECTIVES
-
Measure distance using an HC-SR04 sensor
-
Convert echo time into centimetres
CONCEPTS
-
Trigger/Echo pins
-
Speed of sound calculation
-
pulseIn()
-
Obstacle detection logic
PRACTICAL ACTIVITY
Wire the HC-SR04, print live distance readings, and set an alert when an object is within range.
MINI CHALLENGE
Build a 'parking sensor' that beeps faster as an object gets closer.
REQUIRED COMPONENTS
-
Breadboard
-
HC-SR04 ultrasonic sensor
-
Buzzer
-
Jumper wires
EXPECTED OUTCOME
A working distance-based alert system.
S09 — Motion — Servo Motors
Duration: 2h
LEARNING OBJECTIVES
-
Control a servo's angle with the Servo library
-
Combine sensor input with motor output
CONCEPTS
-
Servo motors vs DC motors
-
Servo library & write()
-
Angle mapping
-
Sensor-to-actuator logic
PRACTICAL ACTIVITY
Wire a servo and sweep it between angles; then drive its angle using the potentiometer or LDR from earlier sessions.
MINI CHALLENGE
Build an 'automatic gate' that opens when the ultrasonic sensor detects someone nearby.
REQUIRED COMPONENTS
-
Breadboard
-
Servo motor (SG90)
-
HC-SR04 (reused)
-
Jumper wires
EXPECTED OUTCOME
A sensor-triggered mechanical motion system.
S10 — Programming Foundations — Variables & Conditions
Duration: 2h
LEARNING OBJECTIVES
-
Use variables to store and reuse sensor data
-
Write clear if / else if / else logic
CONCEPTS
-
Data types (int, float, bool)
-
Comparison & logical operators
-
Nested conditions
-
Code readability
PRACTICAL ACTIVITY
Refactor a previous project's code to use named variables and multi-branch conditions instead of hard-coded numbers.
MINI CHALLENGE
Add a third condition/state to an earlier circuit (e.g., dim / medium / bright light zones).
REQUIRED COMPONENTS
-
Any circuit from Sessions 4–8 (reused)
EXPECTED OUTCOME
Cleaner, more flexible code using variables and conditional logic.
S11 — Programming Foundations — Loops & Functions
Duration: 2h
LEARNING OBJECTIVES
-
Use for and while loops to repeat actions
-
Organise code into reusable custom functions
CONCEPTS
-
for vs while loops
-
Function declaration & calling
-
Parameters & return values
-
Code modularity
PRACTICAL ACTIVITY
Rewrite the melody and blink-pattern programs using loops; extract a repeated block of code into a custom function.
MINI CHALLENGE
Write a function playAlert() that any circuit built so far can call to trigger a sound + light warning.
REQUIRED COMPONENTS
-
Arduino Uno
-
Buzzer
-
LED
-
Jumper wires
EXPECTED OUTCOME
A reusable custom function integrated into a working circuit.
S12 — Capstone — Integrated Smart Device Project
Duration: 2h
LEARNING OBJECTIVES
-
Combine 3+ concepts from the course into one working device
-
Present and explain the finished build
CONCEPTS
-
System integration
-
Debugging strategy
-
Design justification
-
Presentation basics
PRACTICAL ACTIVITY
In teams, design and build one device (e.g., Smart Guard Light: LDR + Servo + Buzzer, or Smart Distance Alarm: Ultrasonic + LED + Buzzer) combining sensing, decision logic, and output.
MINI CHALLENGE
Demonstrate the device live and explain the role of every component and line of key code.
REQUIRED COMPONENTS
-
Full component kit from prior sessions
EXPECTED OUTCOME
A working, presentable smart device built from Level 1 concepts.
S01 — مقدمة إلى Arduino والحوسبة الفيزيائية
المدة: ساعتان
الأهداف التعليمية
شرح ماهية Arduino ومجالات استخدامه.
التعرّف على الأجزاء الرئيسية في لوحة Arduino Uno.
المفاهيم
الحوسبة الفيزيائية.
مكونات لوحة Arduino Uno.
المتحكم الدقيق (Microcontroller) مقارنةً بالحاسوب.
الطاقة وUSB.
النشاط العملي
فتح عبوة Arduino Uno وفحص اللوحة، والتعرّف على المنافذ، ومدخل الطاقة، ومصباح LED المدمج على اللوحة، ثم تثبيت بيئة Arduino IDE وتوصيل اللوحة بالحاسوب.
التحدي المصغّر
بالعمل ضمن أزواج، تسمية 8 مكونات بشكل صحيح على مخطط مطبوع للوحة Arduino خلال أقل من 5 دقائق.
المكونات المطلوبة
Arduino Uno
كابل USB
حاسوب محمول مثبت عليه Arduino IDE
النتيجة المتوقعة
يتمكن كل طالب من توصيل لوحة Arduino Uno الخاصة به ببيئة Arduino IDE وتشغيلها بنجاح.
S02 — بيئة Arduino IDE وأول برنامج
المدة: ساعتان
الأهداف التعليمية
التعرف على واجهة Arduino IDE والتنقل بين عناصرها.
رفع برنامج (Sketch) يعمل بنجاح إلى اللوحة.
المفاهيم
بنية البرنامج setup() وloop().
الترجمة (Compiling) والرفع (Uploading).
أساسيات صياغة الأوامر البرمجية (Syntax).
التعليقات البرمجية.
النشاط العملي
كتابة برنامج Blink ورفعه وتعديله، ثم تغيير قيم التوقيت وملاحظة تأثير ذلك على مصباح LED المدمج في اللوحة.
التحدي المصغّر
جعل مصباح LED المدمج يومض بنمط مميز، مثل إشارة SOS، باستخدام setup() وloop() فقط.
المكونات المطلوبة
Arduino Uno
كابل USB
النتيجة المتوقعة
يتمكن الطلاب بشكل مستقل من كتابة برنامج أساسي ورفعه إلى اللوحة واكتشاف الأخطاء فيه وتصحيحها.
S03 — المدخلات الرقمية — أزرار الضغط
المدة: ساعتان
الأهداف التعليمية
توصيل زر ضغط ليعمل كمدخل رقمي.
استخدام pinMode() وdigitalRead() بشكل صحيح.
المفاهيم
المدخل الرقمي مقابل المخرج الرقمي.
مقاومات السحب لأعلى والسحب لأسفل (Pull-up / Pull-down).
INPUT_PULLUP.
مفهوم إزالة اهتزاز زر الضغط (Debouncing).
النشاط العملي
توصيل دائرة زر تجعل مصباح LED يضيء فقط أثناء الضغط على الزر، ثم عكس المنطق بحيث يكون LED مضاءً بشكل افتراضي.
التحدي المصغّر
إنشاء دائرة «اضغط للتبديل»، بحيث تؤدي الضغطة الأولى إلى تشغيل LED والضغطة التالية إلى إطفائه.
المكونات المطلوبة
لوحة تجارب (Breadboard)
زر ضغط
LED
مقاومة 220Ω
مقاومة 10kΩ
أسلاك توصيل (Jumper Wires)
النتيجة المتوقعة
دائرة LED تعمل بواسطة زر الضغط مع توصيل Pull-up بشكل صحيح.
S04 — العالم التناظري — المقاومة المتغيرة والمدخل التناظري
المدة: ساعتان
الأهداف التعليمية
قراءة إشارة تناظرية متغيرة باستخدام analogRead().
تحويل القيم الخام إلى نطاق مناسب للاستخدام.
المفاهيم
الإشارات التناظرية مقابل الرقمية.
نطاق ADC من 0 إلى 1023.
الدالة map().
استخدام Serial Monitor لاكتشاف الأخطاء.
النشاط العملي
توصيل مقاومة متغيرة (Potentiometer)، وقراءة قيمها مباشرة عبر Serial Monitor، ثم تحويل هذه القيم للتحكم في شدة إضاءة LED.
التحدي المصغّر
استخدام المقاومة المتغيرة للتحكم في سرعة وميض LED في الوقت الفعلي.
المكونات المطلوبة
لوحة تجارب
مقاومة متغيرة (Potentiometer)
LED
مقاومة 220Ω
أسلاك توصيل
النتيجة المتوقعة
يتمكن الطلاب من قراءة قيمة مستشعر تناظري وتحويلها واستخدامها للتحكم في أحد المخرجات.
S05 — فليكن هناك ضوء — مصابيح LED وPWM
المدة: ساعتان
الأهداف التعليمية
شرح كيفية استخدام PWM لمحاكاة الخرج التناظري.
التحكم في شدة الإضاءة باستخدام analogWrite().
المفاهيم
تعديل عرض النبضة (Pulse Width Modulation – PWM).
المنافذ التي تدعم PWM.
مصابيح RGB LED.
مزج الألوان.
النشاط العملي
توصيل RGB LED وكتابة برنامج للانتقال التدريجي والسلس بين الألوان باستخدام analogWrite().
التحدي المصغّر
برمجة تسلسل ألوان يحاكي «إشارة المرور» بتوقيت دقيق باستخدام منافذ PWM فقط.
المكونات المطلوبة
لوحة تجارب
RGB LED أو 3 مصابيح LED
3 مقاومات بقيمة 220Ω
أسلاك توصيل
النتيجة المتوقعة
برنامج يعمل بنجاح للتحكم في التدرج وتسلسل الألوان باستخدام RGB LED.
S06 — الصوت والطنانات
المدة: ساعتان
الأهداف التعليمية
توليد النغمات باستخدام الدالة tone().
بناء منطق بسيط للتغذية الراجعة الصوتية.
المفاهيم
الطنان الكهروضغطي (Piezo Buzzer).
التردد ودرجة الصوت.
tone() وnoTone().
المصفوفات (Arrays) لإنشاء تسلسل النغمات.
النشاط العملي
توصيل طنان وتشغيل لحن قصير باستخدام مصفوفة تحتوي على النغمات ومددها الزمنية.
التحدي المصغّر
تأليف نغمة تنبيه من 8 نغمات تعمل فقط عند الضغط على زر.
المكونات المطلوبة
لوحة تجارب
Piezo Buzzer
زر ضغط
أسلاك توصيل
النتيجة المتوقعة
دائرة تغذية راجعة صوتية يتم تشغيلها بواسطة زر ضغط.
S07 — استشعار البيئة — مستشعر الضوء LDR
المدة: ساعتان
الأهداف التعليمية
قراءة مستويات الإضاءة باستخدام مقاومة ضوئية.
تطبيق منطق العتبة (Threshold) لتشغيل المخرجات.
المفاهيم
مقسمات الجهد (Voltage Dividers).
سلوك LDR.
العتبة والتشغيل الشرطي.
المعايرة (Calibration).
النشاط العملي
بناء دائرة مقسم جهد باستخدام LDR ومعايرة عتبة الإضاءة باستخدام Serial Monitor.
التحدي المصغّر
إنشاء مصباح ليلي تلقائي، بحيث يضيء LED فقط عندما تصبح الغرفة مظلمة.
المكونات المطلوبة
لوحة تجارب
LDR
مقاومة 10kΩ
LED
مقاومة 220Ω
أسلاك توصيل
النتيجة المتوقعة
دائرة تلقائية تعمل استنادًا إلى مستوى الإضاءة.
S08 — استشعار المسافة — المستشعر بالموجات فوق الصوتية
المدة: ساعتان
الأهداف التعليمية
قياس المسافة باستخدام مستشعر HC-SR04.
تحويل زمن الصدى إلى مسافة بالسنتيمتر.
المفاهيم
منافذ Trigger وEcho.
حساب سرعة الصوت.
الدالة pulseIn().
منطق اكتشاف العوائق.
النشاط العملي
توصيل HC-SR04، وعرض قراءات المسافة مباشرة، وإعداد تنبيه عند وجود جسم ضمن نطاق محدد.
التحدي المصغّر
بناء «مستشعر ركن سيارات» تزداد سرعة صوت التنبيه فيه كلما اقترب الجسم من المستشعر.
المكونات المطلوبة
لوحة تجارب
مستشعر HC-SR04 بالموجات فوق الصوتية
طنان (Buzzer)
أسلاك توصيل
النتيجة المتوقعة
نظام تنبيه يعمل اعتمادًا على المسافة.
S09 — الحركة — محركات Servo
المدة: ساعتان
الأهداف التعليمية
التحكم في زاوية محرك Servo باستخدام مكتبة Servo.
دمج مدخلات المستشعرات مع مخرجات المحرك.
المفاهيم
محركات Servo مقارنة بمحركات DC.
مكتبة Servo والدالة write().
تحويل القيم إلى زوايا (Angle Mapping).
منطق تحويل قراءة المستشعر إلى حركة.
النشاط العملي
توصيل محرك Servo وتحريكه بين زوايا مختلفة، ثم التحكم في زاويته باستخدام المقاومة المتغيرة أو LDR من الجلسات السابقة.
التحدي المصغّر
بناء «بوابة تلقائية» تفتح عندما يكتشف مستشعر الموجات فوق الصوتية وجود شخص قريب.
المكونات المطلوبة
لوحة تجارب
محرك Servo من نوع SG90
مستشعر HC-SR04 المستخدم سابقًا
أسلاك توصيل
النتيجة المتوقعة
نظام حركة ميكانيكي يتم تشغيله استنادًا إلى قراءة المستشعر.
S10 — أساسيات البرمجة — المتغيرات والشروط
المدة: ساعتان
الأهداف التعليمية
استخدام المتغيرات لتخزين بيانات المستشعرات وإعادة استخدامها.
كتابة منطق واضح باستخدام if / else if / else.
المفاهيم
أنواع البيانات int وfloat وbool.
معاملات المقارنة والمعاملات المنطقية.
الشروط المتداخلة.
سهولة قراءة الكود وتنظيمه.
النشاط العملي
إعادة تنظيم كود أحد المشاريع السابقة لاستخدام متغيرات ذات أسماء واضحة وشروط متعددة الفروع بدلاً من القيم الرقمية المكتوبة مباشرة داخل الكود.
التحدي المصغّر
إضافة حالة أو شرط ثالث إلى إحدى الدوائر السابقة، مثل تقسيم مستوى الإضاءة إلى: خافت / متوسط / ساطع.
المكونات المطلوبة
أي دائرة من الجلسات 4–8، مع إعادة استخدام مكوناتها.
النتيجة المتوقعة
كود أكثر تنظيماً ومرونة باستخدام المتغيرات والمنطق الشرطي.
S11 — أساسيات البرمجة — الحلقات والدوال
المدة: ساعتان
الأهداف التعليمية
استخدام حلقات for وwhile لتكرار العمليات.
تنظيم الكود في دوال مخصصة قابلة لإعادة الاستخدام.
المفاهيم
حلقات for مقارنة بـwhile.
تعريف الدوال واستدعاؤها.
المعاملات (Parameters) والقيم المرجعة.
تقسيم الكود إلى وحدات منظمة (Code Modularity).
النشاط العملي
إعادة كتابة برامج اللحن وأنماط وميض LED باستخدام الحلقات، ثم استخراج جزء متكرر من الكود وتحويله إلى دالة مخصصة.
التحدي المصغّر
كتابة دالة playAlert() يمكن لأي دائرة تم بناؤها حتى الآن استدعاؤها لتشغيل تحذير صوتي وضوئي.
المكونات المطلوبة
Arduino Uno
طنان (Buzzer)
LED
أسلاك توصيل
النتيجة المتوقعة
دالة مخصصة قابلة لإعادة الاستخدام ومدمجة ضمن دائرة تعمل بنجاح.
S12 — المشروع الختامي — مشروع جهاز ذكي متكامل
المدة: ساعتان
الأهداف التعليمية
دمج 3 مفاهيم أو أكثر من مفاهيم الدورة في جهاز واحد يعمل بشكل متكامل.
عرض المشروع النهائي وشرح آلية عمله.
المفاهيم
تكامل الأنظمة (System Integration).
استراتيجية اكتشاف الأخطاء وتصحيحها.
تبرير خيارات التصميم.
أساسيات تقديم وعرض المشروع.
النشاط العملي
يعمل الطلاب ضمن فرق لتصميم وبناء جهاز واحد، مثل:
مصباح الحماية الذكي:
LDR + Servo + Buzzer
أو:
إنذار المسافة الذكي:
Ultrasonic + LED + Buzzer
بحيث يجمع المشروع بين الاستشعار واتخاذ القرار وتنفيذ المخرجات.
التحدي المصغّر
عرض الجهاز وتشغيله عمليًا أمام الآخرين، وشرح وظيفة كل مكوّن والأسطر البرمجية الأساسية المستخدمة في المشروع.
المكونات المطلوبة
مجموعة المكونات الكاملة المستخدمة في الجلسات السابقة.
النتيجة المتوقعة بصورة صحيحة وقابل للعرض، مبني باستخدام المفاهيم التي تم تعلمها في Arduino — Level 1.
جهاز ذكي متكامل، يعمل