Download as pdf or txt
Download as pdf or txt
You are on page 1of 32

HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO MÔN HỌC


CÔNG NGHỆ PHẦN MỀM NHÚNG

Đề tài:

XE TỰ HÀNH TRÁNH VẬT CẢN

Sinh viên thực hiện: NGUYỄN



PHẠM
Nhóm

Giảng viên hướng dẫn: ThS.


Hà Nội, 10-202
MỤC LỤC

DANH MỤC HÌNH VẼ ................................................................................................ i

DANH MỤC BẢNG BIỂU .......................................................................................... ii

DANH MỤC TỪ VIẾT TẮT ...................................................................................... iii

LỜI MỞ ĐẦU .............................................................................................................. 1

TÓM TẮT ĐỀ TÀI ....................................................................................................... 3

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

1.1 Đặt vấn đề ........................................................................................................... 4

1.2 Tính cấp thiết của đề tài ...................................................................................... 4

1.3 Tình hình nghiên cứu hiện nay ........................................................................... 4

1.3.1 Tình hình nghiên cứu quốc tế ...................................................................... 4

1.3.2 Tình hình nghiên cứu trong nước ................................................................ 4

1.4 Tổng kết chương 1 .............................................................................................. 5

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT VỀ ARDUINO ................................................... 6

2.1 Giới thiệu ............................................................................................................ 6

2.2 Lịch sử ra đời ...................................................................................................... 6

2.3 Kiến trúc phần cứng Arduino ............................................................................. 6

2.4 Thiết kế nguồn ................................................................................................... 7

2.4.1 Thiết kế mạch dao động .............................................................................. 8

2.4.2 Thiết kế mạch reset ...................................................................................... 8

2.4.3 Thiết kế mạch nạp và giao tiếp máy tính ..................................................... 9

2.5 Môi trường phát triển phần mềm Arduino........................................................ 10

2.6 Tổng kết chương 2 ............................................................................................ 10


CHƯƠNG 3. THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG ...........................................11

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

3.1.1 Tổng quan phần cứng .................................................................................11

3.1.1.4 Module điều khiển động cơ L298 mạch cầu H ...................................... 15

3.1.2 Thiết kế sơ đồ mạch................................................................................... 15

3.1.3 Nguyên lý hoạt động ................................................................................. 15

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

3.2.1 Sơ đồ Use Case tổng quát .......................................................................... 16

3.2.2 Đặc tả Use Case ......................................................................................... 16

3.2.3 Phân tích các ca sử dụng ........................................................................... 19

3.2.4 Sơ đồ thuật toán ......................................................................................... 19

3.3 Kết quả thực nghiệm......................................................................................... 20

3.3.1 Code Arduino............................................................................................. 20

3.3.2 Mô hình thử nghiệm .................................................................................. 21

3.3.3 Kết quả thử nghiệm ................................................................................... 22

3.3.4 Nhận xét, đánh giá ..................................................................................... 22

KẾT LUẬN ................................................................................................................ 23

TÀI LIỆU THAM KHẢO .......................................................................................... 24

PHỤ LỤC ................................................................................................................... 25


DANH MỤC HÌNH VẼ

Hình 2.1 Thiết kế nguồn Arduino ................................................................................. 7


Hình 2.2 Thiết kế mạch dao động ................................................................................. 8
Hình 2.3 Thiết kế mạch reset ........................................................................................ 9
Hình 2.4 Thiết kế mạch nạp gia tiếp máy tính.............................................................. 9
Hình 3.1 Các thành phần của Arduino Uno R3 .......................................................... 11
Hình 3.2: Cảm biến siêu âm HC-SR04 ....................................................................... 13
Hình 3.3 Động cơ Servo ............................................................................................. 14
Hình 3.4 Module điều khiển động cơ L298 mạch cầu H ............................................ 15
Hình 3.5 Nguyên lý hoạt động của module L298N mạch cầu H ................................ 15
Hình 3.6 Điều khiển động cơ DC bằng mạch cầu H .................................................. 15
Hình 3.7 Sơ đồ nối mạch ............................................................................................ 15
Hình 3.8 Sơ đồ Use Case tổng quát ........................................................................... 16
Hình 3.9 Biểu đồ trình tự “Đi thẳng” ........................................................................ 19
Hình 3.10 Biểu đồ trình tự “Rẽ trái, Rẽ phải, Đi lùi”................................................ 19
Hình 3.11 Sơ đồ thuật toán ......................................................................................... 19
Hình 3.12 Code Arduino ............................................................................................. 20
Hình 3.13 Upload code Arduino ............................................................................... 21
Hình 3.14 Mô hình giả lập trên Proteus ..................................................................... 21
Hình 3.15 Mô hình xe tránh vật cản ........................................................................... 22

i
DANH MỤC BẢNG BIỂU

Bảng 3.1 Các thông số cơ bản của Arduino Uno R3.................................................. 12


Bảng 3.2 Các chân chức năng của HC-SR04............................................................. 13
Bảng 3.3 Đặc tả Use Case “Đi thẳng” ...................................................................... 16
Bảng 3.4 Đặc tả Use Case “Đi lùi” ........................................................................... 17
Bảng 3.5 Đặc tả Use Case “Rẽ trái” ......................................................................... 17
Bảng 3.6 Đặc tả Use Case “Rẽ phải” ........................................................................ 18

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

Từ viết tắt Từ đầy đủ

A Ampe

DC Direct Current

EEPROM Electrically Erasable Programmable Read-Only Memory

GND Ground

IC Integrated Circuit

ICSP In-Circuit Serial Programming

IDE Integrated Development Environment

LED/Led/led Light Emitting Diode

MHz Megahertz

MOSFET Metal Oxide Semiconductor Field Effect Transistor

PPM Pulse Position Modulation

PWM Pulse Width Modulation

RC Radio-Controller

RFID Radio Frequency Identification

RX Receiver

SPI Serial Peripheral Interface

SRAM Static random-access memory

TX Transmitter

UART Universal Asynchronous Receiver Transmitter

USB Universal Serial Bus

UC Use Case

iii
LỜI MỞ ĐẦU

Trên thế giới đã từng trải qua ba cuộc cách mạng công nghiệp lớn. Sau mỗi một
cuộc cách mạng, nó làm thay đổi thế giới trên tất cả các mặt kinh tế, xã hội và văn hóa.
Và hiện nay thế giới đang bước vào cuộc cách mạng công nghiệp lần thứ tư. Đây được
gọi là cuộc cách mạng số, thông qua các công nghệ như Internet vạn vật (loT), trí tuệ
nhân tạo (AI), thực tế ảo (VR), tương tác thực tại ảo (AR), mạng xã hội, điện toán đám
mây, phân tích dữ liệu lớn (SMAC) và một trong số đó là xe tự hành.

Các chuyên gia dự đoán, trong khoảng 15 đến 20 năm nữa, xe tự hành sẽ áp đảo
các phương tiện đang thịnh hành hiện nay. Hiện đã có rất nhiều tập đoàn sản xuất xe
hơi và công nghệ lớn trên thế giới đã tham gia vào cuộc chạy đua phát triển xe hơi
công nghệ tự lái thông minh (gọi tắt là xe tự lái, xe tự hành) mà không cần đến bàn tay
can thiệp của con người, trong đó có những tên tuổi nối bật như Tesla, Daimler hay
Google.

Yếu tố quan trọng để xe có thể tự động lái đuoc đó chính là tránh vật cản. Nhận
thấy được tầm quan trọng này, nên trong báo cáo này nhóm sẽ nghiên cứu về xe tự
hành tránh vật cản, sử dụng cảm biến siêu âm để đo khoảng cách đến vật cản.

Để thực hiện được báo cáo này nhóm đã sử dụng phần cứng là board Arduino
Uno đã nạp sẵn chương trình, kết hợp với cảm biến siêu âm HC-SR04.

Nội dung của báo cáo này gồm các phần:

- Chương 1: Tổng quan đề tài

- Chương 2: Cơ sở lý thuyết

- Chương 3: Thiết kế và xây dựng hệ thống

- Kết luận

Trong quá trình làm báo cáo, do trình độ chuyên môn còn hạn chế và điều kiện
không thuận lợi nên không thể tránh khỏi những sai sót, rất mong được sự đóng góp
của các thầy, cô và các bạn để báo cáo được hoàn thiện hơn.

1
Nhóm sinh viên thực hiện

2
TÓM TẮT ĐỀ TÀI

Yêu cầu chung và các chức năng của hệ thống


- Yêu cầu chung
• Tính thực thi cao, có khả năng phát triển.
• Đảm bảo về chất lượng, độ chính xác cao, làm việc lâu dài, bền bỉ.
• Tiết kiệm chi phí, linh kiện dễ kiếm dễ sử dụng và dễ dàng thay thế khi xảy
ra sự cố.
• Giảm thiểu chi phí, thời gian vận hành, bảo dưỡng và sửa chữa.
- Chức năng: Xe có khả năng di chuyển tiến, lùi, rẽ trái, rẽ phải, dừng lại khi nhận
được khoảng cách tín hiệu từ cảm biến.

Phương án thiết kế

• .

Linh kiện sử dụng


Xe được thiết kế với các linh kiện cấu tạo sau đây:

• Hai bánh xe gắn vào 2


• cầu

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

1.1 Đặt vấn đề


Trong quá trình

o.

1.2 Tính cấp thiết của đề tài

Trong ngành công nghiệp ô tô cũng như y.

1.3 Tình hình nghiên cứu hiện nay


Khái niệm Robot tự động đang phát triển nhanh chóng về số lượng, Robot tự
động và cấu tạo phức tạp củ nó ngày càng nâng cao để phù hợp với từng lĩnh vuc khác
nhau. Có rất nhiều loại điều khiển Robot tự động như: Thiết lập đường đi, định vị
GPS,v.v... Robot tránh vật cản là loại Robot có khả năng tránh va chạm với những trở
ngại bất ngờ.

1.3.1 Tình hình nghiên cứu quốc tế

Một số hãng xe đa áp dụng công nghệ tự động không người lái có thể kể đến như:

- Hãng xe Tesla:
- Hãng Volvo:).
- Hãng Areo Mobil:.

1.3.2 Tình hình nghiên cứu trong nước

- Mẫu xe tự hành thông minh cấp độ 4 “Made in Vietnam” mang tên Phenikaa
vừa được ra mắt ngày 26-3 tại Hà Nội
- Ngày 22-1, VinFast công bố 3 dòng xe SUV điện thông minh, sử dụng công
nghệ trí tuệ nhân tạo với những tính năng thông minh vượt trội.

4
1.4 Tổng kết chương 1
Từ tình hình nghiên cứu hiện nay cùng với tính cấp thiết của đề tài, dự án xe tránh vật
cản được nghiên cứu và thực nghiệm. Xe được sử dụng bằng Arduino sử dụng cảm
biến siêu âm để dò tìm để tránh va chạm.

5
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT VỀ ARDUINO

2.1 Giới thiệu


Arduino là.

2.2 Lịch sử ra đời


Arduino

2.3 Kiến trúc phần cứng Arduino


Phần cứng.

6
2.4 Thiết kế nguồn

Hình 2.1 Thiết kế nguồn Arduino

Phần nguồn của Board mạch Arduino được thiết kế để thực hiện các nhiệm
vụ sau:

• Lựa chọn
• .

7
2.4.1 Thiết kế mạch dao động

Mạch giao động tạo ra các xung clock giúp cho vi điều khiển hoạt động, thực thi lệnh…
Board mạch Arduino Uno sử dụng thạch anh 16Mhz làm nguồn dao động.

Hình 2.2 Thiết kế mạch dao động

2.4.2 Thiết kế mạch reset

Để vi điều khiển thực hiện khởi động lại thì chân RESET phải ở mức logic LOW (~0V)
trong 1 khoản thời gian đủ yêu cầu. Mạch reset của board Arduino UnoR3 phải đảm
bảo được 02 việc:

Reset bằng tay: Khi nhấn nút, chân RESET nối với GND, làm cho MCU RESET. Khi
không nhấn nút chân Reset được kéo 5V.

Reset tự động: Reset tự động được thực hiện ngay khi cấp nguồn cho vi điều khiển nhờ
sự phối hợp giữa điện trở nối lên nguồn và tụ điện nối đất. Thời gian tụ điện nạp giúp
cho chân RESET ở mức LOW trong 1 khoản thời gian đủ để vi điều khiển thực hiện
reset.

Khởi động vi điều khiển trước khi nạp chương trình mới.

8
Hình 2.3 Thiết kế mạch reset

2.4.3 Thiết kế mạch nạp và giao tiếp máy tính

Vi điều khiển Atmega328P trên Board Arduino UnoR3 đã được nạp sẵn 1 bootloader,
cho phép nhận chương trình mới thông qua chuẩn giao tiếp UART (chân 0 và 1) ở
những giây đầu sau khi vi điều khiển Reset....

Hình 2.4 Thiết kế mạch nạp gia tiếp máy tính

9
2.5 Môi trường phát triển phần mềm Arduino
Môi trường phát triển tích hợp (IDE) của Arduino là một.

Hình 2.5 Giao diện phần mềm Arduino

Có các tính năng chính:

• Các bo mạch.
• Có thể điều khiển.
• Không giống như.
• Hơn nữa, phần.

2.6 Tổng kết chương 2


Trong chương này, ta đã tìm hiểu về khái niệm, lịch sử ra đời, kiến trúc phần cứng,
thiết kế nguồn, cùng môi trường phát triển phần mềm của Arduino. Từ cơ sở lý
thuyết về Arduino, nhóm sẽ tiến hành xây dựng và thiết kế hệ thống xe tự hành với
linh kiện chính là board Arduino.

10
CHƯƠNG 3. THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG

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

3.1.1 Tổng quan phần cứng

3.1.1.1 Arduino Uno R3

Một board mạch chủ chính dùng để truyền và nhận dữ liệu từ người sử dụng đến các
thiết bị điện tử khác.

Hình 3.1 Các thành phần của Arduino Uno R3

* Các thành phần:

1. Cáp USB:.
2. IC Atmega 16U2:.
3. Cổng nguồn ngoài:.
4. Cổng USB:.
5. Nút reset:.
6. ICSP của ATmega 16U2: ICSP là chữ viết tắt của In-Circuit Serial
Programming. Arduino.
7. Chân xuất tín hiệu ra: Có tất cả có thể băm xung (PWM), tức có thể điều khiển
tốc độ động cơ hoặc độ sáng của đèn
8. IC ATmega 328: IC này được sử
9. Chân ICSP của ATmega 328: Các.
10. Chân lấy tín hiệu Analog: Các chân.
11. Chân cấp nguồn cho cảm biến:.
12. Các linh kiện khác trên board Arduino Uno: .

* Các thông số cơ bản:

11
Bảng 3.1 Các thông số cơ bản của Arduino Uno R3

12
3.1.1.2 Cảm biến siêu âm HC-SR04

Cảm biến siêu âm có chức năng để đo khoảng cách bằng cách áp dụng công thức tính
toán khoảng cách dựa trên thời gian và vận tốc của sóng cao tần do nó phát ra.

Hình 3.2: Cảm biến siêu âm HC-SR04

*Thông số kĩ thuật:

• Điện áp: 5V DC
• Dòng hoạt động: < 2mA
• Mức cao: 5V
• Mức thấp: 0V
• Góc tối đa: 15 độ
• Khoảng cách: 2cm – 450cm (4.5m)
• Độ chính xác: 3mm

*Các chân chức năng:

Bảng 3.2 Các chân chức năng của HC-SR04

OUT Không sử dụng

VCC Cấp nguồn cho cảm biến (5V) hoặc 3.3V ở cảm biến 3V3

TRIGGER Chân phát sóng âm. Là chu kỳ của của điện cao /thấp diễn ra.

ECHO Trạng thái ban dầu là 0V, khi có tín hiệu trả về sẽ là 5V và sau đó trở về 0V

13
GND Nối cực âm của mạch

*Nguyên lí hoạt động:

Để đo khoảng cách, ta sẽ phát 1 xung rất ngắn (5 microSeconds) từ chân Trig. Sau
đó, cảm biến siêu âm sẽ tạo ra 1 xung HIGH ở chân Echo cho đến khi nhận lại được
sóng phản xạ ở pin này. Chiều rộng của xung sẽ bằng với thời gian sóng siêu âm được
phát từ cảm biển và quay trở lại.

Tốc độ của âm thanh trong không khí là 340 m/s (hằng số vật lý), tương đương với
29,412 microSeconds/cm (106 / (340*100)). Khi đã tính được thời gian, ta sẽ chia cho
29,412 để nhận được khoảng cách.

3.1.1.3 Khối động cơ Servo

- Servo là một dạng động cơ điện đặc biệt. Không giống như động cơ thông thường cứ
cắm điện vào là quay liên tục, servo chỉ quay khi được điều khiển (bằng xung PPM)
với góc quay nằm trong khoảng bất kì từ 00 – 1800. Mỗi loại servo có kích thước, khối
lượng và cấu tạo khác nhau. Có loại thì nặng chỉ 9g (chủ yếu dùng trên máy bay mô
mình), có loại thì sở hữu một momen lực bá đạo (vài chục Newton/m), hoặc có loại thì
khỏe và nhông sắc chắc chắn,...

Hình 3.3 Động cơ Servo

*Thông số kĩ thuật:

• Khối lượng
• .

14
*Nguyên lý hoạt động:

- Động cơ servo được thiết kế những y.

3.1.1.4 Module điều khiển động cơ L298 mạch cầu H

Hình 3.4 Module điều khiển động cơ L298 mạch cầu H

*Thông số kỹ thuật:

• Driver
• .
*Nguyên lí hoạt động:
- Chúng ta
trong một khoảng thời gian quy định.

Hình 3.5 Nguyên lý hoạt động của module L298N mạch cầu H

