Hướng dẫn lập trình các ứng dụng trên kit Arduino bằng ngôn ngữ MATLAB tại HCMUTE

Đồ án nghiên cứu hcmute lập trình các ứng dụng trên kit arduino bằng ngôn ngữ matla, áp dụng công nghệ tiên tiến, tối ưu giải pháp kỹ thuật cho bài toán .

Người đăng

Ẩn danh

Thể loại

đồ án tốt nghiệp

2016

65
6
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

1. CHƯƠNG 1: 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

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. GIỚI THIỆU PHẦN CỨNG

2.2. LẬP TRÌNH ARDUINO BẰNG MATLAB

2.2.1. Tổng quan về Matlab

2.2.2. Hướng dẫn cài đặt Arduino trên nền Matlab

2.2.3. Kết nối Arduino với Matlab

2.3. MÔ PHỎNG ARDUINO BẰNG PROTEUS

2.3.1. Giới thiệu

2.3.2. Giới thiệu về Proteus

2.3.3. Thư viện cho Proteus

3. CHƯƠNG 3: THIẾT KẾ VÀ TÍNH TOÁN

3.1. Thiết kế sơ đồ khối hệ thống

3.2. Tính toán và thiết kế mạch

3.3. Sơ đồ nguyên lý toàn mạch

3.4. THI CÔNG HỆ THỐNG

3.4.1. Lắp ráp và test chương trình trên từng ứng dụng

3.4.2. Lập trình hệ thống

3.4.2.1. Viết chương trình cho từng ứng dụng

3.4.3. Mô phỏng kit Arduino Uno trên Proteus

4. CHƯƠNG 4: KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ

4.1. Nhận xét và đánh giá

5. CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

5.1. Hướng phát triển

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Giới thiệu về Lập trình ứng dụng Arduino bằng MATLAB tại HCMUTE

Đề tài "Lập trình ứng dụng Arduino bằng MATLAB tại HCMUTE" tập trung vào việc nghiên cứu và phát triển các ứng dụng trên kit Arduino Uno R3 thông qua ngôn ngữ lập trình MATLAB. Việc sử dụng MATLAB không chỉ mang lại sự mới mẻ mà còn giúp tối ưu hóa quá trình lập trình, cho phép sinh viên và kỹ sư dễ dàng tương tác với các thiết bị phần cứng. HCMUTE đã tạo điều kiện cho sinh viên tiếp cận công nghệ hiện đại, từ đó nâng cao kỹ năng lập trình và khả năng ứng dụng thực tiễn trong lĩnh vực công nghệ thông tin và điện tử.

1.1. Mục tiêu của đề tài

Mục tiêu chính của đề tài là nghiên cứu và phát triển các ứng dụng trên kit Arduino bằng ngôn ngữ MATLAB. Đề tài hướng đến việc tìm hiểu cách cài đặt và sử dụng MATLAB để lập trình cho Arduino, từ đó phát triển các ứng dụng thực tiễn như điều khiển động cơ servo, đo lường và vẽ đồ thị từ cảm biến. Việc này không chỉ giúp sinh viên nắm vững kiến thức lý thuyết mà còn thực hành kỹ năng lập trình trong môi trường thực tế.

1.2. Tầm quan trọng của việc lập trình Arduino

Lập trình Arduino đã trở thành một phần quan trọng trong giáo dục kỹ thuật điện tử. Công nghệ Arduino cho phép sinh viên thực hiện các dự án thực tế, từ đó phát triển tư duy sáng tạo và khả năng giải quyết vấn đề. Việc tích hợp MATLAB vào quá trình lập trình giúp sinh viên có thể mô phỏng và kiểm tra các ứng dụng trước khi triển khai trên phần cứng, từ đó giảm thiểu rủi ro và tăng hiệu quả trong quá trình học tập.

II. Cơ sở lý thuyết về Arduino và MATLAB

Chương này trình bày tổng quan về ArduinoMATLAB, hai công cụ chính được sử dụng trong đề tài. Arduino là một nền tảng mã nguồn mở, cho phép người dùng dễ dàng lập trình và tương tác với các thiết bị phần cứng. MATLAB là một môi trường lập trình mạnh mẽ, hỗ trợ tính toán và mô phỏng, giúp người dùng thực hiện các thuật toán phức tạp một cách dễ dàng. Việc kết hợp hai công nghệ này mở ra nhiều khả năng mới trong việc phát triển ứng dụng, từ điều khiển thiết bị đến xử lý dữ liệu.

