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.