القائمة الرئيسية

الصفحات

تطوير مشروع Arduino مع VB 2010: من البداية إلى الاحتراف

 يُعد مشروع تطوير نظام باستخدام Arduino مع بيئة البرمجة Vusial basic 2010 تجربة ممتعة ومفيدة لمحبي الإلكترونيات والمبرمجين. يجمع هذا المشروع بين الإلكترونيات والبرمجة لتقديم حل متكامل يمكن استخدامه في العديد من التطبيقات، مثل الأتمتة والتحكم عن بُعد.


في هذا الدرس ستتعلم قراءة البيانات من المنافذ التسلسلية داخل برنامج تم انشاؤه بواسطة فيجوال بيسك 2010 ، وستعرف كذلك طريقة التحقق من منافذ COM المتاحة ، وستعرف كيف ترسل أوامر من الفيجوال بيسك إلى قطعة الأردوينو لتنفيذ المهمات .

في الفيديو قمت بالتحكم في مصابيح الليد من خلال برنامج تم إنشاؤه بلغة vb 2010 أو vb net ، تحكمت في إشعال مصابيح ذات الوان مختلفة ويمكنك تطوير هذا المشروع في التحكم بأجهزة أخرى او مصابيح منزلية ، وتستطيع كذلك قراءة التحليلات التي يتم إدخالها إلى الاردوينو مثل قياس الحرارة والمستشعرات الأخرى المتبطة بقطة arduino .

 


المكونات المطلوبة

  1. لوحة Arduino: يمكن استخدام أي لوحة Arduino مثل Arduino Uno أو Arduino Mega.
  2. برنامج Visual Basic 2010 : يمكنك تنزيل برنامج فيجوال بيسك 2010 من أي جوجل لنظام وندوز .
  3. مصابيح : الحصول على مصابيخ led متعددة الألوان ومن الأفضل لو كانت الألوان الأحمر والأصفر والأزرق والأخضر.
  4. كابل USB: لتوصيل Arduino بالحاسوب.


برمجيات:

Arduino IDE: برنامج لتطوير وتحميل الأكواد إلى لوحة Arduino ، موجود على الموقع الرسمي للأردوينو arduino.cc

Microsoft Visual Basic 2010: لبرمجة واجهة المستخدم والتفاعل مع Arduino ، البرنامج يستحدم لغة البرمجة تسمى فيجوال بيسك وهي أقوى لغة برمجة لأنظمة وندوز ، وأنصح بهذه اللغة كل من يريد إنشاء برامج لنظام وندوز .


خطوات التطوير

  • 1. إعداد Arduino 

تثبيت Arduino IDE: قم بتنزيل وتثبيت Arduino IDE من الموقع الرسمي.

كتابة الكود الأساسي: ابدأ بكتابة كود بسيط على Arduino IDE للتحكم في مكون معين (مثل إضاءة مصابيح LED).

// https://www.tooroq.com
// https://youtu.be/M5D-VbtAZxg

 int ledPin6 = 6; // the number of the LED pin Blue
  int ledPin7 = 7; // the number of the LED pin Green
  int ledPin8 = 8; // the number of the LED pin Yellew
  int ledPin9 = 9; // the number of the LED pin Red

void setup() {
  Serial.begin(9600); // set serial speed

  pinMode(ledPin6, OUTPUT); // set LED as output
  pinMode(ledPin7, OUTPUT); // set LED as output
  pinMode(ledPin8, OUTPUT); // set LED as output
  pinMode(ledPin9, OUTPUT); // set LED as output

  digitalWrite(ledPin6, LOW); //turn off LED
  digitalWrite(ledPin7, LOW); //turn off LED
  digitalWrite(ledPin8, LOW); //turn off LED
  digitalWrite(ledPin9, LOW); //turn off LED
}


void loop(){

     
   while (Serial.available() == 0); // do nothing if nothing sent
   int val = Serial.read() - '0'; // deduct ascii value of '0' to find numeric value of sent number

   if (val == 2) { // test for command 1 then turn on LED
       Serial.println("LED on Blue");
       digitalWrite(ledPin6, HIGH); // turn on LED
 
   }else if (val == 1) { // test for command 0 then turn off LED
        Serial.println("LED OFF Blue");
        digitalWrite(ledPin6, LOW); // turn off LED    
   }



      if (val == 4) { // test for command 1 then turn on LED
       Serial.println("LED on Green");
       digitalWrite(ledPin7, HIGH); // turn on LED
 
   }else if (val == 3) { // test for command 0 then turn off LED
        Serial.println("LED OFF Green");
        digitalWrite(ledPin7, LOW); // turn off LED  
   }



      if (val == 6) { // test for command 1 then turn on LED
       Serial.println("LED on Yellow");
       digitalWrite(ledPin8, HIGH); // turn on LED

   }else if (val == 5) { // test for command 0 then turn off LED
        Serial.println("LED OFF Yellow");
        digitalWrite(ledPin8, LOW); // turn off LED
       
   }



      if (val == 8) { // test for command 1 then turn on LED
       Serial.println("LED on Red");
       digitalWrite(ledPin9, HIGH); // turn on LED
 
   }else if (val == 7) { // test for command 0 then turn off LED
        Serial.println("LED OFF Red");
        digitalWrite(ledPin9, LOW); // turn off LED
   
   }

//   Serial.println(val);
   Serial.flush(); // clear serial port

}

في كل مرة عندما يتم تنفيذ مهمة وقراءة رسالة موجودة على المنفذ التسلسلي والتي تم ارسالها من برنامج الفيجوال بيسك يتم طباعة رسالة في المنفذ التسلسلي بعدها مثل Serial.println("LED on Red") .

تحميل الكود إلى Arduino: قم بتوصيل لوحة Arduino بالحاسوب عبر كابل USB وحمل الكود.


  • 2. إعداد VB 2010

إنشاء مشروع جديد: افتح Visual Basic 2010 وأنشئ مشروع Windows Forms Application جديد.

إضافة المكونات: أضف أدوات مثل الأزرار، النصوص، والأشرطة المنسدلة إلى النموذج (Form) للتحكم في Arduino ونحن استخدمنا :

كائن SerialPort1

Button1

اربعة من PictureBox

TextBox1

ComboBox1

2 أدوات من Label


  • 3. برمجة الاتصال بين VB 2010 و Arduino

إضافة مكتبة SerialPort: في Visual Basic 2010، أضف مكتبة SerialPort للتواصل مع Arduino عبر USB.

إضافة المكتبات التالية

Imports System
Imports System.IO
Imports System.IO.Ports
Imports System.Threading

التحقق من منافذ المتاحة COM وتخزينها في ComboBox1

    Shared _continue As Boolean
    Private WithEvents serialPort As New SerialPort()

    Private Sub Form1_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' الحصول على أسماء البورتات المتاحة
        Dim portNames As String() = serialPort.GetPortNames()

        ' إضافة أسماء البورتات إلى ComboBox1
        ComboBox1.Items.AddRange(portNames)

        ' تحديد العنصر الأول في ComboBox1 بشكل افتراضي إذا كان هناك عناصر
        If ComboBox1.Items.Count > 0 Then
            ComboBox1.SelectedIndex = 0
        End If

    End Sub

تهيئة الاتصال التسلسلي: قم بتهيئة الاتصال التسلسلي في VB 2010وذلك من خلال اختيار COM الذي تم اتصاله مع الاردوينو .


    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        SerialPort1.Close()
        SerialPort1.PortName = ComboBox1.SelectedItem.ToString
        SerialPort1.BaudRate = 9600
        SerialPort1.DataBits = 8
        SerialPort1.Parity = Parity.None
        SerialPort1.StopBits = StopBits.One
        SerialPort1.Handshake = Handshake.None
        SerialPort1.Encoding = System.Text.Encoding.Default 'very important!
    End Sub

إرسال واستقبال البيانات: قم ببرمجة أدوات PictureBox والأحداث لإرسال واستقبال البيانات بين VB وArduino.

نحن أنشأنا 4 الكائنات من  PictureBox والكود متكرر فقط كل مرة نرسل قيمة إلى الاردوينو لتنفيد مهمة او لتشغيل مصباح ليد معين.

    Dim on_red As String = "2"
    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click

        SerialPort1.Open()
        SerialPort1.Write(on_red)

        TextBox1.Text = SerialPort1.ReadLine

        SerialPort1.Close()

        If on_red = "2" Then
            on_red = "1"
            PictureBox1.ImageLocation = "on_blue.jpg"
        Else
            PictureBox1.ImageLocation = "off.jpg"
            on_red = "2"
        End If

    End Sub

قراءة بيانات المنفذ التسلسلي من خلال الأمر SerialPort1.ReadLine وهذافي حالة أردت رد من الاردوينو لأن تلك الرسالة التي تم قراءتها تم ارسالها من الاردوينو عند تنفيذ الكود Serial.println("LED on Red") في السابق على الاردوينو ، ومن خلال هذه الخاصية يمكنك إدخال وطباعة أي نتائج من الاردوينو إلى برنامجك على الفيجوال بيسك .


تجميع المشروع واختباره

اختبار الاتصال: تأكد من أن Arduino يستجيب للأوامر المرسلة من VB 2010.

فيديو يوضح أكثر طريقة استخدام اكواد Arduino والتحكم في مصابيح LED من خلال برامج Vusial basic 2010

من خلال هذا المشروع، يمكن تطوير نظام تحكم بسيط ومفيد باستخدام Arduino وVB 2010. هذا النوع من المشاريع يساعد على فهم أعمق لكيفية تفاعل الأجهزة الإلكترونية مع برمجيات الحاسوب، ويفتح الباب أمام تطبيقات أوسع في مجال الأنظمة والتحكم.


تنزيل جميع الاكواد والأدوات

Mediafire



هل اعجبك الموضوع :

تعليقات



التنقل السريع