2.1. Tổng quan về Arduino

Arduino là một board mạch vi xử lý được thiết kế để tương tác với các thiết bị phần cứng như cảm biến, động cơ và đèn. Board Arduino Uno R3 cung cấp 14 chân I/O kỹ thuật số, 6 chân PWM và 6 chân analog, cho phép người dùng thực hiện nhiều ứng dụng khác nhau. Việc lập trình Arduino thường được thực hiện thông qua Arduino IDE, tuy nhiên, việc sử dụng MATLAB để lập trình mang lại nhiều lợi ích hơn, như khả năng mô phỏng và phân tích dữ liệu.

2.2. Tổng quan về MATLAB

MATLAB (Matrix Laboratory) là một môi trường lập trình mạnh mẽ, cho phép người dùng thực hiện các phép toán ma trận, vẽ đồ thị và phát triển các ứng dụng phức tạp. MATLAB cung cấp nhiều công cụ và thư viện hỗ trợ cho việc lập trình và mô phỏng, giúp người dùng dễ dàng thực hiện các bài toán kỹ thuật. Việc tích hợp MATLAB với Arduino không chỉ giúp đơn giản hóa quá trình lập trình mà còn mở rộng khả năng ứng dụng trong nhiều lĩnh vực khác nhau.

III. Phương pháp thực hiện

Đề tài được thực hiện thông qua các bước cụ thể, bao gồm tìm hiểu và cài đặt Arduino trên nền MATLAB, lập trình các ứng dụng và mô phỏng trên phần mềm Proteus. Các bước này giúp sinh viên nắm vững quy trình từ lý thuyết đến thực hành, từ đó phát triển kỹ năng lập trình và khả năng ứng dụng thực tiễn. Việc thực hiện các ứng dụng như điều khiển động cơ servo và đo lường từ cảm biến sẽ giúp sinh viên có cái nhìn sâu sắc hơn về công nghệ Arduino.

3.1. Cài đặt Arduino trên MATLAB

Để cài đặt Arduino trên MATLAB, người dùng cần tải gói hỗ trợ phần cứng từ MathWorks. Quá trình này bao gồm việc cài đặt các package cần thiết và thiết lập kết nối giữa MATLABArduino thông qua cổng USB. Sau khi cài đặt thành công, người dùng có thể sử dụng các lệnh trong MATLAB để điều khiển các chân I/O của Arduino, từ đó thực hiện các ứng dụng lập trình một cách dễ dàng.

3.2. Mô phỏng ứng dụng trên Proteus

Phần mềm Proteus cho phép mô phỏng hoạt động của mạch điện tử, bao gồm cả việc mô phỏng Arduino. Việc sử dụng Proteus giúp sinh viên kiểm tra và đánh giá các ứng dụng trước khi triển khai trên phần cứng thực tế. Quá trình này không chỉ giúp tiết kiệm thời gian mà còn giảm thiểu rủi ro trong việc phát triển ứng dụng. Sinh viên có thể tạo ra file .HEX từ Arduino IDE và nạp vào Proteus để xem kết quả hoạt động của chương trình.

IV. Kết quả và đánh giá

Kết quả của đề tài cho thấy việc lập trình ứng dụng Arduino bằng MATLAB tại HCMUTE đã mang lại nhiều lợi ích cho sinh viên. Các ứng dụng được phát triển không chỉ đáp ứng yêu cầu học tập mà còn có thể áp dụng trong thực tế. Việc sử dụng MATLAB giúp sinh viên dễ dàng mô phỏng và kiểm tra các ứng dụng, từ đó nâng cao khả năng lập trình và tư duy sáng tạo. Đề tài cũng mở ra hướng phát triển mới cho các nghiên cứu tiếp theo trong lĩnh vực công nghệ điện tử.

4.1. Đánh giá kết quả thực hiện

Kết quả thực hiện cho thấy sinh viên đã nắm vững kiến thức về ArduinoMATLAB, đồng thời có khả năng phát triển các ứng dụng thực tiễn. Các ứng dụng như điều khiển động cơ servo và đo lường từ cảm biến đã được thực hiện thành công, chứng minh tính khả thi của việc kết hợp hai công nghệ này. Đề tài cũng nhận được sự đánh giá cao từ giảng viên hướng dẫn và các chuyên gia trong lĩnh vực.

4.2. Hướng phát triển trong tương lai

