- Thành phần bắt buộc
- Sơ đồ mạch
- Giao tiếp Bluetooth bằng Cửa sổ lệnh MATLAB
- Giao tiếp Bluetooth bằng MATLAB GUI
Bluetooth là giao thức đơn giản và phổ biến nhất để giao tiếp không dây tầm ngắn trong các hệ thống nhúng. Bluetooth không chỉ được sử dụng để truyền dữ liệu từ thiết bị này sang thiết bị khác mà còn được sử dụng để điều khiển thiết bị không dây. Ngày nay, hầu hết mọi thiết bị điện tử đều có hỗ trợ Bluetooth, vì vậy bạn nên chọn tùy chọn điều khiển Bluetooth trong ứng dụng nhúng của mình.
Ở đây trong hướng dẫn này, chúng ta sẽ học cách sử dụng Bluetooth trong MATLAB để giao tiếp không dây. Chúng tôi sẽ sử dụng Bluetooth tích hợp của máy tính với MATLAB ở một bên và HC-05 với Arduino ở bên kia. Có hai cách để thiết lập giao tiếp giữa MATLAB và Arduino qua Bluetooth, một là sử dụng cửa sổ lệnh và cách khác là sử dụng MATLAB GUI. Mã Arduino cho cả hai phương pháp sẽ được giữ nguyên. Nếu bạn chưa quen với MATLAB thì bạn nên bắt đầu với chương trình nhấp nháy đèn LED đơn giản với MATLAB và tìm hiểu các thuật ngữ cơ bản được sử dụng trong MATLAB. Bạn có thể khám phá thêm các Dự án MATLAB khác:
- Giao tiếp nối tiếp giữa MATLAB và Arduino
- Điều khiển động cơ DC bằng MATLAB và Arduino
- Điều khiển động cơ bước bằng MATLAB và Arduino
- Bắt đầu với Xử lý hình ảnh bằng MATLAB
Thành phần bắt buộc
- Máy tính xách tay đã cài đặt MATLAB (Tùy chọn: phiên bản R2016a trở lên)
- Arduino UNO
- Mô-đun Bluetooth (HC-05)
- LED (bất kỳ màu nào)
- Điện trở (330 ohm)
- Dây nhảy
Để tìm hiểu thêm về HC-05 và giao diện của nó với Arduino, hãy xem các bài viết sau.
- Động cơ Servo được điều khiển bằng Bluetooth sử dụng Arduino
- Đèn LED điều khiển bằng giọng nói sử dụng Arduino và Bluetooth
- Điện thoại di động AC điều khiển bằng Arduino và Bluetooth
Sơ đồ mạch
Sơ đồ giao tiếp Bluetooth giữa MATLAB và Arduino được đưa ra dưới đây:
Giao tiếp Bluetooth bằng Cửa sổ lệnh MATLAB
Đây là phương pháp đơn giản để thiết lập giao tiếp Bluetooth giữa Arduino và MATLAB. Ở đây, MATLAB sử dụng bluetooth của máy tính xách tay để kết nối HC-05 được kết nối với Arduino. Đầu tiên, chúng ta phải viết mã Arduino để đọc dữ liệu đến từ MATLAB (sử dụng Bluetooth của máy tính xách tay).
Sau đó, dữ liệu được truyền qua Bluetooth này từ MATLAB có thể được sử dụng để điều khiển bất kỳ thứ gì được kết nối với Arduino. Ở đây chúng tôi đã kết nối một đèn LED với Arduino có thể được điều khiển từ LAPTOP bằng MATLAB.
Đầu tiên, tải lên mã Arduino đã cho trong Arduino UNO và sau đó bắt đầu viết mã trong Cửa sổ lệnh MATLAB.
#include
Sau đó, sao chép và dán mã MATLAB bên dưới vào cửa sổ Lệnh cho giao tiếp Bluetooth giữa MATLAB và Arduino.
Guidhwinfo ('Bluetooth', 'HC-05'); bt = Bluetooth ('HC-05', 1); fopen (bt);
Trong đoạn mã dưới đây, lệnh fprintf (bt, '0') được sử dụng để TẮT đèn LED bằng cách gửi '0' đến Arduino. Bây giờ, nếu bạn muốn BẬT đèn LED, chỉ cần gửi '1' thay vì '0' bằng lệnh dưới đây.
fprintf (bt, '1');
Để kiểm tra thông tin về phần cứng khả dụng, hãy sử dụng lệnh dưới đây
guidehwinfo ('type', 'Name of device');
Để mở cổng bluetooth, sử dụng lệnh bên dưới
fopen (bt);
Xem video bên dưới để hiểu toàn bộ quy trình Gửi dữ liệu từ MATLAB tới Arduino bằng Bluetooth.
Giao tiếp Bluetooth bằng MATLAB GUI
Để trình diễn Giao tiếp Bluetooth bằng MATLAB GUI, chúng tôi sẽ tạo ba nút đồ họa trong MATLAB để bật, tắt và nhấp nháy đèn LED được kết nối với Arduino. Dữ liệu sẽ được gửi qua bluetooth từ MATLAB đến HC-05 khi nhấp vào các nút đồ họa đó. Arduino chứa mã để nhận dữ liệu được truyền qua Bluetooth từ MATLAB đến HC-05 và điều khiển đèn LED theo dữ liệu nhận được. Mã Arduino sẽ vẫn giống như trước, chỉ khác là trước đây chúng ta gửi dữ liệu '1' và '0' thông qua cửa sổ lệnh của MATLAB, và bây giờ dữ liệu tương tự sẽ được gửi khi nhấp vào ba nút đồ họa.
Để khởi chạy GUI, hãy nhập lệnh dưới đây vào cửa sổ lệnh
hướng dẫn
Một cửa sổ bật lên sẽ mở ra, sau đó chọn GUI trống mới như được hiển thị trong hình ảnh bên dưới,
Bây giờ chọn ba nút để BẬT, TẮT và Nhấp nháy đèn LED, như hình dưới đây,
Để thay đổi kích thước hoặc thay đổi hình dạng của các nút bấm, chỉ cần nhấp vào nó và bạn sẽ có thể kéo các góc của nút. Bằng cách nhấp đúp vào nút bấm, bạn có thể thay đổi màu sắc, chuỗi và thẻ của nút cụ thể đó. Chúng tôi đã tùy chỉnh ba nút bấm như thể hiện trong hình dưới đây.
Bạn có thể tùy chỉnh các nút theo sự lựa chọn của mình. Bây giờ khi bạn lưu nó, một mã sẽ được tạo trong cửa sổ Editor của MATLAB. Chỉnh sửa mã này theo nhiệm vụ bạn muốn thực hiện bởi Arduino của bạn khi nhận dữ liệu Bluetooth bằng MATLAB GUI. Vì vậy, dưới đây chúng tôi đã chỉnh sửa mã MATLAB. Bạn có thể tìm hiểu thêm về Cửa sổ lệnh, cửa sổ trình soạn thảo, v.v. trong hướng dẫn Bắt đầu với MATLAB.
Mã MATLAB hoàn chỉnh, để điều khiển LED từ MATLAB qua Bluetooth, được đưa ra ở cuối dự án này. Hơn nữa, chúng tôi bao gồm tệp GUI (.fig) và tệp mã (.m) tại đây để tải xuống, sử dụng tệp này bạn có thể tùy chỉnh các nút theo yêu cầu của mình. Dưới đây là một số tinh chỉnh chúng tôi đã thực hiện để điều khiển đèn LED được kết nối với Arduino.
Sao chép và dán đoạn mã dưới đây vào dòng số. 74 để thiết lập hoặc kết nối MATLAB với Bluetooth của Máy tính xách tay.
Làm sạch tất cả; bt toàn cầu; Guidhwinfo ('Bluetooth', 'HC-05'); bt = Bluetooth ('HC-05', 1); fopen (bt);
trong đó, fopen (bt) được sử dụng để mở cổng Bluetooth để truyền dữ liệu.
Bây giờ, khi bạn cuộn xuống, bạn sẽ thấy rằng có ba chức năng được tạo cho ba nút bấm trong GUI. Bây giờ viết mã trong các chức năng theo tác vụ bạn muốn thực hiện khi nhấp chuột.
Trong chức năng của nút BẬT LED , hãy sao chép và dán đoạn mã dưới đây ngay trước khi kết thúc chức năng để BẬT đèn LED. Trong mã dưới đây, fprintf (bt, '1') được sử dụng để gửi '1' từ MATLAB đến HC-05 bằng Bluetooth của máy tính xách tay. Arduino sẽ nhận dữ liệu '1' này thông qua HC-05 và phát sáng đèn LED bằng cách đặt chân thứ 11 của nó CAO.
bt toàn cầu; fprintf (bt, '1');
Trong chức năng của nút TẮT LED , hãy sao chép và dán đoạn mã dưới đây ngay trước khi kết thúc chức năng để TẮT đèn LED. Trong mã dưới đây, fprintf (bt, '0') được sử dụng để gửi '0' từ MATLAB đến HC-05 bằng Bluetooth của máy tính xách tay. Arduino sẽ nhận '0' thông qua HC-05 và tắt đèn LED bằng cách đặt chân thứ 11 của nó THẤP.
bt toàn cầu; fprintf (bt, '0');
Trong chức năng của nút BLINK , sử dụng mã dưới đây để nhấp nháy đèn LED. Một cho vòng lặp được sử dụng để nhấp nháy đèn LED 10 lần.
bt toàn cầu; cho i = 1:10 fprintf (bt, '1'); tạm dừng (0,5); fprintf (bt, '0'); tạm dừng (0,5); kết thúc
Sau khi hoàn thành với mã hóa MATLAB GUI và thiết lập phần cứng theo sơ đồ mạch, chỉ cần nhấp vào nút chạy để chạy mã đã chỉnh sửa trong tệp.m.
MATLAB có thể mất vài giây để phản hồi, không nhấp vào bất kỳ nút GUI nào cho đến khi MATLAB hiển thị chỉ báo BẬN, bạn có thể thấy ở góc dưới bên trái của màn hình như hình dưới đây,
Khi mọi thứ đã sẵn sàng, hãy nhấp vào nút BẬT LED, TẮT LED và nút BLINK để BẬT, TẮT và Nhấp nháy đèn LED tương ứng. Tất cả các tệp mã cho dự án này có thể được tải xuống từ đây hoặc bạn có thể sử dụng mã được cung cấp bên dưới.
Xem video bên dưới để hiểu toàn bộ quy trình Gửi dữ liệu từ MATLAB tới Arduino qua Bluetooth bằng MATLAB GUI.