C sharp (C#) - Một cách điều khiển ARDUINO bằng máy tính !!!

Mô tả dự án: 

Bài viết sẽ hướng dẫn các bạn cách điều kiểu ARDUINO trên máy tính bằng phần mềm được tạo bằng ngôn ngữ C# trên công cụ hỗ trợ Microsoft Visual Studio. Thay cho cách điều kiển thông thường trên máy tính là dùng Serial Monitor, giờ đây chúng ta có thể thiết kế phần mềm với cái nhìn trực quan chuyên nghiệp hơn phù hợp với những dự án lớn, hay các dự án mang tính tự động hóa điều kiển bằng máy tính

Giới thiệu

Mình trích dẫn Wikipedia 

Microsoft Visual Studio

Microsoft Visual Studio là một môi trường phát triển tích hợp (IDE) từ Microsoft. Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web. Visual Studio sử dụng nền tảng phát triển phần mềm của Microsoft như Windows APIWindows FormsWindows Presentation FoundationWindows Store và Microsoft Silverlight. Nó có thể sản xuất cả hai ngôn ngữ máy và mã số quản lý.

C# (đọc là "C thăng" hay "C sharp" ("xi-sáp")) là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu số thường. Microsoft phát triển C# dựa trên C++ và Java. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++,Visual BasicDelphi và Java.

Nếu như bạn nào vẫn chưa rõ thì có thể tìm hiểu trên Wikipedia nha !

Chuẩn bị

Phần cứng tương tự như những dự án bật tắt led bình thường

Nối dây

Thiết kế phần mềm

Trên màn hình của Microsoft Visual C# nhấp chọn ToolBox rồi kéo thả các đối tượng: Button, serialPort, Label, ComboBox, Timer,….như giao diện. Sau đó nhấp đúp chuột vào các đối tượng để viết code cho từng đối tượng

Code

Code cho Visual C#

// Code điều khiển by Đỗ Hữu Toàn ( bạn của Đinh Hồng Thái )
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
// Phần trên là phần khởi tạo mặc định bạn không cần quan tâm
using System.IO.Ports; // Thêm dòng Code này để dùng lệnh với Serial.Port

namespace Dieukhien
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e) // Khi phần mềm được mở
        {
            comboBox1.DataSource = SerialPort.GetPortNames();//Quét các cổng Serial đang hoạt động lên ComboBox1

        }

        private void button1_Click(object sender, EventArgs e)// 
        {
            if (!serialPort1.IsOpen) // Nếu đối tượng serialPort1 chưa được mở , sau khi nhấn button 1 thỳ…
            {
                
                serialPort1.PortName = comboBox1.Text;//cổng serialPort1 = ComboBox mà bạn đang chọn
                serialPort1.Open();// Mở cổng serialPort1
                
                
            }
        private void button4_Click(object sender, EventArgs e)// 
            {
                
                serialPort1.Close();//Đóng cổng Serial sau khi button 4 được nhấn
            }

        }

        private void button2_Click(object sender, EventArgs e)
        {
            serialPort1.Write("2");//Nếu button2 được nhấn,gửi byte “1” đến cổng serialPort1
        }

        private void button3_Click(object sender, EventArgs e)
        {
            serialPort1.Write("1");//gửi byte “0” đến cổng serialPort1
        }

        private void tácGiảToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Phần mềm được viết bởi Ðỗ Hữu Toàn (Bạn của Ðinh Hồng Thái)", "Tác giả");// Nếu MenuTrip tác giả được nhấn thỳ hiện lên hộp thoại 
        }

        private void thoátToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit(); // Nếu ấn thoát…Thoát chương trình
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (!serialPort1.IsOpen) { 
                button1.Text = ("Kết nối");
                label3.Text = ("Chưa kết nối");
                label3.ForeColor = Color.Red;
//Nếu Timer được làm mới, Cổng serialPort1 chưa được mở thì thay đổi Text trong button1, label3…đổi màu text label3 thành màu đỏ 
            } 
            else if (serialPort1.IsOpen) { 
              button1.Text = ("Ngắt kết nối");
              label3.Text = ("Ðã kết nối");
              label3.ForeColor = Color.Green;
//Nếu Timer được làm mới, Cổng serialPort1 đã mở thì thay đổi Text trong button1, label3…đổi màu text label3 thành màu xanh

             } 
        }
       
    }
}

Code Arduino

int val;
int led = 13;
void setup() {
    pinMode(led, OUTPUT);
    Serial.begin(9600);
}
void loop() {
    while (Serial.available()) {
        val = Serial.read();
        Serial.println(val);
        delay(200);
    }
    if (val == '1') {
        digitalWrite(led, LOW);
    } else if (val == '2') {
        digitalWrite(led, HIGH);
    }
}

Link tải phần mềm mà bọn mình đã thiết kế (mirror)

lên
38 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Gửi và nhận dữ liệu từ arduino và smartphone qua bluetooth

Bài viết này sẽ hướng dẫn các bạn dùng smartphone làm MONITOR hoặc vừa MONITOR vừa điều kiển thiết bị, một ví dụ cực đơn giản.

lên
46 thành viên đã đánh giá bài viết này hữu ích.

Bộ điều khiển PID - giới thiệu thuật toán phần 1

Hôm nay mình sẽ giới thiệu với các bạn một thuật toán được sử dụng rộng rãi có thể là ngay xung quanh các bận đang có thiết bị sử dụng thuật toán này. nôm na là thuật toán này giúp thiết bị của bạn điều kiển đến yêu cầu của bạn một cách nhanh nhất chính xác nhất ít sai số mình không nói nhiều về cách xây dựng công thức hay blala về lí thuyết mình chỉ có ý định giới thiệu về ứng dụng của nó và lượng kiến thức của học sinh cấp 3 chắc chắn có sai sót mong mọi người thông cảm góp ý.  

lên
31 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: