1. Trang chủ
  2. » Tất cả

BÁO CÁO BÀI TẬP LỚN MÔN KỸ THUẬT VI XỬ LÝ Đề tài: Xe dò line

29 37 0

Đ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 đề Xe dò line
Tác giả Nguyễn Hồng Quang, Phạm Long Vũ, Lê Văn Cường, Nguyễn Thị Trang, Nguyễn Quý Hoàng
Người hướng dẫn TS. Hàn Huy Dũng
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Kỹ thuật Vi Xử Lý
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 29
Dung lượng 1,74 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BÁO CÁO BÀI TẬP LỚN MÔN KỸ THUẬT VI XỬ LÝ Đề tài: Xe dò line BÁO CÁO BÀI TẬP LỚN MÔN KỸ THUẬT VI XỬ LÝ Đề tài: Xe dò line Tính toán PID Lời nói đầu Ngày nay với sự phát triển mạnh mẽ của khoa học đời sống, cuộc sống con người đã thay đổi ngày một tốt hơn, với những trang thiết bị hiện đại phục vụ trong công cuộc công nghiệp hóa, hiện đại hóa. Những thiết bị điện, điện tử được phát triển và ứng dụng rộng dãi trong cuộc sống hằng ngày. Từ những thời gian đầu phát triển vi xử lý đã cho thấy được sự ưu việt của nó và cho đến ngày nay tính ưu việt đó ngày càng được khẳng định thêm. Những thành tựu đó đã có thể biến được những cái tưởng chừng như không thể thành những cái có thể, góp phần nâng cao đời sống vật chất và tinh thần cho con người. Nhóm chúng em đã rất cố gắng để có thể hoàn thành tốt nhất đề tài của mình. Tuy nhiên, do vốn kiến thức còn chưa nhiều, cũng như có nhiều yếu tố khách quan khác mà sản phẩm của nhóm còn nhiều thiếu sót. Chúng em rất mong thầy và các anh chị trợ giảng đóng góp ý kiến, phê bình và hướng dẫn thêm để các sản phẩm sau được hoàn thiện hơn. Cuối cùng chúng em xin chân thành cảm ơn thầy Hàn Huy Dũng và các anh chị trợ giảng đã hướng dẫn tận tình giúp chúng em có thể hoàn thành bài tập lớn này. Qua đây, chúng em không chỉ có thêm nhiều kiến thức về chuyên môn mà còn nâng cao hơn được kỹ năng làm việc nhóm, trau dồi thêm ngoại ngữ, biết cách phân tích và tư duy, cùng nhiều kỹ năng mềm khác. Chúng em xin chân thành cảm ơn

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỂN THÔNG

Trang 2

Lời nói đầu

Ngày nay với sự phát triển mạnh mẽ của khoa học đời sống, cuộc sống con người đã thay đổi ngày một tốt hơn, với những trang thiết bị hiện đại phục vụ trongcông cuộc công nghiệp hóa, hiện đại hóa Những thiết bị điện, điện tử được phát triển và ứng dụng rộng dãi trong cuộc sống hằng ngày Từ những thời gian đầu phát triển vi xử lý đã cho thấy được sự ưu việt của nó và cho đến ngày nay tính ưu việt đó ngày càng được khẳng định thêm Những thành tựu đó đã có thể biến được những cái tưởng chừng như không thể thành những cái có thể, góp phần nâng cao đời sống vật chất và tinh thần cho con người

Nhóm chúng em đã rất cố gắng để có thể hoàn thành tốt nhất đề tài của mình Tuy nhiên, do vốn kiến thức còn chưa nhiều, cũng như có nhiều yếu tố khách quan khác mà sản phẩm của nhóm còn nhiều thiếu sót Chúng em rất mong thầy và các anh chị trợ giảng đóng góp ý kiến, phê bình và hướng dẫn thêm để các sản phẩm sau được hoàn thiện hơn

Cuối cùng chúng em xin chân thành cảm ơn thầy Hàn Huy Dũng và các anh chị trợ giảng đã hướng dẫn tận tình giúp chúng em có thể hoàn thành bài tập lớn này Qua đây, chúng em không chỉ có thêm nhiều kiến thức về chuyên môn mà cònnâng cao hơn được kỹ năng làm việc nhóm, trau dồi thêm ngoại ngữ, biết cách phân tích và tư duy, cùng nhiều kỹ năng mềm khác

Chúng em xin chân thành cảm ơn!

Trang 3

Mục lục

Lời nói đầu 2

Mục lục 3

Danh mục hình ảnh 5

Danh mục bảng 5

Tóm tắt báo cáo 6

Chương I Thiết kế 7

1.1 Giới thiệu đề tài 7

1.2 Xác định yêu cầu 8

1.2.1 Yêu cầu chức năng 8

1.2.2 Yêu cầu phi chức năng 8

1.3 Bảng kế hoạch thực hiện 8

1.4 Sơ đồ khối 10

1.4 Chi tiết từng khối 10

1.4.1 Khối vi điều khiển 10

1.4.2 Khối cảm biến 12

1.4.3 Khối động cơ 14

1.4.4 Khối nguồn 16

1.5 Sơ đồ nguyên lý 17

1.6 Thuật toán PID 18

Chương II Lập trình và mô phỏng 20

2.1 Sơ đồ mô phỏng 20

2.2 Lập trình 21

2.2.1 GPIO 21

2.2.2 Đọc giá trị các cảm biến 22

2.2.3 Tính toán PID 22

2.2.4 Điều khiển động cơ 22

Chương III Kết luận 24

Chương IV Hướng phát triển 25

Trang 4

Chương V Phụ lục 26 Chương VI Tài liệu tham khảo 29

Trang 5

Danh mục hình ảnh

Hình 1 Sa bàn 7

Hình 2 Sơ đồ khối 10

Hình 3 Pinmap Esp32 11

Hình 4 Nguyên lý hoạt động của cảm biến hồng ngoại 12

Hình 5 Sơ đồ cấu tạo của IR Infrared Obstacle Avoidance Sensor Module 13

Hình 6 Nguyên lý của IR Infrared Obstacle Avoidance Sensor Module 14

Hình 7 Nguyên lý hoạt động của IR sensor 14

Hình 8 Sơ đồ nguyên lý của L298 15

Hình 9 Mạch hạ áp 17

Hình 10 Sơ đồ nguyên lý 18

Hình 11 Mô hình PID 19

Hình 12 Sơ đồ mô phỏng Proteus 20

Hình 13 Sơ đồ khối chương trình 21

Danh mục bảng Bảng 1 Kế hoạch thực hiên 9

Bảng 2 Vị trí của xe tương ứng giá trị cảm biến 22

Bảng 3 Thử nghiệm PID 22

Trang 7

Chương I Thiết kế

1.1 Giới thiệu đề tài

Trong xã hội 4.0 ngày nay, sự phục vụ của máy móc để để thay thế sức lao động của con người là rất cần thiết, đặc biệt là những robot tự hành, không cần người điều khiển

Xe dò line là 1 trong những robot tự hành, tự động di chuyển theo các đường kẻ tối màu (thường là màu đen) đã được vạch sẵn trên nền trắng Ứngdụng phổ biến nhất của nó là luân chuyển hàng hóa, đồ dùng trong các nhà máy, công xưởng, v.v [1] Trong bài tập lớn này, nhóm chúng em sẽ thực hiện đề tài này với quy mô nhỏ hơn, để hiểu được ứng dụng của xe dò line

và phát triển tiếp cho các ứng dụng sau này

Hình 1 Sa bàn

Hình 1 là sa bàn để thực hiện quá trình chạy thử nghiệm của xe, xe sẽ phải đibám theo đường màu đen đã có sẵn trên nền trắng

Trang 8

1.2 Xác định yêu cầu

1.2.1 Yêu cầu chức năng

Xe dò line cần được thiết kế sao cho khi di chuyển phải bám sát được đường kẻ sẵn Khi di chuyển đến các đoạn vòng cua, gấp khúc, xe phải tự động điều chỉnh tốc độ hợp lý để không bị văng ra ngoài đường kẻ Ngoài

ra, xe có thể mang trên mình 1 khối hình hộp chữ nhật trọng lượng từ 1kg, khối hình hộp này để tượng trưng cho hàng hóa được vận chuyển trong các nhà máy

0.5-1.2.2 Yêu cầu phi chức năng

Mục tiêu của môn học là nắm được ngôn ngữ ASM và ngôn ngữ C, chính vì thế trong bài tập lớn này, yêu cầu phi chức năng của sản phẩm là phải được phát triển dựa trên ngôn ngữ C, và bên cạnh đó sử dụng vi điều khiển ESP32

Mô tả sản phẩm

- Yêu cầu chức năng

- Yêu cầu phi chức

Nắm được chứng năng

mà sản phẩm cần có

Quang, Vũ, Trang, Hoàng, Cường

Thiết lập sơ đồ khối 05/04/2021 Hoàn thành được thiết kế sơ đồ khối

Quang, Vũ

Mô tả chi tiết từng khối

- Khối đầu vào

- Khối xử lý

- Khối hiển thị 13/4/2021 Sơ đồ chi tiết từng khối

Trang, Hoàng

Trang 9

Lựa chọn phương án tối ưu

Hoàn thiện và kiểm thử

- Mua linh kiện và lắp

Viết báo cáo và bản trình

Bảng 1 Kế hoạch thực hiên

Trang 10

1.4 Sơ đồ khối

Hình 2 Sơ đồ khối

Thiết bị gồm 5 khối chính Khối cảm biến sẽ sử dụng 5 IR sensor để dò tín hiệu đường line, sau đó phản hồi tín hiệu về MCU MCU sẽ phát tín hiệu điều khiển cho mạch L298 để điều khiển 2 động cơ DC 2 động cơ này sẽ điều khiển 2 bánh xe đã được gắn sẵn

1.4 Chi tiết từng khối

1.4.1 Khối vi điều khiển

- Đây là khối điều khiển chức năng của toàn mạch

- Pinmap của Esp32 Devkit V1 được thể hiện dưới hình sau:

Trang 11

Hình 3 Pinmap Esp32

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

Esp32 Devkit V1 có 30 chân, trong đó:

- Có tổng cộng 25 chân GPIO

- 17 GPIO có thể sử dụng ở chế độ output và input

- 4 GPIO chỉ sử dụng được ở chế độ input

- 1 chân EN (chân kích họa của bộ điều chỉnh 3.3V)

- 1 chân Vin (cấp nguồn vào cho Devkit)

- 2 chân GND

- 1 chân 3.3V

Tham số cơ bản:

Trang 12

Nguyên lí của cảm biến hồng ngoại

Khối cảm biến của sản phẩm sử dụng cảm biến hồng ngoại để thực hiện các nhiệm vụ nhận biết các tín hiệu và gửi dữ liệu cho bộ xử lí trung tâm

Cảm biến hồng ngoại hay còn được gọi là IR Sensorchúng là một thiết bị điện tử có khả năng đo và phát hiện bức xạ hồng ngoại trong môi trường xung quanh

Cảm biến hồng ngoại sẽ hoạt động bằng cách sử dụng một cảm biến ánh sáng cụ thể để phát hiện bước sóng ánh sáng chọn trong phổ hồng ngoại (IR) Bằngcách sử dụng đèn LED tạo ra ánh sáng có cùng bước sóng với cảm biến đang tìm kiếm, bạn có thể xem cường độ của ánh sáng nhận được. Khi một vật ở gần cảm biến, ánh sáng từ đèn LED bật ra khỏi vật thể và đi vào cảm biến ánh sáng. Điều này dẫn đến một bước nhảy lớn về cường độ, mà chúng ta đã biết có thể được phát hiện bằng cách sử dụng một ngưỡng

Hình 4 Nguyên lý hoạt động của cảm biến hồng ngoại

Module cảm biến IR Infrared Obsracle Avoidance Sensor

Trong bài tập lớm này nhóm sử dụng cảm biến IR Infrared Obstacle

Avoidance Sensor có sơ đồ cấu tạo như hình dưới đây:

Trang 13

Hình 5 Sơ đồ cấu tạo của IR Infrared Obstacle Avoidance Sensor Module

Cảm biến hồng ngoại có khả năng thích nghi với môi trường, có một cặp truyền và nhận tia hồng ngoại. Tia hồng ngoại phát ra một tần số nhất định, khi phát hiện hướng truyền có vật cản (mặt phản xạ), phản xạ vào đèn thu hồng ngoại, sau khi sosánh, đèn “Obstacle LED” sẽ sáng lên, đồng thời đầu cho tín hiệu số đầu ra (một tín hiệu mức thấp); và ngược lại, nếu không có phản xạ (đi vào vùng có màu đen – đường line) thì tín hiệu số đầu ra sẽ là 1 tín hiểu mức cao

- Mức cao – 5V: khi không có vật cản

Chân giao tiếp:

- VCC: điện áp chuyển đổi từ 3.5-5V

- GND: GND ngoài

- OUT: Đầu ra kĩ thuật số (0 hoặc 1)

Sơ đồ nguyên lí của module IR Sensor:

Trang 14

Hình 6 Nguyên lý của IR Infrared Obstacle Avoidance Sensor Module

Nguyên lý làm việc: Bộ phát IR gửi tín hiệu hồng ngoại, trong trường hợp có

bề mặt phản xạ (ví dụ mày trắng), phát ra theo một số hướng bao gồm cả hương của bộ thu IR thu tín hiệu phát hiện vật thể

Hình 7 Nguyên lý hoạt động của IR sensor

Khi bộ bề mặt bị hấp thụ (ví dụ màu đen), tín hiệu IR không được phải xạ và cảm biến không thể phát hiện đối tượng Kết quả này sẽ xảy ra cả khi đối tượng vắng mặt

1.4.3 Khối động cơ

Trang 15

- Có hai mạch cầu H để điều khiển 2 động cơ

- Giá cả hợp lý

Module Điều Khiển Động Cơ DC L298

Mạch điều khiển động cơ DC L298 có khả năng điều khiển 2 động cơ DC, dòng tối đa 2A mỗi động cơ, mạch tích hợp diode bảo vệ và IC nguồn 7805 giúp cấp nguồn 5VDC cho các module khác (chỉ sử dụng 5V này nếu nguồn cấp

- Driver: L298N tích hợp hai mạch cầu H

- Điện áp điều khiển: +5 V ~ +12 V

- Dòng tối đa cho mỗi cầu H là: 2A (=>2A cho mỗi motor)

- Điện áp của tín hiệu điều khiển: +5 V ~ +7 V

Trang 16

- Dòng của tín hiệu điều khiển: 0 ~ 36mA (Arduino có thể chơi đến 40mA nên khỏe re nhé các bạn)

- Công suất hao phí: 20W (khi nhiệt độ T = 75 )℃

Để vi điều khiển và cảm biến hoạt động ổn định, cần 1 nguồn cấp 3.3 – 5V

Vì thế, nhóm chúng em sẽ sử dụng 1 mạch hạ áp DC-DC với đầu vào là nguồn 12V từ 3 pin 4.2V, đầu ra 5V, để cấp cho vi điều khiển và cảm biến

Thông số kỹ thuật

- Điện áp đầu vào: 4V-35V

- Điện áp đầu ra: 1.23V-30V 

- Dòng đầu ra: 3A (max) 

- Hiệu suất chuyển đổi: 92% (tối đa) 

- Tần số hoạt động module hạ áp: 150kHz 

- Nhiệt độ hoạt động: -40 đến + 85 ℃ ℃ 

Trang 17

Hình 9 Mạch hạ áp

1.5 Sơ đồ nguyên lý

- Nguồn 12V sẽ được cấp cho mạch L298, và làm đầu vào cho mạch hạ

áp DC-DC, đầu ra 5V cấp cho vi điều khiển và cảm biến

- Sản phẩm sử dụng 5 module IR Sensor, để áp dụng thuật toán PID 1 cách tốt nhất

- Mạch cầu L298 nhận tín hiểu từ Esp32 và điều khiển 2 động cơ DC

Trang 18

Hình 10 Sơ đồ nguyên lý

1.6 Thuật toán PID

PID là thuật toán được sử dụng phổ biến trong lĩnh vực điện, điển tử, để tự động điều chỉnh, điều khiển động cơ và giúp đạt được giá trị chuẩn mong muốn, có

độ lỗi nhỏ nhất

1.6.1 Ý tưởng thuật toán

Để hiểu được ý tưởng của thuật toán PID, chúng ta sẽ cùng đi đến 1 ví dụ Giả sử có 1 chiếc xe 3 bánh tự động (trong đó 2 bánh xe được điều khiển bởi động

cơ DC, 1 bánh xe đa hướng) được vận hành bởi 1 vi điều khiển, bài toán đặt ra là cần xe chạy theo 1 đường thẳng, tức là 2 bánh xe được điều khiển bởi động cơ cần quay với tốc độ bằng nhau Nhưng trong trường hợp bánh xe bên phải đi vào vùng

có ma sát (ví dụ đi vào cát, sỏi) thì chắc chắn bánh xe bên phải xe quay với tốc độ chậm hơn bánh xe bên trái Lúc này, đề xe tiếp tục đi thẳng thì động cơ bên phải cần quay nhanh hơn động cơ bên trái Để thực hiện điều này, chúng ta cần xác địnhgiá trị lỗi của số vòng quay, quy ra PWM và băm xung PWM cho động cơ bên

Trang 19

 Thuật toán PID là 1 thuật toán lý tưởng để giải quyết vấn đề này.

1.6.2 Mô hình thuật toán

- de(t) dt : đạo hàm độ lỗi trong 1 khoảng thời gian trước đó, giá trị này có nghĩa là giá trị điều chỉnh sẽ phần nào đoán được xu hướng của động

cơ mà điều chỉnh cho hợp lý

Dựa vào công thức và ý nghĩa của các tham số, chúng ta sẽ triển khai thực hiện thuật toán với code C để áp dụng vào điều khiển động cơ thực tế

Chi tiết hơn về thuật toán PID và cách áp dụng vào lập trình được trình bày trong báo cáo cá nhân của thành viên Nguyễn Hồng Quang của nhóm

Trang 20

Chương II Lập trình và mô phỏng

Do hoàn cảnh khách quan, nên nhóm không thể offline làm việc với nhau, cũng như việc thay thế linh kiện trong quá trình thực hiện bài tập lớn rất khó khăn, chính vì thế nhóm xin phép được trình bày bài tập lớn này với phần mềm mô phỏng Proteus 8.7, thay thế ESP32 bằng Arduino UNO R3

2.1 Sơ đồ mô phỏng

Hình 12 Sơ đồ mô phỏng Proteus

Trang 21

Sơ đồ mô phỏng được sắp xếp với nguyên lý như đã nêu ở phần 1.5, thay thếESP32 bởi Arduino UNO R3 Các logic state được kết nối với các cảm biến tương ứng với đường line, khi logic state ở mức 1 tức là cảm biến đó đang chiếu xuống đường line Các đèn led được kết nối với các chân OUT của các cảm biến, khi cảmbiến chiếu xuống line thì chân OUT xuất ra mức High, đèn led sẽ sáng Hai động

cơ DC được kết nối với L298 biểu trưng cho 2 động cơ DC trái và phải của xe

2.2 Lập trình

Trong phần lập trình, chúng em sử dụng 1 file c duy nhất, code trên nền tảng Arduino IDE platform Chương trình được viết gồm có 4 chức năng chính: cấu hình các GPIO được sử dụng, đọc giá trị các cảm biến trả về, tính toán PID và cuối cùng là điều khiển động cơ

Hình 13 Sơ đồ khối chương trình

2.2.1 GPIO

Các chân IN1 – IN4 của L298 sẽ được kết nối với các chân 4, 5, 6, 7 của

Arduino, đây là các GPIO thông thường Chân ENA và ENB của L298 của L298

Trang 22

cầm được băm xung PWM, vì thế chúng được kết nối với chân 3 và 11 của

Arduino (2 GPIO này có thể xuất xung PWM)

 Các chân này đều được cấu hình ở chế độ output

Các chân A5 – A1 của Arduino lần lượt được kết nối với các chân OUT (chân

trả về tín hiệu) của casci IR sensor S0 – S4 lần lượt là chân OUT của các IR

sensor từ trái sang phải

 Các chân này đều được cấu hình ở chế độ input

2.2.2 Đọc giá trị các cảm biến

Sử dụng 1 mảng sensorValue gồm 5 phần tử để đọc giá trị trả về từ các chân

S0-S4 Từ đó có thể xác định được xem vị trí của xe đang nằm ở đâu so với đường

line và gán giá trị tương ứng cho biến “error” Dưới đây là bảng đánh giá vị trí của

xe so với đường line dựa trên các kết quả trả về của cảm biến

Giá trị các cảm biến Vị trí của xe so với đường line

Các biến Kp, Ki, Kd, P, I, D, pid_value, pre_error là các biến kiểu dữ liệu

float tương ứng với các tham số trong công thức thuật toán PID Bên cạnh đó, các

biến Kp, Ki, Kd được khởi tạo giá trị cố định ở phần khai báo, các giá trị này cần

thực nghiệm và kiểm thử để thay đổi sao cho xe chạy ổn định và chính xác nhất

Bảng 3 Thử nghiệm PID

Trang 23

Trên đây là bảng thử nghiệm các thông số cho thuật toán PID và các mức xung PWM mà vi điều khiển xuất ra cho động cơ.

2.2.4 Điều khiển động cơ

Các biến init_value, pid_right, pid_left là các biến kiểu dữ liệu int Biến init_value là giá trị pivot lý tưởng mà ta đã nhắc đến ở phần 1.6.2 Các biến

pid_right, pid_left là các giá trị để xuất ra mức PWM cho các chân ENA, ENB Hàm constrain() có tác dụng giới hạn giá trị của 2 biến pid_right, pid_left trong khoảng mong muốn (khoảng giới hạn xung được thử nghiệm cho kết quả như trongbảng 3)

Link full code: NHQuang58/BTL_VXL_20202 (github.com)

Trang 24

Chương III Kết luận

Do chưa thể thực nghiệm nhiều trên sản phẩm thật, nên nhóm chưa có

những kết luận chính xác và đầy đủ nhất Nhưng qua quá trình thực hiện sản phẩm này và quá trình mô phỏng, chúng em có 1 số kết luận như sau:

- Để hệ thống hoạt động chính xác, nguồn cung cấp cần được giữ ở mức ổn định

- Cảm biến IR cần điều chỉnh biến trở sao cho thu được tín hiệu đầu ra chính xác nhất, khi điện áp đầu vào thay đổi thì độ chính xác của cảm biến cũng thay đổi theo nên cần điều chỉnh lại biến trở

- Mạch điều khiển L298 nên cấp nguồn riêng nếu được, không nên chung nguồn cấp với vi điều khiển và cảm biến

- Thuật toán PID độ chính xác cao, tuy nhiên cần điều chỉnh giá trị Kp,

Ki, Kd cho phù hợp với từng hệ thống

Trang 25

Chương IV Hướng phát triển

Xe dò line là 1 loại xe tự hành đã và đang được phát triển rộng rãi Ứng dụng này được sử dụng trong nhiều nhà máy với mục đích là vận chuyển hàng hóa,tiết kiệm thời gian và sức lao động của con người Chính vì vậy, trong tương lai, chúng em muốn phát triển ứng dụng này và thêm phần phát hiện vật cản đa hướng,

để có thể dừng xe lại kịp thời trước khi xảy ra va chạm Ngoài ra, nhóm dự định sẽ phát triển và thử nghiệm xe ở ngoài đường phố, là bước đà để nghiên cứu các loại

xe không người lái trong giao thông

Trên đây là những hướng phát triển của nhóm chúng em, rất mong thầy có những đánh giá và lời khuyên để chúng em có thể thực hiện các ý tưởng này!

Ngày đăng: 02/03/2023, 02:44

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w