MỞ ĐẦU 1. Lý do chọn đề tài Trong nội dung của các học phần thực tập chuyên đề, thực tập cơ sở thuộc khối cử nhân ngành Vật lý, sinh viên thƣờng đƣợc tiếp cận với vi điều khiển 8051. Tuy nhiên, bộ kit 8051 sử dụng chủ yếu là chip cũ của atmel là 89C52 tốc độ thấp, khó khăn trong giao tiếp với cảm biến, máy tính. Các board kit thực hành này thƣờng đắt và tốn kém thời gian vì khi sinh viên muốn tạo ra một ứng dụng nào đó thì phải làm mạch mới thì mới có thể sử dụng đƣợc.
Hiện nay bộ kit Arduino đƣợc sử dụng phổ biến, bởi nó đáp ứng đƣợc hầu hết các nhu cầu của sinh viên nhƣ: thao tác nhanh hơn, mạnh hơn, hỗ trợ nhiều thƣ viện cho ngƣời dùng, dễ dàng mua đƣợc trên thị trƣờng, không cần phải làm mạch nếu muốn làm một thí nghiệm nào đó. Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tƣơng tác với nhau hoặc với môi trƣờng đƣợc thuận lợi hơn; nó sẽ giúp cho mỗi sinh viên dễ dàng tạo ra những thiết bị có khả năng giao tiếp với máy tính, truyền thông qua mạng hay ứng dụng làm các thiết bị IOT. Ngoài ra, với nhân firmware Linx và phần mềm Labview, ta có thể dễ dàng truyền thông Arduino với máy tính thông qua cổng USB, thay thế đƣợc cho các card điều khiển logic phức tạp khi muốn điều khiển thiết bị bằng máy tính. Nếu có 1 bộ vi điều khiển Arduino và các cảm biến, ta có thể thiết kế các bài hƣớng dẫn để đọc đƣợc các cảm biến đó rồi giao tiếp với máy tính hoặc điều khiển qua mạng….
Arduino sẽ giúp cho sinh viên dễ dàng tiếp cận và có thể tự mình làm đƣợc. Với những lí do trên, khóa luận này đƣợc thực hiện để thiết kế và hướng dẫn làm các bài thí nghiệm trên bộ kit Arduino ứng dụng trong điều khiển thiết bị, giao tiếp với các cảm biến thông dụng và truyền thông với máy tính. Mục tiêu nghiên cứu Với mục đích tạo ra các bài thí nghiệm ghép nối, giao tiếp thiết bị và điều khiển tự động hóa trong các phép đo vật lý sử dụng kit Arduino, nghiên cứu này đặt ra mục tiêu: Thiết kế, chế tạo và chạy demo bộ thí nghiệm dựa trên bộ kit Arduino nhằm mô phỏng việc điều khiển các thiết bị, giao tiếp với các cảm biến thông dụng và truyền thông với máy tính. Nhiệm vụ nghiên cứu - Nghiên cứu bộ vi xử lí và kit Arduino.
- Nghiên cứu lập trình trên bộ kit Arduino và các ứng dụng của nó. - Nghiên cứu nhân firmware LINX trên Arduino và phần mềm Labview trên máy tính để giao tiếp Arduino với máy tính. - Thiết kế bộ thí nghiệm dùng bộ kit Arduino ứng dụng để điều khiển các thiết bị, cảm biến. - Thực nghiệm trên mô hình bộ kit cụ thể.
Đối tƣợng và phạm vi nghiên cứu 4. Đối tƣợng nghiên cứu Bộ kit Arduino và cách thức giao tiếp trong điều khiển thiết bị, các cảm biến thông dụng và truyền thông với máy tính. Phạm vi nghiên cứu - Nghiên cứu cách thức bộ vi xử lý Arduino điều khiển thiết bị, giao tiếp cảm biến và truyền thông với máy tính. - Nghiên cứu thiết kế mô hình thí nghiệm cụ thể bao gồm các linh kiện điện tử, các cảm biến thông dụng nhƣ: Cảm biến dòng điện, cảm biến phát hiện chuyển động, cảm biến siêu âm, cảm biến đo nhiệt độ….
hay các module điều khiển tốc độ động cơ, module đo thời gian thực…. trên bộ kit Arduino, hiển thị và giao tiếp với máy tính. Phƣơng pháp nghiên cứu - Nghiên cứu và khảo sát các tài liệu về nguyên lý hoạt động và cách lập trình bộ kit Arduino cùng với các thiết bị kèm theo. - Nghiên cứu thực nghiệm phƣơng thức truyền thông với máy tính thông qua phần mềm LabView và các nhân firmware.
2 n CHƢƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ BỘ KIT ARDUINO VÀ PHẦN MỀM LABVIEW 1. Tổng quan về bộ kit Arduino Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tƣơng tác với nhau hoặc với môi trƣờng đƣợc thuận lợi hơn. Nói rõ hơn Arduino là một board mạch vi xử lý đƣợc dùng để lập trình tƣơng tác với các thiết bị phần cứng nhƣ cảm biến, động cơ, đèn và các thiết bị khác. Phần cứng bao gồm một board mạch nguồn mở đƣợc thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit.
Những Model hiện tại đƣợc trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tƣơng thích với nhiều board mở rộng khác nhau. Ở đề tài khóa luận này, em sử dụng board mạch Arduino Mega2560 là một vi điều khiển sử dụng dòng vi xử lý 8-bit mega AVR của Atmel với chip ATmega2560. Thành phần của board Arduino Mega 2560 Arduino Mega 2560 là board mạch vi điều khiển, xây dựng dựa trên Atmega 2560. Nó có 54 chân I/O (trong đó có 15 chân có thể sử dụng làm chân ouput với chức năng PWM), 16 chân đầu vào Analog, 4 UART, 1 thạch anh 16MHz, 1 cổng USB, 1 jack nguồn, 1 header, 1 nút nhấn reset.
Nó chứa mọi thứ cần thiết hỗ trợ cho ngƣời lập trình vi điều khiển, đơn giản chỉ việc kết nối nó với máy tính bằng cable USB là có thể bắt đầu học tập. Mach Arduino 2560 sử dụng tƣơng thích với phần lớn các Shield của Arduino UNO. Bao gồm: 54 chân digital (trong đó có 15 chân có thể đƣợc sủ dụng nhƣ những chân PWM là từ chân số 2 → 13 và chân 44, 45, 46). 6 ngắt ngoài: chân 2 (interrupt 0), chân 3 (interrupt 1), chân 18 (interrupt 5), chân 19 (interrupt 4), chân 20 (interrupt 3), and chân 21 (interrupt 2).
16 chân vào analog (từ A0 đến A15). 4 cổng Serial giao tiếp với phần cứng: 3 n CỔNG SERIAL CHÂN RX CHÂN TX Cổng 0 0 1 Cổng 1 19 18 Cổng 2 17 16 Cổng 3 15 14 Bảng 1.1: 4 cổng Serial giao tiếp với phần cứng 1 thạch anh với tần số dao động 16 MHz. 1 cổng kết nối USB. 1 jack cắm điện.
Arduino Mega2560 khác với tất cả các vi xử lý trƣớc vì không sử dụng FTDI- chip điều khiển chuyển tín hiệu từ USB để xử lý. Thay vào đó, nó sử dụng ATmega16U2 lập trình nhƣ là một công cụ chuyển đổi tín hiệu từ USB. Thông số kỹ thuật Chip xử lý ATmega2560 Điện áp hoạt động 5V Điện áp đầu vào (đƣợc đề nghị) 7-12V Điện áp đầu vào (giới hạn) 6-20V Số lƣợng chân I / O 54 (trong đó có 15 cung cấp sản lƣợng PWM) Số lƣợng chân Input Analog 16 Dòng điện DC mỗi I / O 20 mA Dòng điện DC với chân 3.3V 50 mA Bộ nhớ flash 256 KB, trong đó có 8 KB sử dụng bởi bộ nạp khởi động SRAM 8 KB EEPROM 4 KB Tốc độ đồng hồ 16 MHz Chiều dài 101,52 mm Bề rộng 53,3 mm Cân nặng 37 g Bảng 1.2: Thông số kỹ thuật của board Arduino 4 n 1. Chi tiết về board mạch Hình 1.1: Mặt trước và mặt sau của board mạch Arduino Hình 1.2: Chi tiết board mạch 1.
Chức năng của mỗi khối: Các dòng vi xử lý này cho phép lập trình các ứng dụng điều khiển phức tạp do đƣợc trang bị cấu hình mạnh với các loại bộ nhớ ROM, RAM và Flash, các ngõ vào ra digital I/O trong đó có nhiều ngõ có khả năng xuất tín hiệu PWM, các ngõ đọc tín hiệu analog và các chuẩn giao tiếp đa dạng nhƣ UART, SPI, TWI (I2C). Đọc tín hiệu cảm biến cổng vào 1. Digital Các board mạch Arduino đều có các cổng digital có thể cấu hình làm ngõ vào hoặc ngõ ra bằng phần mềm. Do đó ngƣời dùng có thể linh hoạt quyết định số lƣợng ngõ vào và ngõ ra.
Tổng số lƣợng cổng digital trên mạch dùng Atmega2560 là 54. Analog Các board mạch Arduino đều có trang bị các ngõ vào analog với độ phân giải 10- bit (1024 phân mức, ví dụ với điện áp chuẩn là 5V thì độ phân giải khoảng 0. Số lƣợng cổng vào analog là 16 đối với Atmega2560. Với tính năng đọc analog, ngƣời dùng có thể đọc nhiều loại cảm biến nhƣ nhiệt độ, áp suất, độ ẩm, ánh sáng, … 6 n 1.
Xuất tín hiệu điều khiển cổng ra 1. Digital output Tƣơng tự nhƣ các cổng vào digital, ngƣời dùng có thể cấu hình trên phần mềm để quyết định dùng ngõ digital nào là ngõ ra. Tổng số lƣợng cổng digital trên mạch dùng Atmega2560 là 54. PWM output Trong số các cổng digital, ngƣời dùng có thể chọn một số cổng dùng để xuất tín hiệu điều chế xung PWM.
Độ phân giải của các tín hiệu PWM này là 8-bit. Số lƣợng cổng PWM đối với các board dùng Atmega2560 là 14. PWM có nhiều ứng dụng trong viễn thông, xử lý âm thanh hoặc điều khiển động cơ. Chuẩn Giao tiếp 1.
Serial Đây là chuẩn giao tiếp nối tiếp đƣợc dùng rất phổ biến trên các board mạch Arduino. Mỗi board có trang bị một số cổng Serial cứng (việc giao tiếp do phần cứng trong chip thực hiện). Bên cạnh đó, tất cả các cổng digital còn lại đều có thể thực hiện giao tiếp nối tiếp bằng phần mềm (có thƣ viện chuẩn, ngƣời dùng không cần phải viết code). Mức tín hiệu của các cổng này là TTL 5V.
Lƣu ý cổng nối tiếp RS-232 trên các thiết bị hoặc PC có mức tín hiệu là UART 12V. Để giao tiếp đƣợc giữa hai mức tín hiệu, cần phải có bộ chuyển mức, ví dụ nhƣ chip MAX232. Số lƣợng cổng Serial cứng của Atmega2560 là 4. Với tính năng giao tiếp nối tiếp, các board Arduino có thể giao tiếp đƣợc với rất nhiều thiết bị nhƣ PC, touchscreen,… 1.
USB Các board Arduino tiêu chuẩn đều có trang bị một cổng USB để thực hiện kết nối với máy tính dùng cho việc tải chƣơng trình. Tuy nhiên các chip AVR không có cổng USB, do đó các bo Ardunino phải trang bị thêm phần chuyển đổi từ USB thành tín hiệu UART. Do đó máy tính nhận diện cổng USB này là cổng COM chứ không phải là cổng USB tiêu chuẩn. SPI Đây là một chuẩn giao tiếp nối tiếp đồng bộ có bus gồm có 4 dây.
Với tính năng này các board Arduino có thể kết nối với các thiết bị nhƣ LCD, bộ điều khiển video game, bộ điều khiển cảm biến các loại, đọc thẻ nhớ SD và MMC… 7 n 1. TWI (I2C) Đây là một chuẩn giao tiếp đồng bộ khác nhƣng bus chỉ có hai dây. Với tính năng này, các board Arduino có thể giao tiếp với một số loại cảm biến nhƣ thermostat của CPU, tốc độ quạt, một số màn hình OLED/LCD, đọc real-time clock, chỉnh âm lƣợng cho một số loại loa… 1.