Lập trình các ứng dụng trên KIT ARDUINO bằng ngôn ngữ MATLA

66 12 0
Lập trình các ứng dụng trên KIT ARDUINO bằng ngôn ngữ MATLA

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THƠNG LẬP TRÌNH CÁC ỨNG DỤNG TRÊN KIT ARDUINO BẰNG NGÔN NGỮ MATLAB GVHD: ThS NGUYỄN DUY THẢO SVTH: LƯƠNG ĐỨC HẬU MSSV: 12141077 SVTH: LÊ HIỂN ĐẠT MSSV: 12141046 SKL004539 Tp Hồ Chí Minh, tháng 07/2016 BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THƠNG ĐỀ TÀI: LẬP TRÌNH CÁC ỨNG DỤNG TRÊN KIT ARDUINO BẰNG NGÔN NGỮ MATLAB GVHD: ThS.Nguyễn Duy Thảo SVTH: Lương Đức Hậu Lê Hiển Đạt MSSV: 12141077 12141046 Tp Hồ Chí Minh – 7/2016 BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP - ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THƠNG ĐỀ TÀI: LẬP TRÌNH CÁC ỨNG DỤNG TRÊN KIT ARDUINO BẰNG NGÔN NGỮ MATLAB GVHD: ThS.Nguyễn Duy Thảo SVTH: Lương Đức Hậu Lê Hiển Đạt MSSV: 12141077 12141046 Tp Hồ Chí Minh – 7/2016 PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Thông tin sinh viên Họ tên: Lương Đức Hậu Tel: 01685348286 Họ tên: Lê Hiển Đạt Tel: 01699700466 Thông tin đề tài Tên đề tài: LẬP TRÌNH CÁC ỨNG DỤNG TRÊN KIT ARDUINO BẰNG NGÔN NGỮ MATLAB Mục đích đề tài: Sử dụng kit Ardunio Uno R3 lập trình ứng dụng ngơn ngữ Matlab Đồ án tốt nghiệp thực tại: Bộ môn Điện Tử Công Nghiệp, Khoa Điện Điện Tử, Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh Thời gian thực hiện: Từ ngày 10/3/2016 đến 2/7/2016 Các nhiệm vụ cụ thể đề tài - Tìm hiểu Kit Arduino - Tìm hiểu Matlab cài đặt Arduino Matlab - Giao tiếp với chân I/O - Giao tiếp với chân PWM - Giao tiếp I2C - Giao tiếp SPI - Điều khiển động servo motor - Đo lường vẽ đồ thị từ cảm biến - Viết luận văn Lời cam đoan sinh viên Chúng – Lương Đức Hậu Lê Hiển Đạt cam đoan ĐATN cơng trình nghiên cứu thân hướng dẫn thạc sỹ Nguyễn Duy Thảo Các kết công bố ĐATN trung thực không chép từ cơng trình khác Tp.HCM, ngày 31 tháng năm 2016 SV thực đồ án Lương Đức Hậu Xác nhận Bộ Môn Lê Hiển Đạt Tp.HCM, ngày 31 tháng năm 2016 Giáo viên hướng dẫn (Ký ghi rõ họ tên học hàm học vị) LỊCH TRÌNH Họ tên sinh viên 1: Lương Đức Hậu Lớp: 12141DT1A Họ tên sinh viên 2: Lê Hiển Đạt Lớp: 12141DT1A Tên đề tài: LẬP TRÌNH CÁC ÚNG DỤNG TRÊN KIT ARDUINO BẰNG NGÔN NGỮ MATLAB Tuần/ngày Tuần Tuần Tuần Tuần Tuần Tuần Tuần Tuần Tuần Tuần 10 GV HƯỚNG DẪN (Ký ghi rõ họ tên) LỜI CAM ĐOAN Đề tài tự thực dựa vào số tài liệu trước khơng chép từ tài liệu hay cơng trình có trước Người thực đề tài Lương Đức Hậu Lê Hiển Đạt LỜI CẢM ƠN Trong thời gian làm đồ án tốt nghiệp, chúng em nhận nhiều giúp đỡ đóng góp ý kiến bảo nhiệt tình thầy cơ, gia đình bạn bè Chúng em xin gửi lời cảm ơn chân thành đến Th.s Nguyễn Duy Thảo- trường ĐH Sư Phạm Kỹ Thuật TPHCM tận tình hướng dẫn bảo suốt thời gian làm luận án tốt nghiệp Xin chân thành cảm ơn thầy cô giáo trường ĐH Sư Phạm Kỹ Thuật TPHCM nói chung, thầy Bộ mơn Điện Tử Cơng Nghiệp nói riêng dạy dỗ cho chúng em kiến thức môn đại cương môn chuyên ngành, giúp chúng em có sở lý thuyết vững vàng tạo điều kiện giúp đỡ chúng em suốt trình học tập Cuối cùng, chúng em xin chân thành cảm ơn gia đình bạn bè, ln tạo điều kiện, quan tâm, giúp đỡ, động viên em suốt trinh học tập hoàn thành luận án tốt nghiệp Xin chân thành cảm ơn! Người thực đề tài Lương Đức Hậu Lê Hiển Đạt MỤC LỤC Trang bìa i Phiếu giao nhiệm vụ đồ án ii Lịch trình đồ án iii Phiếu đánh giá GVHD iv Nhiệm vụ đồ án tốt nghiệp v Cam đoan vi Lời cảm ơn vii Mục lục viii Liệt kê hình vẽ x Liệt kê bảng vẽ……… xi Tóm tắt xiii CHƯƠNG TỔNG QUAN 1.1 Đặt vấn đề 1.2 Mục tiêu 1.3 Nội dung nghiên cứu 1.4 Giới hạn 1.5 Bố cục CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu phần cứng 2.1.1 Kit Ardunio 2.1.2 Module PCF8591 2.1.3 Động servo 2.2 Lập trình Arduino Matlab 2.2.1 Tổng quan Matlab 2.2.2 Hướng dẫn cài đặt Arduino Matlab 2.2.3 Kết nối Arduino với Matlab 2.3 Mô Ardunio Protues 10 2.3.1 Giới thiệu 10 2.3.2 File.Hex 10 2.3.1 Giới thiệu Protues 10 2.3.4 Thư viện cho Protues 11 viii CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ 14 3.1 Giới thiệu 14 3.2 Tính tốn thiết kế hệ thống 14 3.2.1 Thiết kế sơ đồ khối hệ thống 14 3.2.2 Tính tốn thiết kế mạch 16 3.2.2 Sơ đồ nguyên lý toàn mạch 19 CHƯƠNG THI CÔNG HỆ THỐNG 20 4.1 Giới thiệu 20 4.2 Thi công hệ thống 20 4.2.1 Lắp ráp test chương trình ứng dụng 20 4.3 Lập trình hệ thống 20 4.3.1 Viết chương trình cho ứng dụng 20 4.4 Mô kit Arduino Uno Protues 39 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 50 5.1 Kết 50 5.2 Nhận xét đánh giá 50 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 51 6.1 Kết luận 51 6.2 Hướng phát triển 51 TÀI LIỆU THAM KHẢO 52 ix LIỆT KÊ HÌNH VẼ Hình Trang Hình 2.1: Sơ đồ chân Arduino Uno Hình 2.2: Module PCF8591 Hình 2.3: Động servo Hình 2.4: Get Hardware Support Package Hình 2.5: Giao diện Support Package Installer Hình 2.6: Giao diện cài Package cho Arduino Hình 2.7 Giao diện MathWorks Account Log In Hình 2.8: Giao diện kết nối Arduino Matlab Hình 2.9: Arduino IDE 11 Hình 2.10: File menu 12 Hình 2.11: Sketch menu 12 Hình 3.1: Sơ đồ khối tổng quát 14 Hình 3.2: Ảnh thực tế 15 Hình 3.3: Sơ đồ kết nối Arduino với led đơn 16 Hình 3.4: Sơ đồ kết nối led nút nhấn 16 Hình 3.5: Kết nối led RGB với Arduino 17 Hình 3.6: Sơ đồ kết nối biến trở 17 Hình 3.7: Module PCF8591 kết nối với Arduino 18 Hình 3.8:Sơ đồ kết nối servo motor với phần cứng 18 Hình 3.9: Sơ đồ ngun lý tồn mạch 19 Hình 4.1: Cửa số viết code Matlab 20 Hình 4.2: Kết led đơn 22 Hình 4.3: Led RGB Anode chung 24 Hình 4.4: Tín hiệu ngõ led RGB 25 Hình 4.5: Màu đỏ 26 Hình 4.6: Màu xanh 26 Hình 4.7: Màu xanh dương 26 Hình 4.8: Kết đèn sáng mờ 28 Hình 4.9: Kết đèn sáng mạnh 28 Hình 4.10:Biến trở 28 x CHƯƠNG THI CÔNG HỆ THỐNG disp([thermistor, photo, potentiometer]); end end function adc = read_adc(dev,config) write(dev,config); read(dev,1); out = read(dev, 1); adc = out; end function exitprogram(b) clear b; close all; disp(' program has exit'); end Lưu chương trình: sensing.m Phần dựa liệu đọc từ cảm biến phần mà cịn có thêm hiển thị đồ thị thời gian thực Kết thực thi: Hình 4.23 Đồ thị từ cảm biến BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP CHƯƠNG THI CƠNG HỆ THỐNG 4.3.2 Mơ Kit Arduino Uno Proteus: a Giao tiếp Arduino với số linh kiện điện tử  Led nhấp nháy Sơ đồ kết nối: Hình 4.24 Arduino với Led đơn mơ Code chương trình: int ledPin = 2; void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000); } Sau gõ code vào chương trình soạn thảo bạn cần click để kiểm tra lỗi Tạo File Hex Cần phải tạo file Hex để cung cấp cho Proteus bấm play chương trình hoạt động Cách tạo file Hex Arduino IDE sau: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP CHƯƠNG THI CÔNG HỆ THỐNG Click vào File chọn Preferences Bạn check vào compilation: Hình 4.25 Arduino Preferences Sau bạn nhấn Chương trình tạo cho bạn file Hex Để lấy đươc file Hex làm bước sau: Bước 1: Mở tập tin C:\Program Files\Arduino\lib\preferences.txt Notepad Bước 2: Thêm dòng lệnh sau vào file preferences.txt: build.path = ( đường dẫn đến thư mục mà bạn muốn chứa file hex sau Arduino hoàn tất q trình biên dịch) dịng: build.path=C:\User\le\Desktop\build Hình 4.26 Preference Notepad Bước 3: Các bạn bấm vào check , hồn thành ta có file Hex Sau cần nạp Code hoàn tất: Bấm vào nơi lưu file hex chọn tiếp Open, OK Play Giải thích chương trình int ledPin = 2; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP CHƯƠNG THI CÔNG HỆ THỐNG Khai báo giá trị biến integer ledPin = void setup() { pinMode(ledPin, OUTPUT); } Trong Arduino sketch cần phải có hàm setup() loop() khơng có chương trình báo lỗi Hàm Setup() chạy lần kể từ bắt đầu chương trình Hàm có chức thiết lập chế độ vào, cho chân digital hay tốc độ baund cho giao tiếp Serial Cấu trúc hàm pinMode() sau: pinMode(pin,Mode); pin : vị trí chân digital Mode: chế độ vào ( INPUT), (OUTPUT) Lệnh pinMode(ledPin, OUTPUT); Lệnh thiết lập chân số board chân ngõ (OUTPUT) Nếu không khai báo “ int ledPin = 9; ” viết cách sau ý nghĩa không thay đổi: pinMode(9, OUTPUT); Bắt buộc khai báo hàm loop() Arduino IDE Hàm vịng lặp vơ hạn void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); HỌC VIỆN HÀNG KHÔNG SV: NGUYỄN TRUNG TÍN 17 delay(1000); } Hàm digitalWrite( ledPin, HIGH); lệnh có ý nghĩa xuất chân digital có tên ledPin ( chân 9) mức cao ( HIGH), mức cao tướng ứng volt delay(1000); Lệnh tạo khoảng trễ với thời gian giây Trong hàm delay() IDE 1000 tương ứng với giây digitalWrite(ledPin, LOW); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP CHƯƠNG THI CÔNG HỆ THỐNG Cũng giống digitalWrite( ledPin, HIGH); lệnh xuất chân ledPin mức thấp (LOW) tức volt Và tiếp tục hàm delay() Như thấy chương trình thực tắt sáng led liên tục không ngừng trừ ta ngắt nguồn  Đèn sáng nhấn phím - Sơ đồ kết nối: Hình 4.27 Điều khiển nút nhấn Chương trình: const int buttonPin = 12; const int ledPin = 2; int buttonState = LOW; void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); } void loop(){ buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); }} BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP CHƯƠNG THI CÔNG HỆ THỐNG  - Điều khiển nhiều Led Sơ đồ kết nối: Hình 4.28 Điều khiển nhiều led mơ Chương trình Led sáng dồn từ trái sang phải ngược lại: byte ledPin[] = {2,3,4,5,6,7,8,9}; byte pinCount; int i,j,k; void setup() { pinCount = sizeof(ledPin); for (int i=0;i

Ngày đăng: 26/12/2021, 17:46

Tài liệu cùng người dùng

Tài liệu liên quan