1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI TẬP LỚN MÔN ĐO LƯỜNG VÀ ĐIỀU KHIỂN MÁY TÍNH ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG CÁC GIAO TIẾP NỐI TIẾP VÀ GIAO TIẾP USB BẰNG QT C++

12 34 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 1,82 MB

Nội dung

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA BÀI TẬP LỚN MÔN ĐO LƯỜNG VÀ ĐIỀU KHIỂN MÁY TÍNH ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG CÁC GIAO TIẾP NỐI TIẾP VÀ GIAO TIẾP USB BẰNG QT C++ LỚP L01 HK 212 G.

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA BÀI TẬP LỚN MÔN ĐO LƯỜNG VÀ ĐIỀU KHIỂN MÁY TÍNH ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG CÁC GIAO TIẾP NỐI TIẾP VÀ GIAO TIẾP USB BẰNG QT C++ LỚP L01 - HK 212 Giảng viên hướng dẫn: Ts Nguyễn Hoàng Giáp Sinh viên thực hiện: Châu Trí Viễn MSSV: 1912434 Đánh giá mức độ hồn thành: BTL Mức độ hoàn thành Link GitHub BTL1: Giao tiếp Serial Port 100% https://github.com/Vienchau/SerialPort_GUI_study BTL2: Giao tiếp Serial Port điều khiển động 100% https://github.com/Vienchau/MOTOR_CONTROL BTL3: Giao tiếp USB điều khiển động 70% https://github.com/Vienchau/USBCOMMUNICATION-QT Thành phố Hồ Chí Minh – 2022 BTL1: Giao tiếp Serial Port với board STM32 Mô tả tổng quan phần cứng Ở tập lớn 1, phần cứng bao gồm module: USB UART CP2102, board STM32F103 Các Module kết nối với để giao tiếp Serial Port Về Firmware, code gen CUBEMX lập trình IDE KeilC, có tham khảo nhiều từ, chủ yếu kiến thức từ giảng viên mơn Hình Generate code CUBEMX Về Software, giao diện người dùng (GUI) viết tảng QT C++ hệ điều hành Windows Giao diện có frame truyền dựa phần firmware tham khảo giảng viên mơn Hình Giao diện phầm mềm QT Phần mềm QT C++ Thiết kế GUI hỗ trợ mạnh Qt Designer, giao diện GUI sau: Hình Giao diện thiết kế kéo thả QT Designer Giao diện bao gồm Label biểu thị chữ, QcomboBox để chọn thông số Serial Port, QpushButton để giao tiếp, gửi nhận Ngồi cịn có QradioBox để chọn cấu hình led Về phần code, ta thêm thử viện serialport vào file pro để tích hợp thư viện QT hỗ trợ SerialPort Hình Thêm thư viện serialport QT Ở phần code mainwindow.cpp, ta connect signal serialport để giao tiếp serial port sau: Hình Hàm connect để signal từ cổng serialport, có signal từ port, gọi hàm serial_read() Hàm serial_read(): Hình Sử dụng readAll() từ class để đọc tín hiệu từ SerialPort Ngồi cịn có hàm để gửi data đến port từ máy tính hàm Writes(), khâu xử lý nhận gửi tham khảo src đính kèm Github Kết quả, giao diện sau hồn thành giao tiếp serial port với phần cứng, video demo đính kèm thư mục nộp (BTL1.mp4): Hình Giao diện sau hoàn thành BTL2: Giao tiếp Serial Port với board STM32F407 điều khiển động Mô tả tổng quan phần cứng Ở tập lớn này, Firmware viết CubeIDE Sofware đươc viết Qt 5.15 C++ Thực hệ điều hành Ubuntu (Linux) Tương tự trước, mặt Firmware có tham khảo từ giảng viên môn Phần Software sinh viên tự viết, framework dựa phần Firmware để phát triển Hình Giao diện CubeIDE tảng Ubuntu Hình Phần cứng sử dụng BTL2 Phần cứng sử dụng STM32F407, động Encoder GM37, L298N USB UART CP2102 Phần mềm QT C++ Software tương tự trước, với thư viện serialport file pro, ta sử dụng thêm thư viện printsupport để dùng qcustomplot vẽ đồ thị QcustomPlot thư viện mã nguồn mở hỗ trợ Qt Framework mạnh mẹ (từ 6.0 trở xuống) Chi tiết truy cập https://www.qcustomplot.com/ Hình 10 Giới thiệu QCustomPlot Cũng tương tự BTL1, ta tạo UI QT Designer: Hình 11 Giao diện kéo thả tạo QT Designer Giao tiếp serialport tương tự BTL1, bên cạnh đó, ta cần vẽ đề thị qcustomplot, số hàm set up init sau: Hình 12 Hàm plotSetting() để chỉnh sửa số thông số đồ thị Hình 13 Hàm plotConfig() dể init đồ thị, hình init PID plot Các đồ thị lại tương tự Kết quả, giao diện cho có khả giao tiếp serial port để điều khiển động thu thập số liệu để vẽ đồ thị PID, position, velocity accelerometer Video demo src code có đính kèm với thư mục nộp có link github sinh viên bao gồm src code đính kèm Hình 14 Giao diện sau thiết kế hoàn thiện code BTL3: Giao tiếp USB với board STM32F407 điều khiển động Mô tả tổng quan phần cứng BTL3 bao gồm phần cứng BTL2, ngồi có thêm cáp USB giao tiếp với STM32F407 Về mặt phần mềm SW, ta có thay đổi thư viện để đọc VendorID… Còn Firmware từ BTL2, ta thêm setup USB sau: Hình 15 Chỉnh sửa config lại CUBEMX để giao tiếp USB Ngồi ra, ta cịn thay đổi src code phần firmware sau để giao tiếp USB: Hình 16 Thay đổi firmware, xóa func không cần thiết uart Phần mềm QT C++ Phần mềm thêm group để đọc thông số sau: Hình 17 Một phần thêm vào thiết kế giao diện QT Designer Về phần mềm SW, BTL sinh viên thực 70% có trục trặc Encoder Động Bên cạnh đó, sinh viên dùng thêm số Class QserialPortInfo để đọc VendorID… Hình 18 Đoạn code sử dụng Class QSerialPortInfo để đọc thông số VendorID… Kết với video demo BTL3.mp4, SW kết nối gửi thơng số tới STM32F407 qua USB được, ngồi nhận thống số VendorID Vì lí trục trặc phần cứng, sinh viên chưa debug chỉnh sửa thêm Hình 19 Giao diện nhận gửi PID thành cơng Hình 20 Thông tin port hiển thị GUI ... Hình 14 Giao diện sau thiết kế hoàn thiện code BTL3: Giao tiếp USB với board STM32F407 điều khiển động Mô tả tổng quan phần cứng BTL3 bao gồm phần cứng BTL2, ngồi có thêm cáp USB giao tiếp với... Software, giao diện người dùng (GUI) viết tảng QT C++ hệ điều hành Windows Giao diện có frame truyền dựa phần firmware tham khảo giảng viên mơn Hình Giao diện phầm mềm QT Phần mềm QT C++ Thiết... Firmware để phát triển Hình Giao diện CubeIDE tảng Ubuntu Hình Phần cứng sử dụng BTL2 Phần cứng sử dụng STM32F407, động Encoder GM37, L298N USB UART CP2102 Phần mềm QT C++ Software tương tự trước,

Ngày đăng: 02/11/2022, 09:02

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w