1. Trang chủ
  2. » Giáo án - Bài giảng

Mạch đo khoảng cách trong không gian dùng Arduino và SRF05

34 1K 46

Đ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

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 1,18 MB

Nội dung

ĐO KHOẢNG CÁCH TRONG KHÔNG GIAN VỚI SRF05 VÀ ARDUINO Người hướng dẫn: TS... LỜI CẢM ƠN Trong quá trình thực hiện đề tài “Đồ án 2: Đo khoảng cách trong không gian với SRF05 và Arduino”,

Trang 1

ĐO KHOẢNG CÁCH TRONG KHÔNG

GIAN VỚI SRF05 VÀ ARDUINO

Người hướng dẫn: TS VÕ PHÚ THOẠI

Người thực hiện: HOÀNG SƠN TÙNG

Lớp : 13040203

Khoá : 17

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2016

Trang 2

LỜI CẢM ƠN

Trong quá trình thực hiện đề tài “Đồ án 2: Đo khoảng cách trong không gian với SRF05 và Arduino”, Tôi đã nhận được rất nhiều sự giúp đỡ, tạo điều kiện của tập thể cán bộ, giảng viên khoa Điện – Điện Tử, tập thể Ban Giám Hiệu nhà trường, cán bộ các phòng, ban chức năng Trường Đại Học Tôn Đức Thắng Tôi xin bày tỏ lòng cảm ơn chân thành về sự giúp đỡ đó Tôi xin bày tỏ lòng biết ơn sâu sắc tới

TS Võ Phú Thoại – Đã trực tiếp hướng dẫn và chỉ bảo cho tôi hoàn thành đồ án này Tôi xin chân thành cảm ơn bạn bè của Tôi đang học tập tại Trường Đại Học Tôn Đức Thắng và gia đình đã động viên, khích lệ, tạo điều kiện và giúp đỡ Tôi trong suốt quá trình thực hiện và hoàn thành đồ án này

Tôi xin chân thành cảm ơn …

TP Hồ Chí Minh, ngày tháng năm

Tác giả

Trang 3

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi và được sự hướng dẫn khoa học của TS Võ Phú Thoại Các nội dung nghiên cứu, kết quả trong

đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo

Ngoài ra, trong luận văn còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung luận văn của mình Trường đại học Tôn Đức Thắng không

liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình

thực hiện (nếu có)

TP Hồ Chí Minh, ngày tháng năm

Tác giả (ký tên và ghi rõ họ tên)

Trang 4

MỤC LỤC

MỤC LỤC… IV DANH MỤC CÁC HÌNH VẼ VI DANH MỤC CÁC BẢNG BIỂU VII DANH MỤC CÁC TỪ VIẾT TẮT VIII

CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 1

1.1 GIỚI THIỆU 1

1.1.1 Đề tài 1

1.1.2 Yêu cầu của để tài 1

1.2 GIẢI QUYẾT VẤN ĐỀ 1

CHƯƠNG 2 THIẾT KẾ HỆ THỐNG 2

2.1 SƠ ĐỒ KHỐI CỦA HỆ THỐNG 2

2.2 CÁC LINH KIỆN CHÍNH TRONG MẠCH 2

2.2.1 Arduino UNO R3 3

2.2.2 LCD 1602 6

2.2.3 Cảm biến siêu âm SRF05 9

2.3 NGUYÊN LÝ HOẠT ĐỘNG CỦA MẠCH 10

CHƯƠNG 3 LẬP TRÌNH ĐIỀU KHIỂN 12

3.1 SƠ ĐỒ GIẢI THUẬT 12

3.2 LẬP TRÌNH ĐIỀU KHIỂN 13

CHƯƠNG 4 KẾT QUẢ THI CÔNG MẠCH 14

4.1 MÔ HÌNH 14

4.2 KẾT QUẢ 14

4.2.1 Thi công mạch in 14

4.2.2 Thi công mạch 16

