1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo Đồ Án Điện tử căn bản kc331 Đề tài thiết kế xe tự hành tránh vật cản dùng cảm biến siêu Âm

22 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Thiết kế xe tự hành tránh vật cản dùng cảm biến siêu âm
Tác giả Lê Nhật Em
Người hướng dẫn Thầy …………..
Trường học Trường Đại học Cần Thơ
Chuyên ngành Đồ án Điện tử căn bản
Thể loại Báo cáo
Năm xuất bản 2024
Thành phố Cần Thơ
Định dạng
Số trang 22
Dung lượng 644,01 KB

Nội dung

Keyword: Autonomous vehicle, ultrasonic sensor, microcontroller Title: Design of an autonomous vehicle with obstacle avoidance using ultrasonic sensors TÓM TẮT Đề tài "Thiết kế xe tự

Trang 1

TRƯỜNG ĐẠI HỌC CẦN THƠ

DÙNG CẢM BIẾN SIÊU ÂM

Giảng viên hướng dẫn : Thầy………

Sinh viên thực hiện : Lê Nhật Em

Cần thơ: 10/2024

Trang 2

LỜI CẢM ƠN

“Để hoàn thành Bài báo cáo học phần này, nhóm em xin gửi lời cảm ơn chân thành đến:

Do thời gian làm báo cáo có hạn cũng như những hạn chế về kiến thức, trong bài chắc chắn sẽ không tránh khỏi những thiếu sót Rất mong nhận được sự nhận xét, đóng góp ý kiến từ phía Thầy để bài làm của nhóm em được hoàn thiện hơn

Lời cuối cùng, em xin kính chúc thầy nhiều sức khỏe, thành công và hạnh phúc!”

Em xin chân thành cảm ơn!

Sinh viên thực hiện

Lê Nhật Em

Trang 3

MỤC LỤC

Đồ án thiết kế hệ thống cơ điện tử_KC331

THIẾT KẾ XE TỰ HÀNH TRÁNH VẬT CẢN DÙNG CẢM BIẾN SIÊU ÂM 5

I GIỚI THIỆU 6

II PHƯƠNG PHÁP THỰC HIỆN 6

1 Tổng quan về hệ thống 6

2 Tổng quan về thiết bị sử dụng 7

2.1 Vi xử lý Arduino Uno 7

2.2 Cảm biến siêu âm HCSR04 8

2.3 Mạch cầu H (L298N) 10

2.4 Động cơ (DC motor 12V) 11

2.5 Mạch hạ áp DC - DC 12

3 Thiết kế hệ thống 13

3.1 Thiết kế phần cứng 13

3.2 Thiết kế phần mềm 15

3.3 Thiết kế mô hình 20

III KẾT QUẢ VÀ THẢO LUẬN 21

IV KẾT LUẬN VÀ ĐỀ NGHỊ 21

Trang 4

DANH MỤC BẢNG VÀ HÌNH

Hình 1: Hình 1: Vi xử lý Arduino Uno Bảng 1: Các thống số kỹ thuật của arduino:

Hình 2: Sơ đồ chi tiết của Arduino Uno Bảng 2: Các thống số kỹ thuật của cảm biến:

Hình 4: Các chân kết nối của cảm biến Bảng 4: Các thống số kỹ thuật của động cơ bơm 12V -

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

Hình 11: Sơ đồ nguyên lí của hệ thống

Hình 12: Lưu đồ của hệ thống

Hình 13: Mô hình thực tế của hệ thống

Trang 5

on applying sensors and control systems to build autonomous vehicles, aiming to minimize human intervention and increase safety in complex environments The project's outcomes will pave the way for applications in various fields, such as mobile robotics, transportation technology, and smart devices

Keyword: Autonomous vehicle, ultrasonic sensor, microcontroller

Title: Design of an autonomous vehicle with obstacle avoidance using ultrasonic sensors

TÓM TẮT

Đề tài "Thiết kế xe tự hành tránh vật cản dùng cảm biến siêu âm" nhằm nghiên cứu và phát triển một hệ thống xe tự hành có khả năng phát hiện và né tránh vật cản, thích hợp cho các ứng dụng trong môi trường tự động hóa và robot Xe sử dụng cảm biến siêu âm HCSR04 để

đo khoảng cách đến vật cản, kết hợp với mạch driver L298N để điều khiển động cơ DC motor được điều khiển bởi vi điều khiển Arduino Xe có khả năng tự động di chuyển và tránh vật cản được phát hiện bởi cảm biến siêu âm, việc điều hướng di chuyển của xe nhờ thay đổi tốc độ quay của các bánh xe để thực hiện rẽ Dự án này muốn hướng đến trong việc ứng dụng các cảm biến và hệ thống điều khiển để xây dựng các phương tiện tự động, góp phần giảm thiểu sự can thiệp của con người và tăng tính an toàn khi vận hành trong môi trường phức tạp Kết quả của dự án sẽ mở ra khả năng ứng dụng trong nhiều lĩnh vực như robot di động, công nghệ vận tải, và thiết bị thông minh

Từ khóa: Xe tự hành, cảm biến siêu âm, vi điều khiển

Tiêu đề: Thiết kế xe tự hành tránh vật cản dùng cảm biến siêu âm

1 Sinh viên lớp TN20S3A2, Mã số SV:B2012496, Số ĐT: 0XXX XXX XXX , email: emb2012496@student.ctu.edu.vn

Trang 6

I GIỚI THIỆU

Cách mạng công nghiệp 4.0 mang lại sự thay đổi mạnh mẽ cho lĩnh vực điều khiển

tự động Đề tài “Thiết kế xe tự hành tránh vật cản dùng cảm biến siêu âm” là một

phần quan trọng trong sự phát triển của công nghệ điều khiển và tự động hóa Sử dụng cảm biến siêu âm HCSR04 để phát hiện vật cản và điều khiển động cơ thông qua mạch driver L298N, đề tài mang đến nhiều lợi ích rõ rệt Trước hết, hệ thống giúp tự động hóa việc tránh vật cản một cách linh hoạt, giúp xe có thể di chuyển hiệu quả và an toàn trong nhiều tình huống Thứ hai, việc sử dụng các linh kiện phần cứng

mã nguồn mở như Arduino giúp giảm chi phí phát triển và cài đặt, đồng thời tăng tính ứng dụng trong giáo dục và nghiên cứu Đề tài này không chỉ có tiềm năng áp dụng rộng rãi trong lĩnh vực robot di động mà còn đóng góp tích cực vào quá trình phát triển các hệ thống điều khiển tự động

Đề tài lấy cảm hứng từ nhu cầu thực tiễn trong phát triển các hệ thống xe tự hành hiện đại Mục tiêu của đề tài là phát triển một hệ thống tự động hóa để xe có thể tự điều hướng và tránh vật cản bằng cách thu thập dữ liệu từ cảm biến siêu âm và điều khiển các động cơ một cách chính xác và đáng tin cậy

1 Tổng quan về hệ thống

Về mục tiêu chính: Xây dựng hệ thống xe tự hành có khả năng di chuyển tự động

và tránh vật cản Hệ thống này hướng tới ứng dụng trong các lĩnh vực tự động hóa,

robot di động Về các thành phần chính: Vi điều khiển (Arduino): Là trung tâm xử

lý, nhận dữ liệu từ các cảm biến và điều khiển động cơ Cảm biến siêu âm (HCSR04):

Đo khoảng cách giữa xe và vật cản, giúp xe nhận biết chướng ngại vật phía trước và

gửi dữ liệu về vi điều khiển để xử lý Mạch driver (L298N): Điều khiển động cơ của

xe, giúp xe tiến, lùi và thực hiện các thao tác rẽ khi cần Động cơ (DC motor): Giúp

xe di chuyển, thay đổi hướng thông qua điều chỉnh tốc độ quay của các bánh xe.Về

khả năng điều khiển: Xe có thể tự động di chuyển tiến về phía trước Khi gặp vật

cản trong khoảng cách 5 cm, xe sẽ lùi lại và rẽ phải Nếu vẫn gặp vật cản, xe tiếp tục

rẽ trái để tìm đường mới Về lợi ích: Hệ thống giúp xe di chuyển một cách tự động

và tránh va chạm, tăng cường tính an toàn khi hoạt động trong các môi trường phức tạp Việc ứng dụng cảm biến và hệ thống điều khiển tự động này mở ra tiềm năng lớn

trong các lĩnh vực giao thông thông minh và robot.Về công nghệ và mô hình: Sử

dụng cảm biến siêu âm HCSR04 cùng với mạch điều khiển động cơ L298N, hệ thống đảm bảo độ chính xác và tin cậy trong vận hành Mô hình do cá nhân nghiên cứu, thiết kế và triển khai

Trang 7

2 Tổng quan về thiết bị sử dụng

2.1 Vi xử lý Arduino Uno

Arduino [1] là một bo mạch vi điều khiển do một nhóm

giáo sư và sinh viên nước Ý thiết kế và đưa ra đầu tiên

vào năm 2005 Mạch Arduino được sử dụng để cảm nhận

và điều khiển nhiều đối tượng khác nhau Nó có thể thực

hiện nhiều nhiệm vụ lấy tín hiệu từ cảm biến đến điều

khiển đèn, động cơ, và nhiều đối tượng khác Ngoài ra

mạch còn có khả năng liên kết với nhiều module khác

nhau như: module đọc thẻ từ, ethernet shield, sim900A,

v.v…để tăng khả ứng dụng của mạch.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, Hiện

phần cứng của Arduino có tất cả 6 phiên bản, Tuy nhiên,

phiên bản thường được sử dụng nhiều nhất là Arduino

Uno và Arduino Mega Phần mềm để lập trình cho mạch

Hình 2: Sơ đồ chi tiết của Arduino Uno

Trang 8

Bảng 1: Các thông số kỹ thuật của Arduino Uno:

2.2 Cảm biến siêu âm HCSR04

HC-SR04 [2] là cảm biến siêu âm chủ yếu được dùng để xác định khoảng cách của

đối tượng mục tiêu Nó đo khoảng cách chính xác bằng công nghệ không tiếp xúc

(không tiếp xúc giữa cảm biến và vật thể) Với các module cảm biến siêu âm

HC-SR04 được ứng dụng nhiều nhất trong các bài toán đo khoảng cách vật từ xa Phạm

vi đo ngắn, trong khoảng 2-400cm Một số ứng dụng hay dùng module cảm biến siêu

âm HCSR04 mà chúng ta thường thấy như: Dùng đo mực chất lỏng trong chai, hộp

vàd phát hiện vật cản trên đường đi của robot…

Cảm biến bao gồm: Bộ phát (Trig) và bộ thu (Echo)

là hai bộ phận chính thực hiện công việc thu và phát

tín hiệu của cảm biến Bộ phát chuyển đổi tín hiệu

điện thành sóng siêu âm, còn bộ thu chuyển đổi tín

hiệu siêu âm đó trở lại thành tín hiệu điện

Khi hoạt động, mô-đun phát sẽ phát ra một xung siêu

âm ngắn Xung này sẽ lan truyền qua không khí và

phản xạ lại khi gặp một vật cản Mô-đun nhận sẽ

nhận được xung phản xạ dựa vào thời gian này (thời

gian phát cho đến khi nhận lại từ phản xạ) kết hợp

với tốc độ truyền của âm thanh trong không khí

(khoảng 340m/s), cảm biến có thể tính toán được

Chân I/O digital 14 ( có 6 chân xuất xung PWM)

Dòng điện mỗi chân I/O 20 mA

Trang 9

Bảng 2: Các thông số kỹ thuật của cảm biến siêu âm

Tín hiệu đầu ra Xung mức cao 5V, mức thấp 0V

Hình 4: Các chân kết nối của cảm biến

Trang 10

2.3 Mạch cầu H (L298N)

Mạch L298N [3] là một loại mạch điều khiển động cơ hai chiều được sử dụng phổ biến trong các ứng dụng điều khiển động cơ trong robot, máy móc tự động và các dự

án điện tử khác Mạch này cho phép điều khiển động cơ DC hai chiều hoặc một động

cơ step (bước) bằng cách cung cấp dòng điện lớn và chính xác từ nguồn cung cấp

ngoại vi

Mạch L298N thường đi kèm với hai cầu H (H-bridge)

độc lập, cho phép điều khiển động cơ theo cả hai hướng

(tiến và lùi) cũng như điều khiển tốc độ quay của động

cơ Nó cũng có khả năng chống ngược điện và chịu được

dòng điện cao, làm cho nó trở thành lựa chọn lý tưởng

cho việc điều khiển các động cơ có dòng điện lớn

Mạch L298N thường được điều khiển bằng cách sử dụng

tín hiệu từ một vi điều khiển Điều này cho phép người

dùng linh hoạt trong việc lập trình và điều khiển các động

Hình 5: Mạch L298N

Hình 6: Cấu tạo của mạch L298N

Trang 11

2.4 Động cơ (DC motor 12V)

Động cơ bơm DC servo giảm tốc 12V [4] Động cơ DC

servo giảm tốc loại 6 dây là một loại động cơ DC tích

hợp bộ giảm tốc nhằm tăng cường mô-men xoắn và cải

thiện khả năng điều khiển tốc độ, thường được sử dụng

trong các ứng dụng yêu cầu độ chính xác cao và lực

đẩy mạnh mẽ

Đặc điểm nổi bật của loại động cơ này là có 6 dây,

trong đó 2 dây dùng để cấp nguồn cho động cơ, và 4

dây còn lại dành cho bộ mã hóa encoder, giúp đo lường

chính xác vị trí và tốc độ quay của động cơ Nhờ có bộ

giảm tốc, động cơ có thể hoạt động ở tốc độ thấp nhưng

tạo ra lực mô-men lớn, giúp xe hoặc hệ thống di

chuyển một cách ổn định và mạnh mẽ ngay cả khi tải

nặng

Động cơ DC servo giảm tốc loại 6 dây thường được sử dụng trong các robot di động,

hệ thống tự động hóa và các thiết bị yêu cầu khả năng điều khiển vị trí, tốc độ chính

xác

Bảng 4: Các thống số kỹ thuật của động cơ bơm 12V - R385:

Trang 12

2.5 Mạch hạ áp DC - DC

Mạch hạ áp DC-DC [5] là một thành phần điện

tử quan trọng, được sử dụng để chuyển đổi điện

áp DC từ một mức cao xuống mức thấp hơn mà

vẫn duy trì hiệu suất cao và tính ổn định Mạch

này hoạt động dựa trên nguyên lý chuyển đổi

năng lượng điện từ, thường sử dụng các linh

kiện như transistor, diode, và cuộn cảm để điều

chỉnh điện áp đầu ra

Một số ứng dụng phổ biến của mạch hạ áp DC-DC bao gồm: Cung cấp nguồn cho các vi điều khiển, cảm biến, động cơ và các thiết bị điện tử khác cần nguồn điện ổn định với điện áp thấp hơn Mạch hạ áp DC-DC có thể hoạt động theo nhiều phương pháp khác nhau như buck converter, sử dụng cuộn cảm để giảm điện áp, hoặc linear regulator, dùng transistor để điều chỉnh điện áp ra

Bảng 5: Các thống số kỹ thuật của mạch hạ áp DC - DC

Điện áp đầu vào 3V đến 30V /DC

Điện áp đầu ra Điều chỉnh trong khoảng 1.5 đến 30V

Trang 13

3 Thiết kế hệ thống

3.1 Thiết kế phần cứng

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

❖ Mô tả sơ đồ khối:

- Bộ nguồn: Bộ nguồn cung cấp năng lượng vi xử lí trung tâm là Arduino đồng

thời cung cấp cho các thiết bị khác như: Cảm biến, động cơ, mạch điều khiển L298N…

- Bộ xử lí trung tâm: Arduino Uno có nhiệm vụ xử lí tín hiệu từ cảm biến siêu âm

xử lí các dữ liệu khoảng cách mà cảm biến thu thập được Qua đó để điều khiển hiển mạch cầu L298N

- Bộ đo lường: Cảm biến siêu âm có nhiệm vụ phát hiện vật cảm phía trước thông

qua hai chân phát (Trig) và chân thu (Echo) để thu thập số liệu và gửi về cho bộ

xử lí trung tâm (Arduino)

- Bộ điều khiển: L298N có nhiệm vụ điều khiển động cơ (xe tiến lên) và đảo chiều

động cơ (xe lùi lại) Hơn nữa, thông qua đó nó có thể điều chỉnh độ rộng xung để

điều khiển tốc độ khác nhau giữa hai động cơ trái và phải để giúp xe rẽ hướng dễ dàng

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

Mạch hạ áp

( L2596)

Trang 14

3.1.2 Sơ đồ nguyên lý

Hình 11: Sơ đồ nguyên lí của hệ thống

Trang 15

3.2 Thiết kế phần mềm

3.2.1 Lưu đồ của hệ thống

Giải thích lưu đồ:

Bắt đầu chương trình sẽ khởi tạo và thiết lập các chân (Đặt chế độ cho các chân

trigPin, echoPin, in1, in2, in3, in4, enA, enB) Khi cấp nguồn xe sẽ chạy thẳng và

cảm biến bắt đầu đo khoảng cách từ cảm biến siêu âm và kiểm tra khoảng cách > 10

cm? Nếu có (True) thì sẽ gọi hàm moveForward() để xe tiến tới và ngược lại nếu

không (False) thì gọi hàm moveBackward() để xe lùi trong 500 ms" và tiếp sau đó

gọi hàm turnRight() để xe rẽ phải trong 500 ms" Sau khi rẽ phải sẽ kiểm tra khoảng

Khoảng cách > 10cm?

Xe lùi lại trong 500ms và rẽ phải trong 500ms

Rẽ trái trong 500ms

Hình 12: Lưu đồ của hệ thống

Xe chạy thẳng về phía trước

Khoảng cách sau khi rẽ phải <= 10cm?

Xe di chuyển thẳng

Trang 16

cách sau khi rẽ phải <= 10 cm? Nếu có (True) sẽ gọi hàm turnLeft() để xe rẽ trái

trong 500 ms Và ngược lại nếu không (False) xe sẽ tiếp tục di chuyển thẳng và sẽ bắt đầu lại vòng lặp

3.2.2 Đoạn code chương trình

// Khai báo các chân sử dụng cho cảm biến siêu âm

const int trigPin = 9; // Chân trig của cảm biến siêu âm HCSR04, phát xung siêu âm

const int echoPin = 10; // Chân echo của cảm biến siêu âm HCSR04, nhận phản xạ

từ vật cản

// Khai báo các chân điều khiển động cơ và mạch driver L298N

const int in1 = 5; // Điều khiển động cơ bên trái (IN1), dùng để quy định chiều quay const int in2 = 4; // Điều khiển động cơ bên trái (IN2), điều khiển cùng với in1 const int in3 = 3; // Điều khiển động cơ bên phải (IN3), dùng để quy định chiều quayconst int in4 = 2; // Điều khiển động cơ bên phải (IN4), điều khiển cùng với in3

const int enA = 6; // Chân ENA trên L298N, dùng để điều chỉnh tốc độ động cơ bên trái

const int enB = 7; // Chân ENB trên L298N, dùng để điều chỉnh tốc độ động cơ bên phải

long duration; // Biến lưu trữ thời gian xung siêu âm phản hồi

int distance; // Biến lưu trữ khoảng cách tính toán từ cảm biến siêu âm

void setup() {

pinMode(trigPin, OUTPUT); // Chân phát tín hiệu siêu âm

pinMode(echoPin, INPUT); // Chân nhận tín hiệu phản hồi từ siêu âm

// Thiết lập các chân điều khiển động cơ là OUTPUT

pinMode(enA, OUTPUT);

pinMode(in1, OUTPUT);

Trang 17

Serial.println(distance); // Hiển thị khoảng cách đo được lên Serial Monitor

if (distance > 10) {

moveForward(); // Nếu không có vật cản, xe tiến

} else {

moveBackward(); // Nếu gặp vật cản, xe lùi lại

delay(500); // Lùi trong 500ms

turnRight(); // Sau đó rẽ phải

delay(500); // Rẽ phải trong 500ms

// Kiểm tra lại khoảng cách sau khi rẽ phải

distance = getDistance();

if (distance <= 10) {

turnLeft(); // Nếu vẫn gặp vật cản, rẽ trái

delay(500); // Rẽ trái trong 500ms

Trang 18

digitalWrite(trigPin, LOW); // Đảm bảo tín hiệu trig bắt đầu ở mức thấp

delayMicroseconds(2); // Đợi 2 micro giây

digitalWrite(trigPin, HIGH); // Phát xung siêu âm

delayMicroseconds(10); // Giữ tín hiệu trong 10 micro giây

digitalWrite(trigPin, LOW); // Dừng tín hiệu siêu âm

duration = pulseIn(echoPin, HIGH); // Đo thời gian xung từ lúc phát đến lúc nhận phản xạ

return duration * 0.034 / 2; // Tính khoảng cách dựa trên thời gian phản hồi và tốc

analogWrite(enA, 255); // Tốc độ tối đa động cơ trái

// Động cơ bên phải quay theo chiều tiến

digitalWrite(in3, HIGH);

Ngày đăng: 04/11/2024, 15:45

w