Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
3,25 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO TIỂU LUẬN MÔN HỌC: ĐO LƯỜNG VÀ ĐIỀU KHIỂN BẰNG MÁY TÍNH Đề tài: Kết nối Simulink realtime Matlab Vi xử lí (Arduino or Arduino) Tp Hồ Chí Minh, tháng 2021 Tieu luan I Thiết kế hardware linh kiện cần thiết Sơ đồ thiết kế mô thu thập truyền liệu (digital and analog input/output) Sơ đồ thiết kế mô mạch điều khiển động DC có encoder Bảng giá số linh kiện STT Tên linh kiện Arduino uno R3 atmega16u2 Số lượng Tieu luan Đơn giá 180.000đ/cá i Thành tiền 180.000đ (TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino) Module điều khiển độn DC L298N 31.000đ/cái 31.000đ Động DC encoder 60rpm 205.000đ/cá i 205.000đ Dây cắm 28.000đ/bó 28.000 Led 5MM 3000đ/cái 6000đ Điện trở Chiết áp 2000đ/cái 2000đ Dip switch 3000đ/cái 3000đ II Sơ đồ nguyên lí, giải thích khối chức (TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino) Tieu luan (TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino) Đối với toán thu thập truyền liệu Sơ đồ nguyên lí: Arduino Serial Port Simulink Send/Receive Các khối chức sử dụng: •Simulink: Ta sử dụng khối sau Thiết lập thời gian mô so với thời gian thực Thiết lập cổng COM cho arduino Đọc giá trị digital từ chân arudino tương ứng Ghi giá trị digital từ chân arudino tương ứng Đọc giá trị analog từ chân arudino tương ứng Ghi giá trị analog từ chân arudino tương ứng •Proteus: Bênh cạnh link kiện mô phỏng, ta cần sử dụng thêm khối COMPIM để mô giao tiếp nối tiếp với cổng COM máy tính Đối với tốn điều khiển động DC (TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino) Tieu luan (TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino) Sơ đồ ngun lí: Các khối chức sử dụng: •Arduino Uno: là board mạch vi điều khiển phát triển Arduino.cc, tảng điện tử mã nguồn mở chủ yếu dựa vi điều khiển AVR Atmega328P Với Arduino có thể xây dựng ứng dụng điện tử tương tác với nhau thông qua phần mềm phần cứng hỗ trợ Các chân input-output Arduino uno Chức đề tài này: (TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino) Tieu luan (TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino) Read and Write xử lý tín digital, analog Đọc tín hiệu encoder gửi để tính tốc độ động Send/Receive data với Software Matlab kết nối Serial port •Mạch cầu L298N: trình điều khiển động H-Bridge kép cho phép điều khiển tốc độ hướng hai động DC lúc Mơ-đun điều khiển động DC có điện áp khoảng từ đến 35V, với dòng điện cực đại lên đến 2A Mơ-đun có hai nhóm chân cho động A B, chân cho chân Ground, VCC cho động chân 5V đầu vào đầu Chân IN1, IN2điều khiển hướng quay tốc độ động PWM IN1 đầu vào khác động quay theo chiều kim đồng hồ Vf ngược lại Chân ENA phép động hoạt động •Động tích hợp encoder :Encoder có chức quay theo động dc sử dụng để xác định tốc độ động cơ, hướng quay động hai xung A, B gửi cho Arduino xử lí III Các module sử dụng, lưu đồ giải thuật (flowchart) (TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino) Tieu luan (TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino) Đối với toán thu thập truyền liệu Lưu đồ giải thuật: •Đọc/ghi liệu Simulink arduino: Bên gửi: Khởi động phần cứng Đọc liệu từ ngõ vào Truyền liệu qua serial port Kết thúc Bên nhận: Khởi động phần cứng Chờ nhận nhận data Đầy buffer N Y Kết thúc Các Modulde sử dụng: +Arduino Uno +COMPIM (TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino) Tieu luan (TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino) Bài toán điều khiển động DC Lưu đồ giải thuật: Bắt đầu Simulink nhận giá trị ngõ từ Arduino Tính tốn sai số giá trị đặt giá trị ngõ Tính tốn tín hiệu điều khiển Gửi tín hiệu điều khiển xuống arduino Chờ tới lần lấy mẫu Các module sử dụng: + Arduino uno R3 + L298 Các hàm giao thức -readFromMatlab(): Nhận liệu gửi từ Software Maltlab xuống qua Serial Port (TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino) Tieu luan (TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino)(TIEU.LUAN).TIEU.LUAN.mon.hoc.do.LUONG.va.dieu.KHIEN.BANG.may.TINH.de.tai.ket.noi.simulink.realtime.matlab.va.vi.xu.li.(arduino.or.arduino) float readFromMatlab() { int reln = Serial.readBytesUntil("\r\n", buf, buffer_size); for (int i=0; i