CHƯƠNG 5 ỨNG DỤNG 19

5.1 ĐO KHOẢNG CÁCH Ô TÔ 19

Trang 5

5.2 ĐO MỨC NƯỚC 19

5.3 ỨNG DỤNG KHÁC 19

CHƯƠNG 6 NHẬN XÉT VÀ HƯỚNG PHÁT TRIỂN 20

6.1 NHẬN XÉT 20

6.2 HƯỚNG PHÁT TRIỂN 20

TÀI LIỆU THAM KHẢO 21

PHỤ LỤC… 22

Trang 6

DANH MỤC CÁC HÌNH VẼ

HÌNH 2-1: SƠ ĐỒ KHỐI CỦA HỆ THỐNG 2

HÌNH 2-2: VI XỬ LÝ ATMEGA328 TRÊN ARDUINO UNO R3 [3] 3

HÌNH 2-3: CÁC CHÂN NĂNG LƯỢNG 4

HÌNH 2-4: CÁC CỔNG VÀO RA CỦA ARDUINO UNO R3 [3] 5

HÌNH 2-5: CỬA SỔ LÀM VIỆC CỦA PHẦN MÊM ARDUINO IDE 6

HÌNH 2-6: LCD 1602 MÀU XANH LÁ [4] 7

HÌNH 2-7: HÌNH ẢNH CÁC CHÂN CHỨC NĂNG CỦA LCD 1602 [6] 8

HÌNH 2-8: MẠCH CHUYỂN GIAO TIẾP LCD1602 SANG I2C 8

HÌNH 2-9: CẢM BIẾN SIÊU ÂM SRF05 [7] 9

HÌNH 2-10: CÁC CHÂN SRF05 10

HÌNH 3-1: SƠ ĐỒ GIẢI THUẬT 12

HÌNH 3-2: LẬP TRÌNH ĐIỀU KHIỂN TRÊN PHẦN MỀM ARDUINO IDE 13

HÌNH 4-1: SƠ ĐỒ KẾT NỐI 14

HÌNH 4-2: SƠ ĐỒ NỐI DÂY 14

HÌNH 4-3: MẠCH IN 15

HÌNH 4-4: MẶT SAU CỦA MẠCH IN THỰC TẾ 15

HÌNH 4-5: MẶT TRƯỚC CỦA MẠCH 16

HÌNH 4-6: MẠCH SAU KHI THI CÔNG 16

HÌNH 4-7: HIỆN THỊ KHOẢNG CÁCH TRÊN LCD 17

HÌNH 4-8: KHI KHOẢNG CÁCH NHỎ HƠN 5CM 17

HÌNH 4-9: KHI KHOẢNG CÁCH LỚN HƠN 400CM 18

Trang 7

DANH MỤC CÁC BẢNG BIỂU

BẢNG 2-1: CÁC LINH KIỆN CHÍNH TRONG MẠCH 2 BẢNG 2-2: MỘT VÀI THÔNG SỐ 3 BÀNG 2-3: CHỨC NĂNG CÁC CHÂN CỦA LCD 1602 7

Trang 8

DANH MỤC CÁC TỪ VIẾT TẮT

LCD Liquid Crystal Display

LED Light-Emitting Diode

Vin Voltage Input

SRAM Static Random Access Memory

EEPROM Electrically Eraseble Programmable Read Only Memory USB Universal Serial Bus

MHz Megahertz

PWM Pulse Width Modulation

MPU Multiple Port Unit

I2C Inter- Integrated Circuit

SDA Serial Data

SCL Serial Clock

RS Register select

R/W Read/Write

Trang 9

ixSPI Peripheral Interface Serial TTL Transistor-Transistor Logic

Trang 10

ĐỒ ÁN 2 Trang 1/25

CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI

1.1 Giới thiệu

1.1.1 Đề tài

Nội dung đề tài: là một mạch điện tử đơn giản sử dụng cảm biến siêu âm SRF05

