Thông tin đề tài Tên của đề tài: LẬP TRÌNH CÁC ỨNG DỤNG TRÊN KIT ARDUINO BẰNG NGÔN NGỮ MATLAB.. Hồ Chí Minh, ngày 31 tháng 3 năm 2016 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Bản lịch trì
Trang 1KHOA Đ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
S K L 0 0 4 5 3 9
Trang 2KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP
12141046
Tp Hồ Chí Minh – 7/2016
Trang 3KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP
Trang 41 Thông tin sinh viên
Họ và tên: Lương Đức Hậu MSSV: 12141077
Tel: 01685348286 Email: hauluong9@gmail.com
Họ và tên: Lê Hiển Đạt MSSV: 12141046
Tel: 01699700466 Email: hiendat94@gmail.com
2 Thông tin đề tài
Tên của đề tài: LẬP TRÌNH CÁC ỨNG DỤNG TRÊN KIT ARDUINO BẰNG NGÔN NGỮ MATLAB
Mục đích của đề tài: Sử dụng được kit Ardunio Uno R3 và lập trình các ứng dụng bằng ngôn ngữ Matlab
Đồ án tốt nghiệp được thực hiện 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
3 Các nhiệm vụ cụ thể của đề tài
- Tìm hiểu Kit Arduino
- Tìm hiểu Matlab và cài đặt Arduino trên Matlab
- Giao tiếp với các chân I/O
- Giao tiếp với các chân PWM
- Giao tiếp I2C
- Giao tiếp SPI
- Điều khiển động cơ servo motor
- Đo lường vẽ đồ thị từ cảm biến
- Viết luận văn
4 Lời cam đoan của sinh viên
Chúng tôi – Lương Đức Hậu và Lê Hiển Đạt cam đoan ĐATN là công trình nghiên cứu của bản thân chúng tôi dưới sự hướng dẫn của thạc sỹ Nguyễn Duy Thảo
Các kết quả công bố trong ĐATN là trung thực và không sao chép từ bất kỳ công
trình nào khác
Tp.HCM, ngày 31 tháng 3 năm 2016
SV thực hiện đồ án
Lương Đức Hậu Lê Hiển Đạt
Xác nhận của Bộ Môn Tp.HCM, ngày 31 tháng 3 năm 2016
Giáo viên hướng dẫn
(Ký ghi rõ họ tên và học hàm học vị)
Trang 5Khoa Điện - Điện Tử Độc lập - Tự do - Hạnh phúc
Bộ Môn Điện Tử Công Nghiệp
Tp Hồ Chí Minh, ngày 31 tháng 3 năm 2016
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
(Bản lịch trình này được đóng vào đồ án)
Họ tên sinh viên 1: Lương Đức Hậu
Tuần 2 Tìm hiểu hoạt động Arduino và Matlab
Tuần 3 Cài đặt Matlab và cài Arduino trên
Matlab(đọc thêm phần help về Arduino trên Matlab)
Tuần 4 Lập trình Arduino với các chân I/O qua ví dụ,
lập trình với các chân PWM trên Arduino Tuần 5 Lập trình giao tiếp với chuẩn I2C
Tuần 6 Lập trình giao tiếp với chuẩn SPI
Tuần 7 Lập trình điều khiển động cơ Servo motor
Tuần 8 Đo lường và vẽ đồ thị từ cảm biến
Tuần 9 Viết luận văn
Tuần 10 Chỉnh sửa, in đồ án
GV HƯỚNG DẪN (Ký và ghi rõ họ và tên)
Trang 6Đề tài này là do tôi tự thực hiện dựa vào một số tài liệu trước đó và không sao chép từ tài liệu hay công trình đã có trước đó
Người thực hiện đề tài Lương Đức Hậu
Lê Hiển Đạt
Trang 7đỡ đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô, gia đình và 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 chỉ bảo trong 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 trong trường ĐH Sư Phạm Kỹ Thuật TPHCM nói chung, các thầy cô trong 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 các môn đại cương cũng như các môn chuyên ngành, giúp chúng em có được cơ sở lý thuyết vững vàng và tạo điều kiện giúp đỡ chúng em trong suốt quá trình học tập
Cuối cùng, chúng em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện, quan tâm, giúp đỡ, động viên em trong suốt quá trinh học tập và hoàn thành luận án tốt nghiệp
Xin chân thành cảm ơn!
Người thực hiện đề tài
Lương Đức Hậu
Lê Hiển Đạt
Trang 8Trang bìa i
Phiếu giao nhiệm vụ đồ án ii
Lịch trình đồ án iii
Phiếu đánh giá của 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 1 TỔNG QUAN 1
1.1 Đặt vấn đề 1
1.2 Mục tiêu 1
1.3 Nội dung nghiên cứu 1
1.4 Giới hạn 1
1.5 Bố cục 2
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 3
2.1 Giới thiệu phần cứng 3
2.1.1 Kit Ardunio 3
2.1.2 Module PCF8591 5
2.1.3 Động cơ servo 6
2.2 Lập trình Arduino bằng Matlab 6
2.2.1 Tổng quan về Matlab 6
2.2.2 Hướng dẫn cài đặt Arduino trên nền Matlab 7
2.2.3 Kết nối Arduino với Matlab 9
2.3 Mô phỏng Ardunio bằng 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
Trang 93.1 Giới thiệu 14
3.2 Tính toán và 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 toán và thiết kế mạch 16
3.2.2 Sơ đồ nguyên lý toàn mạch 19
CHƯƠNG 4 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 và test chương trình trên từng ứng dụng 20
4.3 Lập trình hệ thống 20
4.3.1 Viết chương trình cho từng ứng dụng 20
4.4 Mô phỏng kit Arduino Uno trên Protues 39
CHƯƠNG 5 KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 50
5.1 Kết quả 50
5.2 Nhận xét và đánh giá 50
CHƯƠNG 6 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
Trang 10Hình Trang
Hình 2.1: Sơ đồ chân Arduino Uno 4
Hình 2.2: Module PCF8591 5
Hình 2.3: Động cơ servo 6
Hình 2.4: Get Hardware Support Package 7
Hình 2.5: Giao diện Support Package Installer 8
Hình 2.6: Giao diện cài Package cho Arduino 8
Hình 2.7 Giao diện MathWorks Account Log In 9
Hình 2.8: Giao diện kết nối Arduino và Matlab 9
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 và 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ơ đồ nguyên lý toàn mạch 19
Hình 4.1: Cửa số viết code trên Matlab 20
Hình 4.2: Kết quả led đơn 22
Hình 4.3: Led RGB Anode chung 24
Hình 4.4: Tín hiệu ngõ ra của led RGB 25
Hình 4.5: Màu đỏ 26
Hình 4.6: Màu xanh lá 26
Hình 4.7: Màu xanh dương 26
Hình 4.8: Kết quả đèn sáng mờ 28
Hình 4.9: Kết quả đèn sáng mạnh 28
Trang 11Hình 4.12: Địa chỉ I2C 31
Hình 4.13: Giá trị của thermistor, photo, potentiometer 33
Hình 4.14: Kết nối SPI Loopback 33
Hình 4.15: Giá trị ngõ vào ra của SPI 35
Hình 4.16: Giá trị thay đổi của động cơ trên Matlab…… ……… 36
Hình 4.17: Đồ thị từ cảm biến 39
Hình 4.18: Ardunio với led đơn mô phỏng 39
Hình 4.19 Arduino Preferences 40
Hình 4.20 Preference Notepad 41
Hình 4.21 Điều khiển bằng nút nhấn 43
Hình 4.22 Điều khiển nhiều bằng led mô phỏng 44
Hình 4.23 Điều khiển động cơ PWM 46
Hình 4.24 Đo nhiệt độ hiển thị LCD 16x2 47
Hình 4.25 Điều khiển động cơ bằng mô phỏng 48
Trang 12Bảng Trang
Bảng 2.1: Thông số kỹ thuật của Arduino Uno……….14
Trang 13Đề tài “LẬP TRÌNH CÁC ÚNG DỤNG TRÊN KIT ARDUINO BẰNG NGÔN NGỮ MATLAB” chủ yếu tập trung nghiên cứu kit Arduino Uno R3 và các ứng dụng Lập trình bằng ngôn ngữ Matlab cho kit Arduino Uno R3 Ngoài ra đề tài còn khai thác
sự mô phỏng kit Arduino trên phần mềm Protues giống như bộ thí nghiệm ảo cho các môn Điện tử cơ bản, kỹ thuật số
Trang 14Chương 1: TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Ngày nay, việc áp dụng các board có sẵn để làm các dự án trong đời sống không còn
xa lạ Board Arduino là một trong số đó, các ứng dụng từ nó được xây dựng và phát triển rất nhiều, mã nguồn mở,mức độ tiếp cận kit Arduino khá dễ dàng Nhưng đa số các ứng dụng từ kit Arduino được lập trình từ Arduino IDE, để đem lại sự mới mẻ và mang đến một công cụ lập trình mới, mạnh mẽ hơn, đó là ngôn ngữ Matlab.Vì vậy, nhóm thực
hiện chọn đề tài: “LẬP TRÌNH CÁC ỨNG DỤNG TRÊN KIT ARDUINO BẰNG
NGÔN NGỮ MATLAB”
1.2 MỤC TIÊU
Đề tài chủ yếu tập trung nghiên cứu kit Arduino Uno R3, thực hiện ứng dụng của nó, lập trình các ứng dụng bằng ngôn ngữ Matlab Thực hiện mô phỏng Arduino trên phần mềm Proteus
1.3 NỘI DUNG NGHIÊN CỨU
Những phần chính của đề tài: “LẬP TRÌNH CÁC ỨNG DỤNG TRÊN KIT
ARDUINO BẰNG NGÔN NGỮ MATLAB”
Tìm hiểu và cài đặt Arduino
Cài đặt Arduino trên nền Matlab
Trang 151.5 BỐ CỤC
Chương 1: Tổng quan (Trình bày cách chọn đề tài, mục tiêu đề tài sẽ đạt được, giới
hạn nội dung nghiên cứu Thể hiện bố cục đồ án thông các chương mục.)
Chương 2: Cơ sở lý thuyết (Giới thiệu Arduino, lập trình Arduino bằng ngôn ngữ
Matlab Trình bày cách mô phỏng Arduino trên phần mềm Proteus.)
Chương 3: Thiết kế và tính tóan (Chương này gồm giao tiếp với các chân I/O, giao
tiếp với PWM và Analog, giao tiếp với chuẩn I2C, giao tiếp với chuẩn SPI, điều khiển động cơ Servo, đo lường và vẽ đồ thị từ cảm biến trong thời gian thực Thực hiện mô phỏng Arduino trên Proteus)
Chương 4: Kết quả, Nhận xét và Đánh giá
Chương 5: Kết luận và Hướng phát triển
Trang 16Chương 2 CƠ SỞ LÝ THUYẾT
bộ điều chỉnh tuyến tính 5V và một thạch anh dao động 16 MHz, các board Arduino hiện tại được lập trình thông qua cổng USB
2.1.1.2 Board Arduino Uno
Board Arduino Uno đưa ra 14 chân I/O kỹ thuật số, 6 chân có thể tạo xung PWM và
6 chân input analog, có thể sử dụng như là 6 chân I/O số.Chúng có 2 mức điện áp là 0V
và 5V với dòng vào/ra tối đa trên mỗi chân là 30 mA
Trang 17
Vi điều khiển Atmega328P họ 8 bit
Điện áp hoạt động 5V
Điện áp đầu vào khuyên dùng 7-12V
Điện áp đầu vào giới hạn 6-20V
Số chân Digital I/O 14( có 6 chân PWM)
Số chân Analog 6 ( độ phân giải 10bit)
DC current per I/O pin 20mA
DC current for 3.3V pin 50mA
Flash Memory 32KB( ATmega328P) với 0.5KB sử dụng bootloader
Bảng 2.1 Thông số kỹ thuật Arduino Uno
USB(1): Cổng USB dùng để kết nối với máy tính và thông qua đó để upload chương trình cho Arduino từ máy tính, ngoài ra nó cũng cấp nguồn cho Arduino
Nguồn(2 và 4): Sử dụng jack cấm nguồn 2.1mm( cực dương ở giữa)hoặc có thể dùng chân Vin và GND để cấp nguồn cho Arduino Board mạch hoạt động ở điện áp ngoài khoảng 5-20V, nhưng nếu cấp nguồn lớn hơn 5V thì ngõ ra chân 5V sẽ lớn hơn, không nên cấp nguồn lớn hơn 12V vì board sẽ nóng và dễ bị hỏng Chân 5V và chân 3.3v là
2 chân lấy nguồn từ Arduino ra ngoài, không được cấp nguồn vào nó, sẽ làm hỏng
Hình 2.1 Sơ đồ chân Arduino Uno
Trang 18 Chip Atmega328P(6): Có 32KB bộ nhớ flash trong đó có 0.5KB dùng cho bootloader, 2KB SRAM, 1KB EEPROM
Output và input(3 và 5): Arduino có 14 chân Digital với các chức năng Input và Output, trên 14 chân này còn có 1 số tính năng sau:
Serial: Chân 0(RX), chân 1(TX) Hai chân này dùng để truyền(TX) và nhận (RX) dữ
liệu nối tiếp TTL, có thể giao tiếp với cổng COM với các thiết bị cùng chuẩn
PWM: Các chân 3,5,6,9,10,11 là các chân có dấu “~” là các chân PWM dùng để điều
khiển tốc độ động cơ, độ sáng bóng đèn
SPI: 10(SS), 11(MOSI), 12(MISO), 13(SCK) các chân này hỗ trợ chuẩn giao tiếp
SPI
I2C: A4 (SDA) và A5 (SCL) cho phép Arduino giao tiếp với các thiết bị có chuẩn
giao tiếp I2C
2.1.2 Module PCF8591
PCF8591 là một IC tích hợp 2 chức năng là bộ chuyển đổi tín hiệu tương tự sang tín hiệu số và ngược lại, một nguồn cung cấp riêng biệt, công suất thấp, độ phân giải 8bit, giao tiếp theo chuẩn I2C.Thông số kỹ thuật:
Nguồn cấp:2,5V-6V
Dòng tiêu thụ thấp
Chuyển đổi qua chuẩn I2C bus serial in/out
Tích hợp cảm biến quang, xuất giá trị analog của cường độ ánh sáng môi trường xung quanh
Tích hợp cảm biến nhiệt độ, xuất giá trị analog của nhiệt độ môi trường xung quanh
Tích hợp bộ đọc cảm biến analog với dải hoạt động 0-5V
Hình 2.2.Module PCF8591
Trang 19 SCL: ngõ vào xung clock kết nối với cổng I/O của vi điều khiển
SDA: ngõ vào số kết nối với cổng I/O của vi điều khiển
GND:nối với đất nguồn 0V
VCC: nối với nguồn 3.3V-5V
2.1.3 Động cơ Servo
Servo là động cơ không giống như động cơ thông thường cứ cắm điện vào là quay liên tục, servo chỉ quay khi được điều khiển bằng xung PPM với góc quay nằm trong khoảng bất kỳ từ 00 – 1800 Mỗi loại servo có kích thước,khối lượng và cấu tạo khác nhau.Có loại thì nặng chỉ 9g( chủ yếu là trên máy bay mô hình), có loại thì nặng vài chục Newton/m
Hình 2.3 Động cơ servo 2.2 Lập trình Arduino bằng matlab
2.2.1 Tổng quan về Matlab
Matlab (Matrix Laboratory ) là một môi trường tính toán số và lập trình, được thiết
kế bởi công ty MathWorks.Matlab cho phép người dùng tính toán ma trận, vẽ đồ thị làm
số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diên người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác Matlab giúp đơn giản hóa việc giải quyết các bài toán tính toán kỹ thuật so với các ngôn ngữ lập trình truyền thống như C,C++, và Fortran
Trang 20Matlab được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh, truyền thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài chính, hay tính toán sinh học.Matlab cung cấp giải pháp chuyên dụng gọi là Toolbox Toolbox là một tập hợp toàn diện các hàm của Matlab (M-file)
Hệ thống Matlab gồm 5 phần chính:
Ngôn ngữ Matlab: cho phép lập trình từ các ứng dụng nhỏ đến phức tạp
Môi trường làm việc: bao gồm các phương tiện cho việc quản lý các biến trong không gian làm việc Workspace cũng như xuất nhập dữ liệu Nó cũng bao gồm các công cụ phát triển, quản lý, gỡ rối và định hình M-file
Xử lý đồ họa: bao gồm các lệnh cao cấp cho trực quan hóa dữ liệu hai chiều và
mô phỏng các hệ thống động phi tuyết, mô phỏng mạch
2.2.2 Hướng dẫn cài đặt Arduino trên nền Matlab
Matlab có hỗ trợ các Package từ phần cứng Ardunio và giao tiếp với nhau thông qua cổng USB.Các gói Package được tạo ra dựa trên hoạt động của các chương trình trên board, nó có hỗ trợ trên môi trường như Windows, Mac OS, Linux Trong phần này nhóm chỉ tập trung vào giao tiếp giữa Ardunio và Matlab.Để cài đặt gói Package làm như sau:
Trang 21Từ giao diện Matlab, click vào Add-Ons chọn Get Hardware Support Package
Hình 2.4 Get Hardware Support Package
Sau đó hộp thoại mới sẽ hiện ra, chọn Install from Internet
Hình 2.5.Giao diện Support Package Installer
Sau đó chọn vào Arduino và tick vào cài đặt các Package
Hình 2.6 Giao diện cài Package cho Arduino
Trang 22Sau khi cài đặt xong thì tạo tài khoản MathWorks để đăng nhập
Hình 2.7 Giao diện MathWorks Account Log In
Sau khi đăng nhập vào và nhấn Next đến khi tải và cài đặt xong nhấn Finish
2.2.3 Kết nối Arduino với Matlab
Trên Command Window gõ lệnh:
Trang 232.3 Mô phỏng Arduino bằng Protues
2.3.1 Giới thiệu:
Trước đây để thực hiện những ứng dụng trên Arduino thì chúng ta phải dùng Arduino kết nối với máy tính, kết nối phần cứng , viết chương trình trên IDE sao đó nhúng xuống phần cứng xem kết quả Nhưng từ khi proteus cho phép mô phỏng Arduino, thì việc tiếp cận học lập trình nó cũng dễ dàng hơn, thực hiện nhanh trên mô phỏng để thấy được quá trình chạy của nó Vấn đề chúng ta cần tìm hiểu là cách tạo ra file HEX trên phần mền Arduino IDE, thư viện linh kiện Arduino, sau đó là nạp chương trình vào proteus và xem kết quả đạt được
2.3.2 File Hex là gì?
Hex ở đây được viết tắt bởi từ hexadecimal có nghĩa là hệ cơ số 16 hay hệ thập lục phân Khi viết code và nạp chương trình cho vi điều khiển (cụ thể với board Arduino UNO là ATMEGA 328) thì không đơn thuần là nạp những "câu lệnh" bạn viết ra đưa vào vi điều khiển, mà phải thông qua trình biên dịch (Aruduino IDE, Code Vision, Keil C đều là trình biên dịch) "dịch" lại những gì mình viết và tạo ra một chuỗi kí tự gồm những chữ (từ A đến F) và số (từ 0 đến 9) thuộc hệ thập lục phân Những chữ số này nạp vào vi điều khiển thì vi điều khiển mới "hiểu" được Những chữ số này được đóng gói và lưu lại thành một file có đuôi mở rộng là ".hex" Sao khi có file HEX thì ta nạp vào mô phỏng là xong
2.3.3 Giới thiệu về proteus
Proteus là phần mềm cho phép mô phỏng hoạt động của mạch điện tử bao gồm phần thiết kế mạch và viết chương trình điều khiển cho các họ vi điều khiển như MCS-51, PIC, AVR Proteus là phần mềm mô phỏng mạch điện tử của Lancenter Electronics, mô phỏng cho hầu hết các linh kiện điện tử thông dụng, đặc biệt hỗ trợ cho cả các MCU như PIC, 8051, AVR, Motorola
Phần mềm bao gồm 2 chương trình:
ISIS cho phép mô phỏng mạch
ARES dùng để vẽ mạch in
Trang 24Proteus là công cụ mô phỏng cho các loại vi điều khiển, nó hỗ trợ các dòng vi điều khiển PIC, 8051, PIC, dsPIC, AVR, HC11, MSP430, ARM7/LPC2000, các giao tiếp I2C, SPI, CAN, USB, Ethenet, ngoài ra còn mô phỏng các mạch số, mạch tương tự một cách hiệu quả Nếu bạn đang muốn học lập trình trên Arduino hoặc vi điều khiển mà không có điều kiện hoặc kinh nghiệm để làm các mạch phát triển hoặc bạn muốn kiểm tra chương trình trước khi nạp vào mạch phát triển thì Proteus là lựa chọn không thể bỏ qua Ngoài chức năng mô phỏng thì phần mềm Proteus còn được sử dụng để thiết kế mạch, làm board, mô phỏng 3D
2.3.4 Thư viện cho Protues
Đầu tiên, download thư viện mô phỏng Arduino trên trang github.com/blogembarbarcadobr sau đó giải nén Sau đó để thêm thư viện vào Protues
ta mở Protues và click vào System settings Sau đó click vào dấu + trong mục thư viện
tìm tệp thư viện vừa mới giải nén.Lúc này bạn tìm linh kiện sẽ thấy Arduino trên Proteus Arduino IDE: là nơi để soạn thảo code, kiểm tra lỗi và upload code cho Arduino
Hình 2.9 Arduino IDE
Arduino Toolbar: có một số button và chức năng của chúng như sau :
Verify : kiểm tra code có lỗi hay không
Upload: nạp code đang soạn thảo vào Arduino
New, Open, Save : Tạo mới, mở và Save sketch
Trang 25Serial Monitor : Đây là màn hình hiển thị dữ liệu từ Arduino gửi lên máy tính
Arduino IDE Menu:
Trong Sketch menu :
Verify/ Compile : chức năng kiểm tra lỗi code
Show Sketch Folder : hiển thị nơi code được lưu
Add File : thêm vào một Tap code mới
Import Library : thêm thư viện cho IDE
Tool memu:
Trong Tool menu ta quan tâm các mục Board và Serial Port
Trang 26Mục Board : các bạn cần phải lựa chọn board mạch cho phù hợp với loại board mà bạn sử dụng nếu là Arduino Uno Nếu các bạn sử dụng loại board khác thì phải chọn đúng loại board mà mình đang có nếu sai thì code Upload vào chip sẽ bị lỗi
Serial Port: đây là nơi lựa chọn cổng Com của Arduino Khi chúng ta cài đặt driver thì máy tính sẽ hiện thông báo tên cổng Com của Arduino là bao nhiêu, ta chỉ việc vào Serial Port chọn đúng cổng Com để nạp code, nếu chọn sai thì không thể nạp code cho Arduino được
Trang 27Chương 3 TÍNH TOÁN VÀ THIẾT KẾ
3.1 GIỚI THIỆU
Đề tài chỉ đề cập đến việc lập trình các ứng dụng trên Kit Arduino Uno bằng ngôn ngữ Matlab và mô phỏng Kit Arduino Uno trên Protues Công việc chính là cài đặt các gói Package của phần cứng Arduino Uno trên Matlab, và mô phỏng Arduino trên Protues
3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG
3.2.1 Thiết kế sơ đồ khối hệ thống
- Giao tiếp với các chân I/O
- Giao tiếp với các chân PWM
- Giao tiếp I2C
- Giao tiếp SPI
- Điều khiển động cơ servo motor
- Đo lường vẽ đồ thị từ cảm biến
Hình 3.1 Sơ đồ khối tổng quát
MÁY TÍNH
KIT ARDUINO
NÚT NHẤN-LED
LED RGB LED ĐƠN
MODULE PCF8951
SEVOR MOTOR
VẼ ĐỒ THỊ
Trang 28Kit Arduino Uno: Có nhiệm vụ kết nối giữa máy tính và các ứng dụng, là bộ xử lý chính của đề tài, nhận các chương trình từ máy tính để điều khiển các ứng dụng được kết nối trực tiếp với Kit
Khối ứng dụng: Được xây dựng trên nền tảng đã được hỗ trợ trong gói Package được cài đặt trên Matlab, được kết nối trực tiếp với Kit Arduino Uno nhận lệnh điều khiển
từ Kit Arduino Uno
Khối Led đơn và nút nhấn: Thực hiện chương trình trên chân I/O dùng tín hiệu số Khối Led RGB: Thực hiện chương trình sử dụng các chân PWM của phần cứng
Vẽ đồ thị từ cảm biến: Cũng tích hợp trong module PCF8951
Trang 293.2.2 Sơ đồ nguyên lý của toàn mạch
Hình 3.3 Sơ đồ nguyên lý toàn mạch
Trang 30Chương 4 THI CÔNG HỆ THỐNG
4.1 GIỚI THIỆU
Phần này có thể gồm có 2 phần là kết quả thi công phần cứng và những kết quả hình ảnh trên màn hình hay mô phỏng tín hiệu lắp ráp và test mạch, hình vẽ được chụp từ thực tế, do ta đã chọn phần cứng có sẵn nên không cần thiết kế mạch PCB và thi công,
chỉ thực hiện việc cắm trên board mạch để chạy ứng dụng
4.2 THI CÔNG HỆ THỐNG
4.2.1 Lắp ráp và test chương trình trên từng ứng dụng
a Nguồn cấp:
Ứng dụng nguồn nhỏ nên sử dụng nguồn từ máy tính
b Tiến hành thực hiện lần lượt các các ứng dụng:
Viết chương trình đơn giản để điều khiển ứng dụng và giới thiệu các câu lệnh thường dùng trên Matlab để điều khiển Arduino Uno
4.3 LẬP TRÌNH HỆ THỐNG
4.3.1 Viết chương trình cho ứng dụng
Giao tiếp với các chân I/O
Led nhấp nháy
Sơ đồ kết nối trên board
Hình 4.1 Sơ đồ kết nối Arduino với led đơn
Trang 31Tạo chương trình trên Matlab:
Đầu tiên ta cần tạo 1 thư mục để lưu lại phần chương trình sẽ viết, để dễ dàng quản
lý nó Tiếp theo để bắt đầu việc lập trình thì làm như sau: click vào New script để tạo
file.m và viết chương trình
Hình 4.2 Cửa sổ viết code trên Matlab
Các hàm hổ trợ:
board = arduino(); : Dòng lệnh này là một thuộc tính dùng để đọc hiển thị các loại
phần cứng Arduino, xác định rõ ràng loại board khi bạn tạo đối tượng với nó
disp('turn on LED'); : Lệnh disp dùng để xuất chuỗi ký tự hoặc số
writeDigitalPin(); : Xuất giá trị logic quy định với chân trên board
pause(); : Là hàm trì hoãn thời gian là giây
Trang 32disp('close Arduino board');
clear board;
Sao đó ta lưu chương trình lại với tên Lednhapnhay.m
Trên Command window gõ lệnh: