100% found this document useful (1 vote)
366 views29 pages

Baocao Xe Do Line

The document introduces a line-following robot model. It includes infrared sensor TCRT5000 to detect the line, L298N motor driver module to control motor speed, Arduino UNO microcontroller, geared motors and wheels, and lithium battery. It describes the components of the model and experiments controlling the robot to move straight on the line. It also establishes the theoretical basis, including calculating inertia distance of wheels and developing the line-following algorithm and control circuit diagram.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
366 views29 pages

Baocao Xe Do Line

The document introduces a line-following robot model. It includes infrared sensor TCRT5000 to detect the line, L298N motor driver module to control motor speed, Arduino UNO microcontroller, geared motors and wheels, and lithium battery. It describes the components of the model and experiments controlling the robot to move straight on the line. It also establishes the theoretical basis, including calculating inertia distance of wheels and developing the line-following algorithm and control circuit diagram.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

BÁO CÁO BÀI TẬP LỚN


MÔ HÌNH HÓA VÀ MÔ PHỎNG HỆ
THỐNG ĐIỀU KHIỂN
Chủ đề: Mô hình xe dò line
Lớp: K65AT
Giảng viên: TS. Đinh Trần Hiệp
Thành viên: Vũ Mạnh Cường - 20020575
Phạm Hoàng Du - 20020576
Hoàng Kim Tiến - 20020607
Bùi Thị Thanh Liên - 20020586
Nguyễn Hữu Thanh Tùng - 20020616

2022-2023
1
LỜI NÓI ĐẦU
Ngày nay, trong thời đại công nghệ số phát triển, robot không còn là khái niệm xa
lạ với con người. Có rất nhiều robot phổ biến hiện nay có thể kể đến như robot công
nghiệp, những cánh tay máy trong các dây chuyền sản xuất với quy mô lớn. Hay với
quy mô nhỏ hơn như robot dịch vụ, robot hút bụi, robot y tế, robot giải trí,… Robot đã
có 1 vị trí quan trọng không thể thay thế được, nó giúp con người làm việc trong những
điều kiện nguy hiểm khó khăn. Lĩnh vực robot di động đang ngày càng được sự quan
tâm của các nhà nghiên cứu.

Đối với sinh viên, những kỹ sư tương lai thì việc nghiên cứu, thiết kế Robot điều
khiển đơn giản là những bước khởi đầu cho việc tìm hiểu về các hệ thống sản xuất tự
động sử dụng robot. Từ tình hình thực tế đó, việc xây dựng các chương trình hoạt động
cho các robot là điều thiết yếu.

Và tôi xin giới thiệu tới các bạn một loại robot khá phổ biến đó là robot dò line.
Trong bài nghiên cứu dưới đây tôi sẽ hướng dẫn mọi người cách để điều khiển robot
dò line sao cho nó có thể di chuyển trên line một cách hiệu quả nhất.

2
MỤC LỤC
LỜI NÓI ĐẦU.......................................................................................... 2
I. GIỚI THIỆU VỀ MÔ HÌNH XE DÒ LINE. ...................................... 5
1. Cảm biến hồng ngoại TCRT5000. .................................................................... 5
2. Module điều khiển động cơ L298N. ................................................................. 8
3. Arduino UNO R3 ............................................................................................... 9
4. Động cơ giảm tốc và bánh xe. ........................................................................... 9
5. Pin Lithium 18650. ........................................................................................... 10
II. THỰC HÀNH THÍ NGHIỆM CƠ CẤU CHẤP HÀNH. ................ 11
1. Giá trị enable của bánh xe. ............................................................................. 11
2. Thí nghiệm cho xe đi trên đường line thẳng. ................................................ 13
III. XÂY DỰNG CƠ SỞ LÝ THUYẾT CHO MÔ HÌNH. ................... 17
1. Tính toán quãng đường lực quán tính do bánh xe gây nên ảnh hưởng tới
việc tìm line. ............................................................................................................ 18
2. Lưu đồ thuật toán của mô hình xe dò line. .................................................... 19
3. Sơ đồ mạch điều khiển của mô hình xe dò line. ............................................ 20
IV. PHƯƠNG PHÁP ĐIỀU KHIỂN PID. ............................................. 21
1. Nghiên cứu mô hình để tìm ra Kp. ................................................................. 21
2. Nghiên cứu mô hình để tìm ra giá trị Kd. ..................................................... 22
3. Nghiên cứu mô hình để tìm ra giá trị Ki. ...................................................... 24
4. Tìm hiểu và đặt các giá trị ngưỡng (Threshold). .......................................... 25
V. ĐÁNH GIÁ, KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN. ................. 28
DANH MỤC TÀI LIỆU THAM KHẢO ................................................ 29

3
DANH MỤC HÌNH ẢNH
Hình 1:Nguyên lý hoạt động cảm biến hồng ngoại ...................................................... 5
Hình 2: Cảm biến TCRT5000 ....................................................................................... 6
Hình 3: Mạch nguyên lý cảm biến TCRT5000. ............................................................ 7
Hình 4: Đặc trưng về dòng và điện áp của cảm biến hồng ngoại TCRT5000 .............. 7
Hình 5: Module điều khiển động cơ L298N ................................................................. 8
Hình 6: Arduino UNO R3 ............................................................................................. 9
Hình 7: Động cơ giảm tốc và bánh xe. ........................................................................ 10
Hình 8: Pin Lithium 18650.......................................................................................... 11
Hình 9:Đồ thị giữa enable và vận tốc bánh xe. ........................................................... 12
Hình 10: Các trường hợp sai số của mô hình xe dò line. ............................................ 13
Hình 11: Thông số kỹ thuật của mô hình xe dò line. .................................................. 14
Hình 12: Biểu diễn xe khi chuyển khi có xuất hiện sai số. ......................................... 14
Hình 13: Biểu diễn toán học của xe bắt khi bắt đầu tăng tốc để đi vào vị trí chính giữa
của line......................................................................................................................... 15
Hình 14: Đường line bị kẹt giữa 2 cảm biến TCRT5000............................................ 17
Hình 15: Lưu đồ thuật toán của xe dò line. ................................................................. 20
Hình 16: Chân nối điều khiển của mô hình................................................................. 20
Hình 17: Biểu diễn Rate theo hai giá trị trung bình của hai bảng. .............................. 24
Hình 18: Quỹ đạo đi của xe dò line trong khúc cua bán kính 35cm. .......................... 25
Hình 19: Quỹ đạo của xe khi đi đường thẳng (sai số tối đa) ...................................... 26
Hình 20: Quỹ đạo của xe khi đi qua khúc cua bán kính 35cm. .................................. 27
Hình 21: Thuật toán PID kết hợp với Threshold. ....................................................... 27