và Arduino UNO R3 để đo khoảng cách trong không gian và hiện thị kết quả ra màn hình LCD

1.1.2 Yêu cầu của để tài

- Tìm hiểu Arduino UNO R3

- Tìm hiểu cảm biến siêu âm SRF05

- Tìm hiểu nguyên lý hoạt động của mạch

Trang 11

ĐỒ ÁN 2 Trang 2/25

CHƯƠNG 2 THIẾT KẾ HỆ THỐNG

2.1 Sơ đồ khối của hệ thống

Hình 2-1: Sơ đồ khối của hệ thống

Ý nghĩa của các khối

- Khối nguồn: cung cấp năng lượng cho các linh kiện trong mạch hoạt động

- Khối cảm biến: là cảm biến siêu âm SRF05 có tác dụng đo khoảng cách dựa trên nguyên lý thu phát siêu âm

- Khối điều khiển: có chức năng tính toán và xuất kết quả ra LCD

- Khối hiện thị: hiện thị kết quả

2.2 Các linh kiện chính trong mạch

Bảng 2-1: Các linh kiện chính trong mạch

Trang 12

ĐỒ ÁN 2 Trang 3/25

2.2.1 Arduino UNO R3

2.2.1.1 Một vài thông số

Bảng 2-2: Một vài thông số

Điện áp hoạt động 5V DC (nguồn đƣợc cấp qua cổng USB)

Số chân Digital I/O 14 (có sáu chân hardware PWM)

Số chân Analog 6 (có độ phân giải là 10bit)

Dòng tối đa trên mỗi chân I/O 30mA

Dòng ra tối đa (chân 5V) 500mA

Dòng ra tối đa (chân 3.3V) 50mA

Trang 13

ĐỒ ÁN 2 Trang 4/25

2.2.1.3 Nguồn cung cấp điện

Arduino có thể được cấp nguồn qua cổng USB hoặc cấp nguồn ngoài có điện áp

Chân GND: là cực âm nguồn điện nối với Arduino

Chân 5V: điện áp ra 5V, dòng tối đa cho phép là 500mA

Chân 3.3V: điện áp ra 3.3V, dòng tối đa cho phép là 50mA

Chân Vin: dùng để cấp nguồn ngoài cho Arduino hoạt động

Chân IOREF: có điện áp là 5V nhưng chức năng của nó không phải là cấp nguồn Chân RESET: dùng để reset vi điều khiển

Hình 2-3: Các chân năng lượng

2.2.1.5 Bộ nhớ

Vi điều khiển Atmega328 cung cấp:

- 32KB bộ nhớ Flash: đây là nơi lưu trữ các lệnh lập trình Thường thì có khoảng vài KB được dùng cho bootloader nhưng ít khi nào sử dụng quá 20KB

- 2KB cho SRAM: đây là nơi lưu trữ các biến được khai báo Khi mất điện,

dữ liệu trên SRAM sẽ bị mất

- 1KB cho EEPROM: là nơi có thể đọc và ghi dữ liệu và không bị mất khi cúp điện

Trang 14

ĐỒ ÁN 2 Trang 5/25

2.2.1.6 Các cổng vào ra

Hình 2-4: Các cổng vào ra của Arduino UNO R3 [3]

Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chỉ có hai mức điện áp là 0V và 5V với dòng vào/ ra tối đa là 40mA Một số chân digital đặc biệt như sau:

- Hai chân Serial: 0 (chân RX) và 1 (chân TX) dùng để gửi và nhận dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua hai chân này

- Chân PWM (~): các chân 3, 5, 6, 9, 10, và 11 cho phép xuất ra xung PWM với độ phân giải 8bit có giá trị từ 0 → 255 tương ứng với 0V → 5V

- Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các chức năng thông thường, bốn chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác

- Chân 13: trên Arduino UNO có một đèn led màu cam Khi nhấn nút Reset, đèn này sẽ nhấp nháy để báo hiệu Đèn này được nối với chân số

13 của Arduino Khi chân này được sử dụng, LED sẽ sáng

Ngoài ra, Arduino UNO có sáu chân analog từ A0 → A5 cung cấp độ phân giải tín hiệu 10bit có giá trị từ 0 → 1023 để đọc giá trị điện áp trong khoảng 0V → 5V

Trang 15

ĐỒ ÁN 2 Trang 6/25

Đặc biệt, Arduino UNO có hai chân A4 (chân SDA) và A5 (chân SCL) có khả năng hỗ trợ giao tiếp I2C/TWI với các thiết bị khác như LCD

Có rất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau

Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển (IC HD44780) bên trong lớp vỏ và chỉ đưa các chân giao tiếp cần thiết

Trang 16

ĐỒ ÁN 2 Trang 7/25

Hình 2-6: LCD 1602 màu xanh lá [4]

2.2.2.2 Chức năng các chân

Bàng 2-3: Chức năng các chân của LCD 1602

Chân Ký hiệu Mô tả

1 Vss Chân nối cực âm của nguồn cho LCD

3 Vo Điều chỉnh độ tương phản của LCD

5 R/W Chân chọn chế độ đọc/ghi

7 - 14 DB0 - DB7 Tám đường của bus dữ liệu dùng để trao đổi thông tin

với MPU

Ghi chú : Ở chế độ “đọc”, nghĩa là MPU sẽ đọc thông tin từ LCD thông qua các chân DBx

Còn khi ở chế độ “ghi”, nghĩa là MPU xuất thông tin điều khiển cho LCD thông qua các chân DBx

Trang 17

ĐỒ ÁN 2 Trang 8/25

Hình 2-7: Hình ảnh các chân chức năng của LCD 1602 [6]

2.2.2.3 Giao tiếp I2C

I2C, viết tắt của từ tiếng Anh “Inter-Integrated Circuit”, là một loại bus nối tiếp đƣợc phát triển bởi hãng sản xuất linh kiện điện tử Philips Ban đầu, loại bus này chỉ đƣợc dùng trong các linh kiện điện tử của Philips Sau đó, do tính ƣu việt và đơn giản của nó, I2C đã đƣợc chuẩn hóa và đƣợc dùng rộng rãi trong các mô đun truyền thông nối tiếp của vi mạch tích hợp ngày nay

Hình 2-8: Mạch chuyển giao tiếp LCD1602 sang I2C

Trang 18

ĐỒ ÁN 2 Trang 9/25

Với mạch chuyển giao tiếp LCD1602 sang I2C chỉ cần hai chân tín hiệu (chân SDA và SCL) để truyền dữ liệu cần hiển thị từ Arduino tới LCD thay vì bảy chân nhƣ khi kết nối trực tiếp LCD với Arduino

2.2.3 Cảm biến siêu âm SRF05

2.2.3.1 Thông số và các chân

Hình 2-9: Cảm biến siêu âm SRF05 [7]

Thông số kỹ thuật của linh kiện điện tử cảm biến siêu âm SRF05:

- Điện áp hoạt động 5V

- Dòng tiêu thụ: nhỏ hơn 2mA

- Khoảng cách đo 3cm – 5m (mạch thực tế khoảng cách đo là 5cm đến 4m

để dễ thực hiện)

- Góc quét nhỏ hơn 15 độ

Chức năng chân của SRF05:

- Chân Vcc là chân nối nguồn 5V

- Chân Trigger là chân phát

- Chân Echo là chân thu

- Chân Out là chân có thể tự phát và thu không cần hai chân Trigger và Echo

- Chân GND là chân nối cực âm của nguồn

Trang 19

ĐỒ ÁN 2 Trang 10/25

Hình 2-10: Các chân SRF05

2.2.3.2 Nguyên lý hoạt động

