انتقل إلى المحتوى

06 · TK-101 · المشاريع

مختبر تواصل الحاسوب: التحكم بـ Arduino من برامج VB.NET عبر المنفذ التسلسلي

تجارب سنة كاملة تربط برنامج Windows مكتوب بـ VB.NET بلوحة Arduino عبر المنفذ التسلسلي: تشغيل خمسة مصابيح ومحرك DC، تدوير محرك سيرفو بشريط تمرير، وقراءة مقاومة متغيرة وحساس ضوء وحساس مسافة بالموجات فوق الصوتية وعرضها على الشاشة.

رسم توضيحي: نموذج VB.NET يتحكم بلوحة Arduino عبر المنفذ التسلسلي
التقنيات
VB.NETWindows FormsSystem.IO.PortsArduinoSerial 9600ServoLDRHC-SR04

المشكلة

الحاسوب يعرض ويقرر، والمتحكم الدقيق يقرأ الحساسات ويشغّل الأحمال. الربط بينهما هو أساس أي واجهة تشغيل (HMI)، والمختبر يبني هذا الربط خطوة خطوة: من أمر بحرف واحد إلى قراءة حساس حية على الشاشة.

الحل وطريقة العمل

كل تجربة لها جانبان: برنامج Arduino، ونموذج Windows Forms بـ VB.NET يستخدم System.IO.Ports.SerialPort بسرعة 9600:

  • اختيار المنفذ: قائمة تُملأ من SerialPort.GetPortNames عند فتحها، وزر Connect/Disconnect يفتح المنفذ ويشغّل مؤقتاً للقراءة.
  • الإخراج: خمسة مصابيح بأزرار تتبدل بين الأحمر والأخضر وترسل أوامر مثل 11 و 10 (رقم المصباح ثم الحالة)، ومحرك DC بأمري 1 و 2، وسيرفو يأخذ زاويته من TrackBar.
  • الإدخال: المقاومة المتغيرة وحساس الضوء LDR يُقرآن بـ analogRead، وحساس HC-SR04 يحسب المسافة من زمن الصدى pulseIn / 57. القيمة تصل إلى البرنامج فيغيّر لون الحقل حسب مدى القيمة، أو يحرك صورة على الشاشة بمقدار المسافة.

التنفيذ والتحديات

التحدي الأساسي هو أن البيانات تصل متقطعة: ReadExisting قد يعيد جزءاً من رقم، فيجب التحقق بـ IsNumeric أو Integer.TryParse قبل استخدامه. وفي مهام الامتحان قُسم مدى القراءة (0 إلى 1023) إلى أربعة نطاقات لكل منها لون. هذه تجارب مختبر جامعي على لوحة Arduino UNO.

المهارات المكتسبة

الاتصال التسلسلي بين الحاسوب والمتحكم، برمجة Windows Forms بـ VB.NET، قراءة الحساسات التناظرية والرقمية على Arduino، التحكم بالسيرفو ومحرك DC، وتصميم بروتوكول أوامر بسيط.