Nội Dung Bài Viết
Để bắt đầu tiến hành tạo giao diện GUI MATLAB điều khiển Arduino. Chúng ta cần cài phần mềm MATLAB và cài gói support package hỗ trợ cho Arduino để tạo ra một giao tiếp với bo Arduino. Các bạn có thể tải và xem hướng dẫn cài MATLAB tại đây. Xem hướng dẫn thiết lập gói support package hỗ trợ cho Arduino tại bài viết.
Trước khi tiến hành tạo GUI MATAB, chúng ta cần tìm hiểu một chút về GUI.
GUI MATLAB.
Giới thiệu
GUI được viết tắt của từ “Graphical User Interface” dịch theo tiếng việt nôm na là Giao diện người dùng đồ họa.
GUI bao gồm các nút nhấn, hộp liệt kê, thanh trượt, menu… Chúng cung cấp cho người dùng sử dụng một môi trường làm việc thân thiện, để họ tập trung vào các ứng dụng của chương trình hơn là đi tìm hiểu cách thức làm việc của chương trình đó.
Để mở công cụ tạo GUI : File –> New –> GUI. Hoặc tại cửa sổ Command Window gõ lệnh: Guide.
Khi lưu giao diện vừa tạo, Matlab sẽ tạo ra hai file có cùng tên nhưng khác phần mở rộng:
- File có phần mở rộng .fig chứa nội dung của giao diện.
- File có phần mở rộng .m chứa những đoạn mã liên quan đến giao diện.
Khi thiết kế bất cứ thành phần nào của GUI ta cần thiết lập thuộc tính cho thành phần đó.
Để thiết lập các thuộc tính ta có thể chọn mục “ Property Inspector” trên thanh công cụ hoặc Right-click vào đối tượng và chọn mục “Inspector Properties”.
Hai thuộc tính quan trọng mà ta cần xác lập là “String Property” và “ Tag Property”.
- String property : dòng ký tự xuất hiện trên đối tượng.
- Tag property : tên của đối tượng.
Khi click chuột vào 1 đối tượng, Matlab sẽ gọi hàm tương ứng với đối tượng đó. Tên của hàm chính là tên của đối tượng cộng với “_Callback”.
Các hàm thường xuyên được sử dụng trong GUI
- Set : Thay đổi giá trị của các thuộc tính của một đối tượng giao diện set(handles.TextBox,‟String‟,str).
- Get : Truy xuất giá trị của thuộc tính của một đối tượng giao diện get(handles.EditBox,‟String‟)
- Ngoài ra còn có các hàm như axes, guide, num2str(), str2num()…
Tạo giao diện GUI điều khiển một LED
Trong ví dụ mở đầu hướng dẫn tạo GUI điều khiển Arduino này. Chúng ta sẽ học làm thế nào để tạo GUI (Graphical User Interface) để điều khiển một LED kết nối với Arduino Uno.
Những thứ các bạn cần có để thực hành theo hướng dẫn:
- Arduino Uno hoặc một loại bo Arduino khác
Ở bài hướng dẫn này tôi sử dụng LED trên chân 13 của Arduino Uno. Bằng cách kết nối với D13 trên Arduino.
Bây giờ chúng ta tiến hành tạo giao diện GUI thôi nào.
Mở phần mềm MATLAB, tại cửa sổ Command Window gõ lệnh: >> guide để tạo GUI.
Chọn Blank GUI (Default) từ GUIDE templates –> OK.
Từ hộp công cụ toolbox bên trái cửa sổ GUIDE, kéo thả công cụ button push được đánh dấu trong khung màu đỏ. sau đó bạn có thể thay đổi kích thước và kéo thả đến vị trị mong muốn. Làm tương tự với các button khác. Một button để turn on LED và một button khác để turn off LED.
Click chuột phải vào một button –> Property Inspector.
Trong cửa sổ Property Inspector thay đổi BackGroundColor. Thay đổi thành màu xanh lá cho button turn on, màu đỏ cho button turn off.
Sau đó cuộn Property Inspector xuống và thay đổi string name. Button được dùng để turn on LED, tôi thay đổi tên string thành ON. Ngoài ra bạn có thể thay đổi tên của đối tượng tại Tag. Do chương trình không quá phức tạp nên tôi để mặt định là pushbutton1. Những thuộc tính khác bạn có thể tìm hiểu thêm nhé. Tương tự cho button dùng để turn off tôi thay đổi tên string thành OFF.
Sau khi tạo xong và tùy chỉnh thuộc tính tôi được giao diện như hình dưới đây.
Sau đó Save giao diện GUI vừa tạo với tên GUI_Led_Control. Bạn thấy có 2 file mới được tạo ra: GUI_Led_Control.fig và GUI_Led_Control.m.
Nhiệm vụ tiếp theo của chúng ta là là làm việc với file .m, chèn những đoạn code để thực tác vụ từ những button.
Khi Save giao diện GUI vừa tạo thì GUI_Led_Control được tạo và tự động mở trong cửa sổ MATLAB.
Cuộn thanh cuộn điều hướng đến dòng cuối function varargout và thêm dòng clear all; và khai báo thêm một biến phần cứng cho Arduino.
Trước khi thêm tùy chỉnh code
Sau khi đã tùy chỉnh code
Lệnh clear all; giúp xóa bỏ tất cả các chức năng hiện đang truy cập Arduino từ Matlab. Khai báo một biến toàn cục a, biến này sẽ được sử trong các function khác, gán biến toàn cục a cho phần cứng arduino.
Sau khi tùy chỉnh phần trên. Chúng ta tiến hành tủy chỉnh code cho chức năng nút nhấn. Khi ta nhấn nút nhấn MATLAB phải làm việc với Arduino thông qua chức năng ta đã định nghĩa cho nút nhấn đó. Bây giờ tùy chỉnh code cho nút nhấn đầu tiền, nút nhấn ON và OFF.
Trước khi tùy chỉnh code
Sau khi tùy chỉnh code
Trong tùy chỉnh câu lệnh code ở trên, gọi biến toàn cục chứa phần cứng Arduino và hàm writeDigitalPin giúp bật hoặc tắt LED dựa trên giá trị mà ta áp dụng cho hàm (a,’D13′,1). a là phần cứng Arduino, D13 là chân kết nối với led, 1 là kéo pin lên mức cao, 0 là kéo pin xuống mức thấp.
Bây giờ bạn Save file .m vừa chỉnh sửa lại.
Kết nối Arduino với máy tính của bạn. Bạn có thể tìm thấy icon Run trong tab Editor để chạy chương trình.
Sau khi RUN chương trình, bạn nhấn vào button ON và quan sát thấy LED trên chân 13 sẽ sáng, nhân vào button OFF LED sẽ tắt.
Chúc các bạn thành công.
Download file
Bài viết các bạn có thể tham khảo:
- Điều khiển Arduino sử dụng GUI MATLAB: RGB LED Color Mixing
- Lập trình GUI MATLAB điều khiển động cơ DC sử dụng cầu H L298D
- Lập trình GUI MATLAB vẽ đồ thị nhiệt độ từ LM35 với công cụ Axes