SRF05 là linh kiện điện tử sử dụng nguyên lý phản xạ của sóng âm để đo khoảng cách Khi muốn đo khoảng cách cảm biến siêu âm SFR05 sẽ phát ra một xung tín hiệu có tần số 40KHz với thời gian là 10microsecond

Khi phát xung và chờ xung phản hồi về, chân Echo được kéo lên mức cao, khi

có xung phản xạ về chân Echo sẽ được kéo xuống thấp hoặc sau 30ms mà không có xung phản xạ về chân Echo thì cũng được kéo xuống thấp Sau đó SRF05 sẽ phát ra xung về Arduino để bắt đầu đo

2.3 Nguyên lý hoạt động của mạch

Mạch hoạt động chủ yếu dựa vào hoạt động của cảm biến siêu âm SRF05 dưới

sự điều khiển của Arduino

Tốc độ của âm thanh trong không khí là 340m/s, tương ứng với

29,412microseconds/cm

Khi đã tính được thời gian, ta sẽ chia cho 58,842microseconds để nhận được khoảng cách do khoảng thời gian đo được là hai lần khoảng cách (phát, thu)

Dựa trên nguyên lý hoạt động của SRF05, ta có:

- Khoảng cách tối đa đo được là 30ms/58.842us =509cm

- Tối thiểu là 20us/58.842us=0.3cm

- Tuy nhiên, để thuận tiện cho việc thực hiện ta chọn khoảng cách đo là từ 5cm đến 400cm

Trang 20

ĐỒ ÁN 2 Trang 11/25

Khi tính toán xong, Arduino sẽ gửi tín hiệu cho LCD thông qua giao tiếp I2C để hiện thị kết quả

Trang 21

ĐỒ ÁN 2 Trang 12/25

CHƯƠNG 3 LẬP TRÌNH ĐIỀU KHIỂN

3.1 Sơ đồ giải thuật

Hình 3-1: Sơ đồ giải thuật

Bắt đầu

Đo khoảng cách

5<=khoảngcách<=400 Đúng

Khoảng cách<5 Đúng

Khoảng cách quá xa

Trang 22

ĐỒ ÁN 2 Trang 13/25

3.2 Lập trình điều khiển

Tiến hành lập trình cho mạch bằng phần mềm Arduino IDE

Hình 3-2: Lập trình điều khiển trên phần mềm Arduino IDE

Trang 23

ĐỒ ÁN 2 Trang 14/25

CHƯƠNG 4 KẾT QUẢ THI CÔNG MẠCH

Mô phỏng sơ đồ nối dây trên phần mềm Proteus

Hình 4-2: Sơ đồ nối dây

Trang 24

ĐỒ ÁN 2 Trang 15/25

Mô phỏng mạch in

Hình 4-3: Mạch in

Mạch in thực tế

Hình 4-4: Mặt sau của mạch in thực tế

Trang 25

ĐỒ ÁN 2 Trang 16/25

Hình 4-5: Mặt trước của mạch

4.2.2 Thi công mạch

Mạch sau khi hoàn thành

Hình 4-6: Mạch sau khi thi công

Trang 26

ĐỒ ÁN 2 Trang 17/25

Hiện thị khoảng cách khi khoảng cách từ 5cm đến 400cm

Hình 4-7: Hiện thị khoảng cách trên LCD

Khi khoảng cách quá gần tức là nhỏ hơn 5cm

Hình 4-8: Khi khoảng cách nhỏ hơn 5cm

Trang 27

ĐỒ ÁN 2 Trang 18/25

Khi khoảng cách quá xa tức là lớn hơn 400cm

Hình 4-9: Khi khoảng cách lớn hơn 400cm

Trang 28

ĐỒ ÁN 2 Trang 19/25

CHƯƠNG 5 ỨNG DỤNG

5.1 Đo khoảng cách ô tô

Với khả năng đo được khoảng cách từ 4cm đến 500cm, ta có thể sử dụng mạch

để đo khoảng cách giữa hai ô tô với nhau hoặc khoảng cách với vật cản (bức tường,

xe …) trong bãi đỗ xe

