الدرس الأول تطبيقات الحماية الذكية ولغة ++C (٣)
انظر إلى الشيفرة البرمجية أعلى الصفحة: لدينا دالة رئيسية main تبدأ بتعريف متغيرين a يساوي ٢ و b يساوي ٥، ثم نستدعي الدالة adding ونمرر لها هذين المتغيرين كمعاملات، ليتم تخزين الناتج في المتغير c وطباعته عبر أمر الطباعة. انظر إلى الصندوق الأزرق: دالة main تعيد قيمة عدد صحيح عبر تعبير return 0 اختيارياً، وهي دالة خاصة لا تقبل معاملات إدخال ويُشار إليها بأقواس فارغة. أما إن أردت دالة لا ترجع أي قيمة، فاستخدم نوع الإرجاع فارغاً كما ترى في مثال دالة displyNumber. في أسفل الصفحة، انظر إلى دالتين أساسيتين في منصة تينكركاد: الأولى هي دالة setup وتُنفذ مرة واحدة فقط في بداية تشغيل البرنامج لضبط أطراف الأردوينو، والثانية هي دالة loop التي تستدعى بشكل متكرر لتشكل الوظيفة الرئيسية المكررة للدائرة.
يركز الدرس على بناء الدوال واستخدامها في لغة C++ وتحديداً داخل منصة تينكركاد لتنفيذ برامج الأردوينو. تتعلم كيف تنشئ دالة رئيسية main ترجع قيمة عدد صحيحة، أو دالة فارغة void لا ترجع قيمة. وتتعرف على دالتين أساسيتين في الأردوينو وهما setup التي تنفذ مرة واحدة لتكوين المتغيرات والأطراف، وloop التي تتكرر باستمرار لتشغيل البرنامج. كما يعرض الدرس مفاهيم البرمجة الكائنية Object-Oriented Programming مثل الفئات Class والكائنات Object والوظائف Methods، حيث تمثل الفئة القالب ويُمثل الكائن نسخة مفردة منه تنفذ إجراءات محددة مثل محركات سيرفو. مثال سريع: عندما تكتب void setup وتضع بداخلها تعريف المتغيرين a و b بقيم عشرة وعشرين، فإن الأردوينو ينفذ هذا التكوين مرة واحدة عند بداية التشغيل.
الفكرة الأساسية
تدور فكرة الدرس حول تنظيم الأوامر البرمجية في لغة C++ عبر الدوال المخصصة، وتطبيق البرمجة الكائنية للتعامل مع المكونات الإلكترونية في منصة تينكركاد.
الشرح
تتألف برامج الأردوينو من دالتين رئيسيتين لا غنى عنهما. الأولى هي دالة setup وتنفذ مرة واحدة فقط عند بدء تشغيل البرنامج، ومهمتها تكوين المتغيرات والأطراف الرقمية. الثانية هي دالة loop وتعمل بشكل متكرر أثناء عمل النظام لتكون الوظيفة الرئيسية للدائرة. إلى جانب ذلك، تعتمد لغة C++ على البرمجة الكائنية التي تبني العمليات على أساس الكائنات. الكائن هو الوحدة الأساسية للبرمجة وله خصائص مثل الاسم والنوع، ووظائف تنفذ الإجراءات مثل تدوير المحرك. الفئة Class هي القالب العام بينما الكائن Object هو النسخة الفعلية أو ما يسمى عادة تسمية العينة Instance.
مثال محلول خطوة بخطوة
إذا أردت إنشاء ثلاثة محركات سيرفو متصلة بلوحة الأردوينو، فاتبع الآتي:
- أعلن عن فئة المحركات السيرفو بطلب قالب الفئة الأساسي.
- أنشئ ثلاثة كائنات مستقلة من هذه الفئة لتسمية العينات الثلاثة للمحركات.
- استخدم دالة setup مرة واحدة في بداية البرنامج لضبط أطراف هذه المحركات.
- اكتب أوامر الحركة داخل دالة loop لضمان تكرارها باستمرار أثناء تشغيل الدائرة.
أخطاء شائعة
- الخلط بين دالة setup ودالة loop من حيث عدد مرات التنفيد، باعتقاد أن الأولى تتكرر باستمرار والثانية تعمل مرة واحدة فقط.
- إعلان الكائن داخل جسم الفئة نفسها بدلاً من الإعلان عن الفئة أولاً ثم اشتقاق الكائن منها.
سؤالان للتدريب مع الإجابة
السؤال الأول: متى تنفذ دالة setup في برنامج الأردوينو؟ الإجابة: تنفذ مرة واحدة فقط في البداية لتكوين المتغيرات والأطراف. السؤال الثاني: ماذا يمثل الكائن في البرمجة الكائنية؟ الإجابة: يمثل الوحدة الأساسية للبرمجة التي لها خصائص ووظائف أساسية وتعتبر عينة من الفئة.