Vì vậy: Tùy thuộc

cầu H:
Mặt khác, để

3.1.2 Thiết kế sơ đồ mạch

Hình 3.7 Sơ đồ nối mạch

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

n.

Hình 3.6 Điều khiển động cơ DC bằng mạch cầu H

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

3.2.1 Sơ đồ Use Case tổng quát

Hình 3.8 Sơ đồ Use Case tổng quát

3.2.2 Đặc tả Use Case

3.2.2.1 Đặc tả UC “Đi thẳng”

Bảng 3.3 Đặc tả Use Case “Đi thẳng”

Use Case

Actor

Brief Description

16
Pre-conditions

Basic Flows 1.

Alternative Flows

Post-conditions

3.2.2.2 Đặc tả UC “Đi lùi”

Bảng 3.4 Đặc tả Use Case “Đi lùi”

Use Case

Actor

Brief Description

Pre-conditions

Basic Flows 1.

Alternative Flows

Post-conditions

3.2.2.3 Đặc tả UC “Rẽ trái”

Bảng 3.5 Đặc tả Use Case “Rẽ trái”

Use Case

17
Actor

Brief Description

Pre-conditions

Basic Flows 1.

Alternative Flows

Post-conditions

3.2.2.4 Đặc tả UC “Rẽ phải”

Bảng 3.6 Đặc tả Use Case “Rẽ phải”

Use Case

Actor

Brief Description

Pre-conditions

Basic Flows 1.

Alternative Flows

Post-conditions

3.2.2.5 Đặc tả UC “Dừng lại”

Bảng 3.7 Đặc tả Use Case “Dừng lại”

18
Use Case

Actor

Brief Description

Pre-conditions

Basic Flows

Alternative Flows

Post-conditions

3.2.3 Phân tích các ca sử dụng

3.2.3.1 Biểu đồ trình tự “Đi thẳng”

Hình 3.9 Biểu đồ trình tự “Đi thẳng”

3.2.3.2 Biểu đồ trình tự “Rẽ trái, Rẽ phải, Đi lùi”

Hình 3.10 Biểu đồ trình tự “Rẽ trái, Rẽ phải, Đi lùi”

3.2.4 Sơ đồ thuật toán

Hình 3.11 Sơ đồ thuật toán

*Mô tả quy trình

Khi bắt đầu, xe sẽ tính toán khoảng cách vật cản phía trước.

• Nếu khoảng cách lớn hơn 40cm, xe đi thẳng.

19
• Nếu khoảng cách nhỏ hơn 40cm, xe sẽ tính toán khoảng cách vật cản trái và
khoảng cách vật cản phải.
o Nếu cả hai khoảng cách trái, phải đều nhỏ hơn 40cm, xe đi lùi, sau đó
dừng lại.
o Nếu không, xe sẽ so sánh khoảng cách vật cản trái và khoảng cách vật
cản phải:
 Nếu khoảng cách vật cản phải lớn hơn, xe rẽ phải.
 Nếu khoảng cách vật cản trái lớn hơn, xe rẽ trái.

3.3 Kết quả thực nghiệm

3.3.1 Code Arduino

Hình 3.12 Code Arduino

- Tiến hành upload(nạp) code:

20
Hình 3.13 Upload code Arduino

3.3.2 Mô hình thử nghiệm

3.3.2.1 Mô hình giả lập trên Proteus

Hình 3.14 Mô hình giả lập trên Proteus

21
3.3.2.2 Mô hình thực tế

Hình 3.15 Mô hình xe tránh vật cản

3.3.3 Kết quả thử nghiệm

Video thử nghiệm được đính kèm với tài liệu này.

3.3.4 Nhận xét, đánh giá

- Xe chạy đúng với thuật toán đã đề ra


- Xe có khả năng xoay sở trong không gian hẹp
- Tốc độ xe không quá nhanh do đấu nối và nguồn chưa thực sự tốt

22
KẾT LUẬN

1. Kết quả đạt được


- .
2. Hạn chế
- kiện.
3. Hướng phát triển
- tế).

23
TÀI LIỆU THAM KHẢO

[1] ThS. Trần Vĩnh Tường, “Tổng quan về Arduino”, trong Giáo trình Chuyên đề
Arduino và truyền thông (Nghề: CNKT Điện tử, truyền thông) – CĐ Kinh tế Kỹ
thuật TP.HCM, tr. 6-9, 2020.

[2] https://www.arduino.cc/en/main/docs

24
PHỤ LỤC

Chương trình con Tránh vật cản


void Tranh_Vat_Can(byte KC_choPhep)

25

You might also like