Có thể cảnh báo nguy hiểm khi khoảng cách quá gần và báo an toàn khi khoảng cách đủ xa

tự động cho động cơ bơm nước

5.3 Ứng dụng khác

Chống trộm: sử dụng khả năng phát hiện vật cản trong khoảng cách từ 3cm đến 500cm ta có thể thi công một mạch chống trộm đơn giản với còi báo động hoặc đèn Làm xe tự động: có thể sử dụng mạch có ba cảm biến siêu âm SRF05 để thiết kế một mô hình xe điều khiển tự động có khả năng phát hiện các vật cản ở phía trước, bên phải và đằng sau

Trang 29

ĐỒ ÁN 2 Trang 20/25

CHƯƠNG 6 NHẬN XÉT VÀ HƯỚNG PHÁT TRIỂN

6.1 Nhận xét

Mạch chạy tương đối ổn định Tuy nhiên, một số trường hợp không đo được khoảng cách do vật cản không đủ lớn, góc đo không đủ hoặc vật cản gồ ghề không bằng phẳng

Chỉ đo được khoảng cách nhỏ hơn 5m, do vậy chỉ ứng dụng được vào các mô hình nhỏ

6.2 Hướng phát triển

Có thể đo được khoảng cách xa hơn

Ứng dụng vào các mạch phức tạp hơn như xe điều khiển tự động

Trang 30

ĐỒ ÁN 2 Trang 21/25

TÀI LIỆU THAM KHẢO

Tiếng Việt:

Tiếng Việt:

[1] http://arduino.vn, Ngôn ngữ lập trình trên Arduino

[2] http://smart-techvn.com, Hướng dẫn sử dụng Module cảm biến siêu âm SRF05

HY-[3] http://arduino.vn, Arduino UNO R3 là gì?

[4] https://embed.vn, Màn hình LCD 16×2

[5] http://arduino.vn, Điều khiển LCD bằng Arduino UNO

[6] http://howtomechatronics.com/, Arduino LCD Tutorial

[7] http://smdchip.vn/, Cảm biến siêu âm SRF05

Tiếng Anh:

[8] https://www.arduino.cc, Arduino/Genuino UNO

Trang 31

ĐỒ ÁN 2 Trang 22/25

int led2 = 12;

unsigned long thoigian = 0; //Đặt thời gian ban đầu là 0

unsigned long khoangcach = 0; //Đặt khoảng cách ban đầu là 0

void setup() {

lcd.init(); //Khởi động màn hình Bắt đầu cho phép Arduino sử dụng màn hình lcd.backlight(); //Bật đèn nền

pinMode(trigPin, OUTPUT); //Đầu ra trig

pinMode(echoPin, INPUT); // Đầu vào echo

pinMode(led1, OUTPUT); //Đầu ra led1

pinMode(led2, OUTPUT); //Đầu ra led2

Trang 32

ĐỒ ÁN 2 Trang 23/25

}

void loop() //Vòng lặp

{

digitalWrite(led1, LOW); //led1 tắt

digitalWrite(led2, LOW); //led2 tắt

// Bắt đầu gửi một xung tại chân trigger

digitalWrite(trigPin, HIGH); // Đầu ra trigPin HIGH

delayMicroseconds(10); // Tạo trễ 10mcrosecond = phát xung 10us digitalWrite(trigPin, LOW); // Đầu ra trigPin HIGH

thoigian = pulseIn(echoPin, HIGH); //Lệnh tính độ rộng xung của tín hiệu khoangcach = thoigian/58.824; // Tính toán khoảng cách, với tốc độ âm thanh 29.412us/cm

if ((khoangcach>=5) && (khoangcach<=400)) //Giới hạn khoảng cách đo {

//In ra màn hình lcd dòng chữ KHOANG CACH LA

Ngày đăng: 22/02/2017, 15:11

TỪ KHÓA LIÊN QUAN

w