DANH MỤC BẢNG


Bảng 1: Giá trị vận tốc (cm/s) dựa vào giá trị cấp xung enable. ................................. 12
Bảng 2: Sai số giữa thực tế và lý thuyết khi xuất hiện error. ..................................... 22
Bảng 3: Quãng đường xe từ vị trí lỗi sai khi đi vào line. ............................................ 23
Bảng 4:Tỷ lệ rate của quãng đường xe đi được ở bảng 3 và khoảng cách line và cảm
biến khi đi ra khỏi line................................................................................................. 23

4
I. GIỚI THIỆU VỀ MÔ HÌNH XE DÒ LINE.
Trong mô hình xe dò line thì đầu vào của chúng ta sẽ là cảm biến TCRT5000 để
phát hiện line và đầu ra của chúng ta sẽ động cơ giảm tốc. Ở đây ta sẽ dùng module
L298N để điều khiển vận tốc xe dò line bằng tín hiệu băm xung PWM sẽ giúp xe đi
nhanh chậm bằng việc cung cấp dòng điện vào 2 chân của động cơ giúp xe dễ dàng
di chuyển qua những khúc cua hay việc thực hiện rẽ trái rẽ phải.

Mục đích điều khiển robot dò line đi theo đường đen đã thiết kế một cách hợp lý

1. Cảm biến hồng ngoại TCRT5000.

Đầu tiên ta phải hiểu thế nào là cảm biến hồng ngoại. Thì cảm biến hồng ngoại (
Infrared Sensor hoặc viết tắt là IR Sensor) là một thiết bị điện tử phát hoặc nhận bức
xạ hồng ngoại trong môi trường xung quanh. Khi vật thể phát ra nhiệt độ trên 35 độ C
thì sẽ phát ra bức xạ hồng ngoại mà con người không thể nhìn thấy được.

Bản chất của cảm biến hồng ngoại sẽ gồm 2 phần: nguồn phát hồng ngoại sử dụng
một bóng đèn LED để phát ra tia sóng hồng ngoại và cảm biến hồng ngoại. Khi gặp
vật thể, tia hồng ngoại bật ngược lại và đi vào cảm biến hồng ngoại.

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

Lợi dụng đặc điểm đó nên ở đây chúng tôi đã sử dụng cảm biến hồng ngoại
TCRT5000 để phát hiện line đen. Nguyên lý cơ bản ở đây là line đen hấp thụ ánh sáng
rất tốt nên khi phát ra tia sáng hồng ngoại qua line đen thì khả năng thu lại ánh sáng là
rất thấp từ đó tín hiệu analog trả về giúp chúng ta có thể dễ dàng nhận biết đâu là line
đen.
5
Hình 2: Cảm biến TCRT5000

Tính năng của cảm biến TCRT5000:

- Có thể điều chỉnh biến trở để xác định khoảng cách.


- Phát hiện có vật cản và khởi động máy trong máy hủy tài liệu.
- Phát hiện chướng ngại vật.
- Phát hiện vật cản màu đen.

Thông số kỹ thuật cảm biến TCRT5000:

- Khoảng cách phát hiện vật cản : 1mm ~ 15mm.


- Điều chỉnh độ nhạy bằng cách điều chỉnh chiết áp (biến trở).
- Điện áp làm việc: 3.3V ~ 5V.
- Hình thức đầu ra: có thể ở dạng analog hoặc digital tùy vào mục đích sử
dụng.
- Kích thước mạch nhỏ: 3,2cm x 1,4cm
- Sử dụng bộ so sánh LM393 điện áp rộng.

Các chân cảm biến TCRT5000:

- VCC: 3.3V ~ 5V ( kết nối cực dương của nguồn điện)


- GND: kết nối với cực âm của nguồn điện.
- Data : đầu ra tín hiệu ( Analog hoặc Digital ).

6
Hình 3: Mạch nguyên lý cảm biến TCRT5000.

Nhìn vào mạch có thể thấy có 1 con LED phát sóng hồng ngoại và 1 con thu tín
hiệu hồi qua bộ khuếch đại thuật toán để đưa ra dữ liệu đầu ra. Biến trở R3 được
điều chỉnh để giảm hoặc tăng độ nhạy của cảm biến. Vì nguyên lý là 1 mạch
khuếch đại nên ta có những đặc trưng về điện áp và dòng của nhà sản xuất như
sau:
Ở 25 độ C, ta có các đường đặc trưng cơ bản sau:

Hình 4: Đặc trưng về dòng và điện áp của cảm biến hồng ngoại TCRT5000

7
Chúng tôi đã thực hiện hơn 100 phép đo và nhận thấy rằng cảm biến TCRT hoạt
động vô cùng tốt ở khoảng cách 1,5cm trở xuống, khả năng nhận line và vô cùng nhạy.
Việc nhiều line ở cùng một khoảng cách cũng ảnh hưởng đến hiệu suất thông tin trả về
những việc này đã được khắc phục bằng biến trở trong cảm biến TCRT5000. Chúng ta
có thể điều khiển giảm cường độ ánh sáng phát ra để có được sự hiệu quả của 5 led khi
cùng hoạt động ở một khoảng cách. Với việc dò line chỉ ở khoảng cách dưới 1cm kết
hợp với việc điều chỉnh mức độ của cảm biến ở từng khoảng cách thì TCRT5000 xứng
đáng được lựa chọn trong những mô hình cỡ nhỏ.

2. Module điều khiển động cơ L298N.

Hình 5: Module điều khiển động cơ L298N

Module L298N là một module điều khiển động cơ đa năng, thường được sử dụng
để điều khiển động cơ DC và động cơ bước (stepper motor) trong các ứng dụng điện
tử và robot. Module này có thể điều khiển tối đa hai động cơ DC hoặc một động cơ
bước với tốc độ và hướng quay được điều khiển bởi các tín hiệu đầu vào.

Module L298N sử dụng mạch điều khiển đa cầu H (H-bridge) để cung cấp điện
cho động cơ và điều khiển hướng quay của động cơ. Nó cũng bao gồm các bộ khối
điều khiển PWM (Pulse Width Modulation) để điều chỉnh tốc độ quay của động cơ
DC. Module L298N có thể hoạt động với điện áp từ 5 đến 12V và dòng tối đa là 1 A
cho mỗi kênh. Ngoài ra, module cũng được trang bị bảo vệ quá dòng và quá nhiệt độ
để bảo vệ module khỏi thiệt hại do quá tải hoặc quá nhiệt.

8
3. Arduino UNO R3

Hình 6: Arduino UNO R3

Arduino UNO R3 là một phiên bản phổ biến của board Arduino, được thiết kế để
giúp các nhà phát triển dễ dàng xây dựng các ứng dụng IoT, các hệ thống nhúng và các
dự án điện tử khác. Nó được phát triển bởi tập toàn Arduino.cc và được sản xuất trên
nền tảng vi điều khiển Atmega328P của hãng Atmel.

Arduino UNO R3 có các tính năng như bộ nhớ lưu trữ chương trình 32KB Flash,
2KB SRAM và 1 KB EEPROM, điều khiển động cơ servo, hỗ trợ giao tiếp USB và
I2C, SPI, UART, cảm biến và module ngoại vi khác. Nó cũng có 14 chân số và 6 chân
Analog để kết nối với các thiết bị ngoại vi.

Arduino UNO R3 cũng có khả năng thực hiện các chức năng như đọc và ghi các
tín hiệu từ cảm biến, điều khiển các thiết bị đầu ra như LED và động cơ, cũng như giao
tiếp với máy tính hoặc các thiết bị khác thông qua USB.

4. Động cơ giảm tốc và bánh xe.

Động cơ giảm tốc là một loại động cơ được thiết kế để giảm tốc độ quay của trục
đầu ra so với trục đầu vào. Điều này làm cho chúng trở thành một phương tiện lý tưởng
để sử dụng trong các ứng dụng cần tốc độ chậm và lực xoắn lớn, chẳng hạn như trong
9
các thiết bị máy móc công nghiệp, các dây chuyền sản xuất, các thiết bị cơ khí, các
thiết bị y tế và các thiết bị điện tử.

Động cơ giảm tốc bao gồm các thành phần như động cơ, bộ giảm tốc, trục đầu ra
và hệ thống bảo vệ. Động cơ thường là động cơ điện, còn bộ giarmt ốc có thể là loại
hình học như bánh xe, vít me, hoặc là loại hình không gian như hộp số. Trục đầu ra
thường được kết nối với các bộ phận máy móc khác để sản xuất lực xoắn cần thiết. Hệ
thống bảo vệ thường được sử dụng để đảm bảo an toàn trong quá trình vận hành.

Hình 7: Động cơ giảm tốc và bánh xe.

5. Pin Lithium 18650.


Pin Lithium-ion 18650 là một loại pin sạc tái sử dụng được sử dụng rộng rãi trong
các thiết bị di động, máy tính xách tay, máy ảnh, đèn pin và các thiết bị điện tử khác.
Tên gọi 18650 đề cập đến kích thước của pin, với đường kính 18mm và chiều dài
65mm.

Pin Lithium-ion 18650 có nhiều ưu điểm so với các loại pin khác. Chúng có mật
độ năng lượng cao, tức là chúng có thể lưu trữ nhiều năng lượng trong một khối lượng

10
nhỏ hơn so với các loại pin khác. Chúng cũng có tuổi thọ kéo dài, trong khi vẫn giữ
được hiệu suất cao và dung lượng pin tốt. Pin Lithium-ion 18650 cũng có thể được sạc
lại nhiều lần mà không ảnh hưởng đến hiệu suất hoặc tuổi thọ của pin.

Hình 8: Pin Lithium 18650

II. THỰC HÀNH THÍ NGHIỆM CƠ CẤU CHẤP HÀNH.


1. Giá trị enable của bánh xe.
Ở đây mình thực hiện kỹ thuật băm xung (PWM) bằng vi điều khiển trên Arduino.
Có những chân tín hiệu như 3, 5, 6, 9, 10, 11 chúng ta có thể băm xung tín hiệu ra.
Bản chất của việc băng xung này là chúng ta sẽ băm nhỏ điện thế cấp vào 2 chân (+)
và (-) của cơ cấu chấp hành ( 2 bánh xe ). Tín hiệu enable thực hiện băm xung sẽ chạy
từ 0🡪255. Sau đây chúng ta sẽ thực hiện thí nghiệm đo:

Enable = Enable = Enable = Enable = Enable = Enable = Enable = Enable =


70 80 90 100 110 120 130 140
Số vòng Số vòng Số vòng Số vòng Số vòng Số vòng Số vòng Số vòng
Lần đo bánh xe < bánh xe < bánh xe < bánh xe < bánh xe < bánh xe < bánh xe < bánh xe
góc góc góc góc góc góc góc < góc
1 2<160 2<320 3<60 3<220 3<320 4<15 4<90 5<90
2 2<160 2<300 3<90 3<215 3<310 4<23 4<85 5<100
3 2<155 2<310 3<100 3<220 3<300 4<20 4<85 5<95
4 2<155 2<325 3<105 3<205 3<290 4<30 4<95 5<110
5 2<150 2<335 3<100 3<210 3<310 4<25 4<100 5<100
6 2<155 2<320 3<95 3<210 3<315 4<20 4<100 5<115

11
7 2<147 2<330 3<100 3<210 3<318 4<27 4<95 5<100
8 2<155 2<315 3<105 3<220 3<300 4<20 4<95 5<110
9 2<160 2<318 3<105 3<205 3<295 4<25 4<100 5<100
10 2<163 2<320 3<100 3<210 3<290 4<30 4<95 5<105
X_mean 2<156 2<319.3 3<96 3<212.5 3<307.8 4<23.5 4<90 5<102.5
Vận tốc
51.9829 61.6733 69.7852 76.6985 82.3537 86.8458 90.792 112.8966
(Cm/s)

Bảng 1: Giá trị vận tốc (cm/s) dựa vào giá trị cấp xung enable.

Hình 9:Đồ thị giữa enable và vận tốc bánh xe.

Giá trị enable tôi để ở 70 -> 255 vì ở giá trị <70 thì động cơ chạy nhưng khi gắn
động cơ vào tải thì động cơ không có dấu hiệu chấp hành. Nên giá trị đo được thực tế
sẽ lấy giá trị enable lớn hơn hoặc bằng 70.

Enable chúng tôi ở đây chỉ xét đến 140 vì chúng tôi nhận thấy vận tốc đang tăng
nhanh và khó có kể kiểm soát thực tế nên mô hình của chúng tôi ở đây. Với giá trị
enable =140 lúc này vận tốc của bánh xe đã là 112.8966 cm/s.

Đây chỉ là vận tốc bánh xe chỉ mang trọng lực của chính nó, nên nếu nó mang
theo trọng lực của xe, thêm một điều lo ngại nữa là độ lệch khi truyền chuyển động của
động cơ đến tải ( bánh xe ). Sau đây tôi sẽ đo để tính độ lệch ly tâm của bánh xe.

Độ ly tâm của bánh xe là 1mm theo chiều ngang. Bán kính của bánh xe là 3,4cm.

12
Lúc này khi quay được 1 vòng thì bánh xe thực tế sẽ quay được : 21.36285314 cm.
Trên lý thuyết là 21.36283004. Sai số chưa đến 1 phần nghìn nên ta sẽ coi như bỏ qua
sai số ly tâm của bánh xe.

2. Thí nghiệm cho xe đi trên đường line thẳng.


Xe của chúng tôi ở đây có 5 led phát hiện line nên thành ra sẽ có 5 trường hợp
cơ bản xảy ra.

Hình 10: Các trường hợp sai số của mô hình xe dò line.

Chúng ta sẽ luôn phải đưa xe về trường hợp 1 để cân bằng trọng lực và hướng
quán tính ở giữa.

Trước khi cho xe chạy thực nghiệm thì chúng tôi sẽ tính toán để làm sao đưa xe
về trường hợp 1 vừa đảm bảo được về thời gian vừa đảm bảo được về vận tốc không
quá cao và không quá thấp. Vận tốc cao thì sẽ làm xe đi lệch. Ví dụ như có thể đi lệch
từ trường hợp 4 sang trường hợp 2 vì do quán tính xe.

13
Hình 11: Thông số kỹ thuật của mô hình xe dò line.

Ở đây chúng ta sẽ thực hiện đưa xe lệch từ trường hợp 5 về trường hợp 4 rồi đưa
về trường hợp 1. Tương tự thì trường 3 cũng sẽ đưa về trường hợp 2 rồi đưa về trường
hợp 1. Ý tưởng ở đây là bánh xe bên trái sẽ đi nhanh hơn bánh xe bên phải thì đầu xe
lúc này sẽ hướng về bên trái.

Hình 12: Biểu diễn xe khi chuyển khi có xuất hiện sai số.

14
Ta sẽ sử dụng đồ thị Hình A* để thực hiện điều này.
Ở đây tôi thực hiện Bánh A đi với xung enable =90 và Bánh B đi với xung enable
=80.
Lúc này ta có :
𝑐𝑚 𝑐𝑚
𝑉𝑎 = 69.7852 ( ) , 𝑉𝑏 = 61.6733 ( ).
𝑠 𝑠
𝑐𝑚
𝛥𝑣 = 𝑉𝑎 − 𝑉𝑏 = 8.1119 ≈ 8.112 ( ).
𝑠
𝑆𝑎𝑢 0.1𝑠 𝑡ℎì 𝑆𝑎 > 𝑆𝑏 𝑙à 𝛥𝑣 ∗ 0.1 = 0.8112 𝑐𝑚.

Hình 13: Biểu diễn toán học của xe bắt khi bắt đầu tăng tốc để đi vào vị trí chính giữa của line.

Ở đây hình vẽ của chúng tôi chưa chính xác nên tôi sẽ bổ xung thêm 1 số điều
̂ = 𝐼𝐻𝐺
kiện như sau: 𝐹𝐶𝐸 ̂ = 𝐵𝐴𝐷̂ = 90𝑜 .

̂ = 𝑎𝑟𝑐𝑡𝑎𝑛 (𝐶𝐵 ) =
Lúc này ta có : CB = 𝛥𝑆 = 0.8112 𝑐𝑚 → 𝐶𝐸𝐵
𝐸𝐵
0.8112
𝑎𝑟𝑐𝑡𝑎𝑛 (
12.2
) ≈ 3.8𝑜

̂ = 𝐶𝐸𝐵
𝐿ạ𝑖 𝑐ó 𝑦𝐶𝐹 ̂ = 3.8𝑜 ( 𝐶ù𝑛𝑔 𝑝ℎụ 𝑣ớ𝑖 𝐵𝐶𝐸
̂)

̂ = 𝐶𝐸𝐵
Tương tự thì ta cũng có: 𝐻𝐺𝐹 ̂ = 3.8𝑜

15
̂ = 6.97852 ∗ 𝑠𝑖𝑛 (3.8𝑜 ) = 0.46249 𝑐𝑚.
Lúc này : 𝑑(𝐻, 𝐴𝑦) = 𝐻𝐶 ∗ 𝑠𝑖𝑛 𝐻𝐶𝑌
̂
Xét đến điểm H, thì lúc này (𝑀𝐻, 𝐴𝑦) = 3,8𝑜 ∗ 2 = 7.6𝑜 .

Suy ra công thức tổng quát sau n giây thì D ( bánh xe, Ay ) là :
𝑛
̂
𝐷 = ∑ (6.97852 ∗ (𝑠𝑖𝑛 (3.8𝑜 ∗ 𝑛 )) = 2 (𝑐𝑚).

Từ đây ta có thể suy ra thêm 1 hệ quả với khoảng cách lệch bất kỳ và với tốc độ
chênh lệch, ta có thể quy nạp để đưa ra công thức tổng quát như sau :
𝑛
̂
𝐷 = ∑( (𝑣1 − 𝑣2 ) ∗ 0.1 ∗ 𝑠𝑖𝑛 (3.8 𝑜 ∗ 𝑛 )) (∗)

Quay trở lại ở trên thì ta tính được n=3 (tức sau 0.3s) thì xe sẽ từ trường hợp 5 về
trường hợp 4. Và sau 0.4s thì xe sẽ từ trường hợp 5 về trường hợp 1. Sau đây chúng
tôi sẽ thực hành trên mô hình thực tế.

Vì thời gian ngắn nên việc đo đạc cũng khá khó nhưng chúng tôi đều có chung 1
kết quả khi nhìn vào đồng hồ bấm giờ thì xấp xỉ 1 giây. Xe đã đi được vào đúng line
nhưng chúng tôi đã nhận ra được vô cùng nhiều vấn đề khi cho xe chạy.

⮚ Đầu tiên là việc xe không thể đi thẳng nếu để xe ngay từ đầu ở trường hợp 1.
Việc 2 bánh xe li tâm khi không quay thẳng như đã phân tích ở trên là không
ảnh hưởng tới xe nhưng có lẽ rằng tín hiệu từ Module L298N chưa đủ tốt để cho
2 bánh di chuyển với cùng 1 vận tốc. Nên giờ chúng ta sẽ điều khiển xe đi vừa
chính giữa line tốt nhất có thể chứ không thể đi thẳng được vì bản chất là 2 bánh
xe đang chạy độc lập với nhau.
⮚ Vấn đề thứ hai là tốc độ phản hồi tín hiệu của cảm biến TCRT5000 khá chậm.
Mặc dù code tôi đã để ở delaymicroseconds(10) nhưng tốc độ này vẫn chưa đủ
khi so với tốc độ xe là quá vượt trội. Nên chúng ta cũng sẽ phải điều khiển xe
đi một cách tương đối ( tức là xe sẽ di chuyển xung quanh line mà thôi ).
⮚ Vấn đề thứ ba là đường line bị kẹt ở giữa khoảng cách giữa 2 tín hiệu line. Do
khoảng cách giữa 2 line là 2cm mà đường line chỉ có 1,5 cm nên sẽ có lúc đường
line bị kẹt giữa như hình dưới đây. Nên chúng tôi đã tăng đường line lên từ
1,5cm -> 2cm. Còn nếu muốn phát triển hơn nữa thì đặt nhiều line cạnh nhau sẽ

16
đưa ra kết quả tốt hơn ( thay vì dùng 5 cảm biến chúng ta có thể tăng lên 7 cảm
biến hay 9 cảm biến kết quả sẽ chính xác hơn mà thuật toán thì không có gì thay
đổi.)

Hình 14: Đường line bị kẹt giữa 2 cảm biến TCRT5000.

⮚ Do xe đang di chuyển với tốc độ cao nên việc dừng lại ngay lập tức sau khi
không có tín hiệu là không thể. Điều này dẫn đến sai số khá lớn trong việc xe đi
hết line mà vẫn tiếp tục di chuyển. ( Chúng tôi đo ra được với quãng đường 1m
thì quán tính do chiếc xe gây ra đã đi xa sau khi không có line là từ 24cm đến
30cm ).
⮚ Một số vấn đề khác như khi chạy càng lâu thì suất điện động cảm ứng có xu
hướng chống lại tốc độ quay bánh xe càng tăng làm cho vận tốc khó kiểm soát
trên lý thuyết ( thực tế sẽ yếu đi so với việc thực hiện đo ở trên ). Vận tốc ban
đầu của xe cũng rất quan trọng vì ngay khi cấp điện thì bánh xe chưa nhận được
toàn bộ điện năng trong khi phải di chuyển cả 1 chiếc làm xong trong 1 số trường
hợp xe sẽ không chạy nên chúng ta phải cung cấp 1 vận tốc 𝑉𝑜 để xe có thể hoạt
động.

III. XÂY DỰNG CƠ SỞ LÝ THUYẾT CHO MÔ HÌNH.


17
1. Tính toán quãng đường lực quán tính do bánh xe gây nên ảnh hưởng tới
việc tìm line.

Việc để delay của vòng lặp cũng ảnh hưởng đến quá trình phản hồi của xe nên giờ
đây thay vì để delay(1000) tức là 1 giây thì chúng tôi đã để ở mức độ phản hồi thấp
hơn delayMicroseconds(10). Mặc dù chưa biết đây có phải hệ pha không cực tiểu hay
cực tiểu để đưa ra cơ cấu chấp hành nhưng ít ra nó cũng phản hồi nhanh hơn so với
việc delay(1000) nhiều lần.

Đầu tiên ta sẽ xác định lực quán tính gây ra cho xe với những dữ kiện đầu như :

𝑚𝑥𝑒 = 0.415 (𝑘𝑔 ), 𝜇 (ℎệ 𝑠ố 𝑚𝑎 𝑠á𝑡 ) = 0.8, 𝑣0 = 𝛥(𝑣𝑎 − 𝑣𝑏 ), 𝑣𝑠𝑎𝑢 = 0.

Với 𝑣𝑎 𝑣à 𝑣𝑏 là tốc độ khác nhau của 2 bánh xe, ta cần lấy hiệu của 2 vận tốc để
biết được độ lợi giữa 2 bánh xe. 𝑉𝑠𝑎𝑢 = 0 là do lúc này xe đã dừng rồi .

Ta có năng lượng lúc đầu và lúc sau của xe là :


1
𝐸 = 𝑚(𝑣𝑜 − 𝑣𝑠𝑎𝑢 )2
2
𝐸𝑠𝑎𝑢 = 0.

Suy ra : 𝛥𝐸 = 𝐸 − 𝐸𝑠𝑎𝑢 = 𝐸.

Để tính quãng đường bị lực quán tính làm giảm, ta sử dụng công thức của công
cơ học : 𝑊 = 𝐹. 𝑑 = 𝑚. 𝑔. 𝜇. 𝑑

Trong đó:

● F là lực quán tính ( đơn vị Newton).


● d là quãng đường bị lực quán tính làm giản ( đơn vị mét ).

Lại có W = E do đó :
1
𝑚. 𝑔. 𝜇. 𝑑 = 𝑚(𝑣𝑜 − 𝑣𝑠𝑎𝑢 )2
2
1
((𝑣0 − 𝑣𝑠𝑎𝑢 )2 )
→𝑑=2
𝑔. 𝜇

18
Kết hợp với công thức (*) ở trên thì d ở đây chính là quãng đường đi theo hướng
tiếp theo của xe. Vì vậy ta suy ra được :
𝑛
̂
𝐷 − 𝑑 ∗ 𝑠𝑖𝑛 (3.8 1 2
̂
𝑜 ∗ 𝑛 ) = ∑( ((𝑣 − 𝑣 ) ∗ 𝑠𝑖𝑛 (3.8𝑜 ∗ 𝑛 ))

1 𝑛
((𝑣0 − 𝑣𝑠𝑎𝑢 )2 )
𝐻𝑎𝑦 𝐷 − 2 ̂
∗ 𝑠𝑖𝑛 (3.8 1 2
̂
𝑜 ∗ 𝑛 ) = ∑( ((𝑣 − 𝑣 ) ∗ 𝑠𝑖𝑛 (3.8 𝑜 ∗ 𝑛 ))
𝑔. 𝜇
1

Trong đó 𝑣0 = 𝑣1 − 𝑣2

Với vận tốc tốc 𝑣1 𝑣à 𝑣2 như đã đo được ở bảng trên, ta chỉ việc thay số là sẽ
tìm được n*0.1 để tính ra số giây.

Ví dụ như ở trường hợp 3 như hình ở đã nêu : Lúc này ta có hệ số 𝐾𝑝 = 1, 𝐾𝑑 =


0, 𝐾𝑖 = 0.

Theo công thức với khâu điều khiển PID thì lúc này 𝑃𝐼𝐷𝑣𝑎𝑙𝑢𝑒 = 𝐾𝑝 ∗ 𝑒𝑟𝑟𝑜𝑟 = 20.

Lúc này:
𝑐𝑚
𝑇í𝑛 ℎ𝑖ệ𝑢 ở 𝑣1 = 80 𝑣à 𝑣2 = 120 → 𝑣1 − 𝑣2 = 86.84 − 61.67 = 25.17 ( )
𝑠
Thay số ở trên ta tìm được : n = 2 và quãng đường đi được sau 0.2 giây là : 5 cm
. Gần như đã đi được ngay vào vị trí giữa line. Ta có thể thấy được khi 𝐾𝑝 = 1 thì tốc
độ phản hồi nhanh và chỉ sau 0.1s nữa thì nó sẽ đi thêm được 4.97 cm nữa. Điều này
dẫn tới việc ta phải điều chỉnh 𝐾𝑝 , 𝐾𝑑 𝑣à 𝐾𝑖 hợp lý để tốc độ phản hồi vừa kịp và không
dẫn tới độ vọt lố nhiều bằng lý thuyết đã nêu ở trên.

2. Lưu đồ thuật toán của mô hình xe dò line.

19
Hình 15: Lưu đồ thuật toán của xe dò line.

3. Sơ đồ mạch điều khiển của mô hình xe dò line.

Hình 16: Chân nối điều khiển của mô hình.

20
Vì trong proteus 8 không có thư viện của cảm biến hồng ngoại TCRT5000 nên
ở đây tôi lấy tạm cảm biến DHT11 để thay thế. Các chân của cảm biến TCRT5000
tương tự DHT11 nên có thể nối cảm biến hồng ngoại tương tự như mạch trên để dễ
dàng thực hiện.

IV. PHƯƠNG PHÁP ĐIỀU KHIỂN PID.


Phương pháp điều khiển PID (Proportional-Integral-Derivative Control) là một
phương pháp điều khiển phản hồi lặp trong đó đầu ra điều khiển được tính dựa trên các
giá trị đo từ cảm biến và sai số giữa giá trị đặt trước và giá trị thực tế của cảm biến điều
khiển.

Phương pháp điều khiển PID sử dụng ba thành phần chính để tính toán đầu ra điều
khiển: hệ số hồi tiếp (proportional gain), hệ số tích lũy (integral gain) và hệ số giảm
dốc (derivative gain). Các thành phần này đóng vai trò quan trọng trong cân bằng giữa
độ ổn định và thời gian đáp ứng của hệ thống.

1. Nghiên cứu mô hình để tìm ra Kp.

Kp (proportional gain) tương ứng với hệ số hồi tiếp, đóng góp tỉ lệ thuận với sai
số hiện tại giữa giá trị đặt trước và giá trị thực tế hiện tại của biến điều khiển. Hệ số
này cung cấp độ nhạy của hệ thống với sai số, giúp điều chỉnh đầu ra của hệ thống theo
cách tương ứng với sai số.

Ta sẽ đo từng giá trị Kp và dựa theo cơ sở lý thuyết để so sánh từng giá trị Kp.

Quãng đường vào line (cm)

Kp 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Lần 1 97 100 44 34 20 23 13 14 10 5

Lần 2 84 93 40 7 18 178 25 10 6 10

Lần 3 60 72 63 39 27 16 12 14 11 3

Lần 4 80 56 49 32 23 16 14 9 13 4

Lần 5 73 36 55 30 15 18 17 10 9 7

Lần 6 116 62 49 39 21 15 14 13 14 3

21
Lần 7 100 77 47 28 18 15 13 8 6 8

Lần 8 85 69 43 29 25 14 15 9 14 9

Lần 9 173 52 39 34 20 18 11 11 12 7
Lần
70 56 50 28 19 15 16 9 9 10
10
Trung
93.8 67.3 47.9 30 20.6 32.8 15 10.7 10.4 6.6
bình

76.5* 79.1* 80.5* 81.85* 82.65* 91.7* 100.27* 102.6* 105.2* 112.5*
thuyết
0.8 0.5 0.4 0.2 0.2 0.2 0.1 0.1 0.1 0.1
(v*t)
Sai 14.44
32.6 27.73 15.7 13.662 4 4.97 0.433 -0.126 4.65
lệch 6

Bảng 2: Sai số giữa thực tế và lý thuyết khi xuất hiện error.

Từ bảng trên có thể nhận thấy lấy Kp=0.7 là hợp lý nhất. Các giá trị Kp nhỏ hơn
0.7 thì đều gây ra sai số lớn, có thể thấy khi sai số có xu hướng giảm từ Kp=0.1 đến
Kp=0.5 thì ới Kp=0.6 thì tự dưng sai số lại lớn. Nhưng khi xét 10 giá trị Kp thì có thể
thấy sự lệch với Kp=0.5 có thể do phép đo chưa đủ nhiều hoặc lúc này mô hình đang
có sự cố. Còn với Kp=0.8, Kp=0.9 và Kp=1 thì lại đưa ra đáp ứng quá nhanh, lớn hơn
cả những số liệu tính toán ở cơ sở lý thuyết, điều này có thể do cảm biến và độ phản
hồi của bộ xử lý, nhiễu, vv… ảnh hưởng. Vậy dựa vào những giá trị đo được, ta sẽ
chọn Kp=0.7.

Nói thêm một chút với trường hợp Kp lớn hơn 1 tôi bỏ qua là vì đáp ứng của mô
hình quá nhanh khiến khả năng tính toán và bấm giờ không đủ nên tôi sẽ bỏ qua những
trường hợp này. Tôi nhận thấy khi Kp quá lớn thì xe gần như sẽ quay vòng tròn (Vận
tốc của bánh xe A lớn hơn vận tốc của bánh xe B quá nhiều, cụ thể là 25cm/s).

2. Nghiên cứu mô hình để tìm ra giá trị Kd.


Kd (derivative gain) tướng ứng với hệ số giảm dốc, đóng góp tỉ lệ thuận với tốc
độ thay đổi của sai số giữa giá trị đặt trước và giá trị thực tế hiện tại của biến điều
khiển. Hệ số này giúp đối phó với sự dao động của hệ thống và cải thiện tốc độ phản
hồi của hệ thống.

Ví đáp ứng ở đây khá nhanh nên tôi sẽ đi tìm Kd trước để đáp ứng phản hồi kịp
thời làm cho sai số giảm đi.

22
Quãng đường vào line
Kd 0.1 0.15 0.2 0.25 0.3 0.35
Lần 1 23 20 24 21 15 15
Lần 2 24 21 23 20 19 17
Lần 3 29 22 28 17 20 18
Lần 4 28 25 26 17 20 11
Lần 5 25 21 23 19 21 16
Lần 6 26 27 21 20 19 18
Lần 7 26 22 20.5 21 24 16
Lần 8 24 20 20 19 26 15
Lần 9 24 20 20 19 24 15
Lần 10 26 23 21 19 24 15
Trung bình 25.5 22.1 22.65 19.2 21.2 15.6

Bảng 3: Quãng đường xe từ vị trí lỗi sai khi đi vào line.

Khoảng cách line và cảm biến


Kd 0.1 0.15 0.2 0.25 0.3 0.35
Lần 1 13 11 16 14 10.5 12
Lần 2 13 10.5 8 10 13 14.5
Lần 3 15 10.5 12 16 18 17
Lần 4 10 9 12 19 8 9
Lần 5 11.5 12 13 4 9 15
Lần 6 11 11 12 7 15 11
Lần 7 12 14 9 9 12 11
Lần 8 11 11 9.5 15 14 11.5
Lần 9 16 13 11 12 13 16.5
Lần 10 13 10 9 9 15 12
Trung bình 12.55 11.2 11.15 11.5 12.75 12.95
Rate 2.03187 1.97321 2.03139 1.66957 1.66275 1.20463

Bảng 4:Tỷ lệ rate của quãng đường xe đi được ở bảng 3 và khoảng cách line và cảm biến khi đi ra khỏi line.

23
Hình 17: Biểu diễn Rate theo hai giá trị trung bình của hai bảng.

Sau khi thực hiện đo tôi nhận thấy giá trị Kd nếu càng tăng sẽ làm xe mất ổn định
hơn và lệch khỏi line nhiều hơn. Vì vậy giá trị Line phù hợp sẽ từ 0.1 đến 0.25 mà
thôi. Sau khi đo khoảng cách vào line tôi nhận thấy đa số trong các trường hợp xe đều
đi ra khỏi line mà không quay trở lại nhưng vị trí của xe đã thấp hơn khi có thêm Kd
(tức là khoảng cách giữa line và cảm biến của xe đã thấp đi) số liệu tôi đã ghi ở bảng
trên. Tôi đã tính thêm giá trị Rate ( tỷ lệ giữa khoảng cách phản hồi của xe và vị trí
của cảm biến với line). Tôi nhận thấy giá trị này càng lớn thì xe có vẻ ổn hơn nhiều.
Lúc đầu tôi chọn Kd là 0.15 nhưng khi thử lại Kd là 0.2 thì có vẻ xe có xu hướng quay
trở lại line tốt hơn. Do đó tôi chọn Kd là 0.2.

3. Nghiên cứu mô hình để tìm ra giá trị Ki.

Ki (Integral gain) tương ứng với hệ số tích lũy, đóng góp tỉ lệ thuận với tổng sai
số tích lũy của biến điều khiển trong thời gian chạy của hệ thống. Hệ số này giúp giảm
thiểu sai số ổn định của hệ thống.

Vì đáp ứng của xe khi đi trên line thẳng là ổn nếu vị trí ban đầu error là 0 (tức là
ở vị trí chính giữa line). Nên tôi sẽ thực hiện đo xe ở những khúc cua để Ki được thể
hiện tốt nhất vai trò của mình (Sai số liên tục thay đổi vì khúc cua cần đáp ứng nhanh
những sai số để đưa xe ra vị trí error = 0).

24
Hình 18: Quỹ đạo đi của xe dò line trong khúc cua bán kính 35cm.

Ta nhận thấy khi giá trị error max thì giá trị Ki max là 0.9 vì giá trị enable khi
cung cấp cho xe chỉ là 150 mà thôi. Dựa vào những kết quả đo được tôi đã vẽ ra được
quỹ đạo đi của xe và giá trị Ki=0.7 là hợp lý nhất trong trường hợp này.
- Sau khi thực hiện đo thì tôi thấy tốc độ phản hồi của cảm biến có thể không kịp
với tốc độ đi vào line trong những trường hợp đi đường thẳng. Với độ lệch tối
đa chỉ có 4cm mà tốc độ lệch tương đối giữa hai bánh xe có thể lên đến 60cm/s,
thời gian đi vào line lúc này chỉ có 0.06s mà thôi. Đây là tính toán trên lý thuyết
nhưng dựa trên quan sát thì tôi thấy nó thực sự rất nhanh nên điều này cũng ảnh
hưởng đến mô hình tính toán rất nhiều.
- Vậy sau khi nghiên cứu mô hình thì ta đã chọn được bộ thông số PID để xe dò
line có thể chạy tốt đó là Kp=0.7, Kd=0.2 và cuối cùng là Ki =0.1. Nhận thấy
xe đi vẫn chưa ổn khi đi qua những khúc cua nên phần tiếp theo tôi sẽ thêm
những ngưỡng(Threshold hợp lý để xe có thể di chuyển tốt nhất trong đường
line khi cua với bán kính trên).

4. Tìm hiểu và đặt các giá trị ngưỡng (Threshold).


Sau khi quan sát xe di chuyển trên đường thẳng và đường cong thì tôi có những
nhận xét để hiệu chỉnh thêm bộ PID bằng cách đặt giá trị ngưỡng như sau:

- Khi xe đi trên đường thẳng thì giá trị Ki có thể không cần thiết vì Ki ở đây sẽ là
tổng sai số làm tăng độ vọt lố khi xe đi qua line. Mặc dù có giá trị Kd nhưng Kd
ở đây tương đối nhỏ đến ảnh hưởng đến Ki để làm giảm độ vọt lố. Nên tôi sẽ

25
kết hợp khi mà D (Derivative) khác 0 thì ta sẽ bỏ đi ảnh hưởng của khâu I
(integral) trong trường hợp này.
- Khi xe đi trên đường cong thì đa số trong các trường hợp sai số không đổi trong
hết quá trình. Thực tế ta cũng có thể thấy khi cua thì ta sẽ cố gắng để giữ nguyên
tốc độ trong quá trình cua để không làm mất thăng bằng của xe. Chính vì sai số
không đổi nên D (Derivative) bằng 0 (Vì không có sự biến thiên của sai số).

Từ những nhận xét trên kết hợp với Kp, Ki, Kd và sai số đã đặt sẵn thì tôi đã tìm
ra được Threshold là 16 và 26 kết hợp với điều kiện D khác 0 và D bằng 0. Cụ thể là
khi đi đường thẳng thì những ảnh hưởng của khâu I sẽ được bỏ đi và sẽ giảm tất cả giá
trị của PID đi 1 số lần nhất định để làm giảm sự vọt lố. Còn trong quá trình cua thì sẽ
tăng giá trị PID lên 1 số lần để đáp ứng nhanh hơn, sau khi đi hết đường cua kết hợp
với Threshold 16 sẽ làm đáp ứng trở lên chậm lại.

Hình 19: Quỹ đạo của xe khi đi đường thẳng (sai số tối đa)

Từ hình trên ta thấy khi điều khiển bằng phương pháp PID thì đáp ứng đang có
xu hướng dao động tắt dần theo thời gian (Lỗi sai của xe ngày càng ít đi). Nhưng thời
gian đáp ứng lại khá lâu. Khi ta thêm các ngưỡng để xe phản hồi nhanh hơn thì tốc độ
trở lại line của xe nhanh hơn PID khi lỗi sai vượt qua ngưỡng 1 nhưng lại phản hồi
chậm hơn PID khi vượt qua ngưỡng 2. Có thể thấy rằng xe đã phản hồi nhanh hơn
nhưng lại ít gây ra độ vọt lố hơn khi áp dụng thêm Threshold.

26
Hình 20: Quỹ đạo của xe khi đi qua khúc cua bán kính 35cm.

Khi đi qua khúc cua thì điều khiển PID cũng chỉ giúp xe điều chỉnh sai số ở một mức
nào đó. Việc chúng ta tăng các hệ số Ki, Kd, Kp lên cũng sẽ giúp xe đáp ứng nhanh nhưng
điều này lại phản tác dụng trong quá trình đi trên đường thẳng (Tốc độ 2 bánh xe không
nên chênh lệch nhau quá 60cm/s). Khi ta thêm các ngưỡng vào sẽ giúp xe đi tốt trên
đường cong và khi đến đường thẳng bỏ qua hệ số tích lũy lỗi sai sẽ làm xe đáp ứng chậm
lại. Điều này sẽ giúp cho xe giảm độ vọt lố và không đi ra khỏi line.

Dưới đây là hình ảnh code cho thuật toán thêm ngưỡng (Threshold) vào điều khiển
PID.

Hình 21: Thuật toán PID kết hợp với Threshold.

27
V. ĐÁNH GIÁ, KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.
Mặc dù ban đầu xe di chuyển chưa được tốt với phương pháp xử lý cơ bản nhưng
khi thêm phương pháp PID và giá trị đặt ngưỡng (Threshold) xe đã đi chuyển ổn hơn
trong các trường hợp như đi thẳng và đi qua đường cong. Xe sẽ đi được tốt với những
vòng cua có bán kính lớn (R lớn hơn hoặc bằng 35cm).

Sau khi nghiên cứu mô hình chúng em xin đưa ra kết luận và hướng phát triển
như sau :

• Những cảm biến của xe đa số đều là rẻ tiền (10000 VNĐ/TCRT5000) nên độ


chính xác vẫn còn kém và tốc độ xử lý chưa tốt ta nên thay bằng các cảm biến
có giá thành cao hơn thì tốc độ xử lý sẽ nhanh hơn và giúp xe đi chính xác hơn.
• Ta có thể lắp thêm những module giao tiếp để xe có thể giao tiếp thông qua
mạng nội bộ hoặc nhiều xe có thể giao tiếp với nhau để thực hiện một nhiệm vụ
nhất định.
• Ta có thể lắp thêm Camera để giúp xe nhận dạng được những vật cản và xử lý
những khúc cua trước khi xe di chuyển đến.
• Sử dụng thêm một số thuật toán để làm giảm độ sai số của xe như: Phương pháp
điều khiển PID nâng cao (Advantage PID), Logic mờ (Fuzzy Logic), mô hình
Markov, Stochastic Gradient Descent (SGD), Recursive Least Square (RLS),
Naïve Bayesian Classifier,…

28
DANH MỤC TÀI LIỆU THAM KHẢO

https://en.wikipedia.org/wiki/PID_controller
https://en.wikipedia.org/wiki/Fuzzy_logic
https://en.wikipedia.org/wiki/Moment_of_inertia

29

You might also like