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

Bộ điều khiển PID - ứng dụng phần 2 - xe dò line dùng thuật toán PID

Tiép nối bài viết về xe dò line cảm ơn Đỗ Hữu Toàn đã viết hộ mình phần 4. hôm nay mình sẽ làm cho chiếc xe dò line đi mượt và có hồn hơn 

lên
34 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Làm xe dò line với module tự làm. Phần 1 - Tại sao không ?

Bài viết sẽ hướng dẫn các bận tất tật cách để tạo ra một chiếc xe dò line " đi theo vạch " đơn giản chi phí thấp. Với module tự làm " do mình không có điều kiện để sắm module nên toàn tự làm để sài và lấy kinh nghiệm luôn" hì không có $ để làm dự án khủng hay đẹp cho các bạn thông cảm nha

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

Giới thiệu mô-đun Voice Recognition Module V3 ( điều kiển giọng nói với ARDUINO )

Bài viết sẽ gới thiệu với các bạn về một mô-đun nhận giạng giọng nói. Với mô-đun này các bạn có thể tạo ra nhiều sản phẩm rất ứng dụng với mình, mình sẽ ứng dụng nó cho người khuyết tật như điều khiển thiết bị bằng giọng nói trong thời gian thực.

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