Đề tài mở ra nhiều hướng phát triển trong tương lai, bao gồm việc nghiên cứu sâu hơn về các ứng dụng của Arduino trong các lĩnh vực khác nhau như tự động hóa, robot và Internet of Things (IoT). Việc kết hợp MATLAB với các công nghệ mới sẽ giúp sinh viên có thêm nhiều cơ hội học tập và nghiên cứu, từ đó nâng cao khả năng cạnh tranh trong thị trường lao động.

01/02/2025

Trích đoạn nội dung tài liệu

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. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 2 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Chương 2.1 GIỚI THIỆU PHẦN CỨNG 2.1 Tổng quan về Arduino Arduino thực ra là một board mạch vi xử lý được dùng để tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hay các thiết bị khác.

Một board Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung giúp dễ dàng lập trình và có thể mở rộng với các mạch khác. Một khía cạnh quan trọng của Arduino là các kết nối tiêu chuẩn của nó cho phép người dùng kết nối với CPU của board với các module. Arduino thường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168,ATmega328,ATmega1280 và ATmega2560. Hầu hết các mạch gồm mộ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 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.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 3 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 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 SRAM 2KB( Atmega328P) EEPROM 1KB( Atmega328P) Clock Speed 16MHZ Lenght 68.4 mm Weight 25 g Bảng 2. 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. Sơ đồ chân Arduino Uno BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 4 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT  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 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.Module PCF8591 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 5 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT  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.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.2 Lập trình Arduino bằng matlab 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.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 6 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Matlab đượ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à ba chiều, xử lý ảnh, ảnh động.  Thư viện toán học:các hàm cơ bản như cộng, trừ, nhân, chia, sin, cos, số học phức và các hàm phức tạp.

 Giao diện người dùng( Application Program Interface):cho phép viết chương trình C. Simulink là một chương trình đi kèm với Matlab, là một hệ thống tương tác với việc mô phỏng các hệ thống động phi tuyết, mô phỏng mạch.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: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 7 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Từ giao diện Matlab, click vào Add-Ons chọn Get Hardware Support Package Hình 2.

Get Hardware Support Package Sau đó hộp thoại mới sẽ hiện ra, chọn Install from Internet Hình 2.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. Giao diện cài Package cho Arduino BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 8 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Sau khi cài đặt xong thì tạo tài khoản MathWorks để đăng nhập Hình 2. 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.3 Kết nối Arduino với Matlab Trên Command Window gõ lệnh: >> a= arduino Đây là câu lệnh để kiểm tra kết nối giữa Arduino với Matlab và các Packages đã được cài đặt để hỗ trợ cho Arduino hay chưa.

Giao diện kết nối Arduino và Matlab BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 9 do an CHƯƠNG 2.3 Mô phỏng Arduino bằng Protues 2.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.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à ". Sao khi có file .HEX thì ta nạp vào mô phỏng là xong.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. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 10 do an CHƯƠNG 2.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Bài viết "Lập trình ứng dụng Arduino bằng MATLAB tại HCMUTE" cung cấp cái nhìn sâu sắc về cách kết hợp giữa Arduino và MATLAB để phát triển các ứng dụng thực tiễn. Tác giả trình bày các bước cụ thể trong quá trình lập trình, từ việc cài đặt phần mềm đến việc thực hiện các dự án mẫu, giúp người đọc dễ dàng tiếp cận và áp dụng kiến thức vào thực tế. Bài viết không chỉ mang lại kiến thức về lập trình mà còn khuyến khích sự sáng tạo và khả năng giải quyết vấn đề trong lĩnh vực công nghệ.

Nếu bạn muốn mở rộng thêm kiến thức về các dự án liên quan, hãy tham khảo bài viết Đồ án hcmute thiết kế thi công mô hình máy in 3d dùng kit arduino, nơi bạn có thể tìm hiểu về ứng dụng của Arduino trong thiết kế máy in 3D. Ngoài ra, bài viết Tiểu luận báo cáo 5 bài thí nghiệm ứng dụng matlab trong mô tả toán học hệ thống sẽ giúp bạn khám phá thêm về các thí nghiệm MATLAB có thể áp dụng trong các hệ thống khác nhau. Cuối cùng, bài viết Đồ án hcmute matrix converter sẽ cung cấp cho bạn cái nhìn về các ứng dụng thực tiễn của ma trận trong lập trình và chuyển đổi dữ liệu. Những tài liệu này sẽ giúp bạn mở rộng kiến thức và kỹ năng trong lĩnh vực lập trình và công nghệ.