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
LÊ
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 tố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
A
DC
EEPROM
GND
IC
Từ đầy đủ
Ampe
Direct Current
Electrically Erasable Programmable Read-Only Memory
Ground
Integrated Circuit
ICSP
In-Circuit Serial Programming
IDE
Integrated Development Environment
LED/Led/led
MHz
MOSFET
Light Emitting Diode
Megahertz
Metal Oxide Semiconductor Field Effect Transistor
PPM
Pulse Position Modulation
PWM
Pulse Width Modulation
RC
RFID
Radio-Controller
Radio Frequency Identification
RX
Receiver
SPI
Serial Peripheral Interface
SRAM
TX
UART
Static random-access memory
Transmitter
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 chun gia dự đố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 đồ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 độ chun 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
-
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
tố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
• .
*Ngun 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