Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 14

1

TRƯỜNG ĐẠI HỌC PHENIKAA


KHOA ĐIỆN – ĐIỆN TỬ

BÁO CÁO CUỐI KÌ


Học phần Lập Trình Căn Bản – Điện Tử

Tên đề tài: Thiết kế và chế tạo xe tự hành

Sinh viên thực hiện:


Phạm Thanh Tùng MSSV: 22010907
Lớp: K16AI&RB
Thuộc nhóm số 13, cùng với:
Nguyễn Quang Trung MSSV: 22011211
Lớp: K16AI&RB

Giảng viên hướng dẫn: TS. Nguyễn Viết Chiến

Khoa Điện – Điện tử

1
2

Hà Nội, Học kỳ II , năm học 2023-2024

Mức độ đạt chuẩn quy định


Trọng
Điểm (4.0- Điểm (5.5- Điểm (7.0- Điểm (8.5- số
Tiêu chí Điểm (0-3.9)
5.4) 6.9) 8.4) 10)

Ý tưởng có
Ý tưởng Không có ý Ý tưởng Có ý tưởng Ý tưởng có
tính cải tiến 20%
(CĐR 1.1) tưởng cụ thể chưa rõ ràng cụ thể điểm mới
rõ ràng

Báo cáo thể


Không đạt về Đạt về hình Nội dung
Quyển báo Nội dung cụ hiện tốt ý
mặt hình thức và nội logic thể
cáo (CĐR thể theo các tưởng và 20%
thức theo dung không hiện được ý
1.1) yêu cầu đặt ra mang phong
mẫu có tính logic tưởng chung
cách riêng

Trình bày và Trình bày tốt


Không trình Trình bày Trình bày
Bài thuyết thể hiện được vấn đề, có
bày được được vấn đề được vấn đề
trình (CĐR sự hiểu biết thể phân tích 20%
vấn đề một ở mức cơ một cách
2.1) rõ ràng về mở rộng vấn
cách rõ ràng bản logic
vấn đề đề

Chương trình Chương trình Chương Chương trình


Thiết kế
thực hiện thực hiện trình thực thực hiện
chương Chương trình
được một được một hiện được được các 20%
trình (CĐR được tối ưu
phần yêu cầu phần yêu cầu các yêu cầu chức năng ý
2.1)
đặt ra đặt ra chính tưởng đưa ra

Tùy chỉnh Chương trình Chương trình Chương Chương trình


được thực hiện thực hiện trình thực thực hiện
Chương trình
chương được một được một hiện được được các 20%
được tối ưu
trình (CĐR phần yêu cầu phần yêu cầu các yêu cầu chức năng ý
2.2) đặt ra đặt ra chính tưởng đưa ra

Điểm đánh giá: ……………………..

Cán bộ chấm thi 1 Cán bộ chấm thi 2


(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)

2
3

Bảng phân chia công việc

STT Họ tên Nội dung thực hiện Ghi chú

 Lập ý tưởng thực hiện project


 Nội dung 1: Lập trình thu thập dữ liệu
cảm biến LM35
 Edit video Thành viên,
PHẠM  Viết báo cáo nội dung 1
1 tích cực tham
THANH TÙNG  Nội dung 3: Lập trình hiển thị kết quả gia
trên giao diện chính
 Chuẩn bị file báo cáo (ppt)
 Tổng hợp báo cáo cuối kỳ

 Lập ý tưởng thực hiện project


 Nội dung 2: Lập trình thu thập dữ liệu
NGUYỄN cảm biến đo khoảng cách Nhóm trưởng
2 QUANG  Viết báo cáo nội dung 2 , tích cực
TRUNG  Nội dung 3: Lập trình hiển thị kết quả tham gia
trên giao diện chính
 Thiết kế lắp đặt phần cứng

3
4

Lời cam đoan

Em xin cam đoan đề tài “ Thiết kế và chế tạo xe tự hành ” được thực hiện
bởi Nhóm số 13, bao gồm các thành viên là PHẠM THANH TÙNG, NGUYỄN QUANG
TRUNG, là sự cố gắng, nỗ lực của bản thân em và các thành viên trong nhóm, dưới sự
hướng dẫn của TS. Nguyễn Viết Chiến Kết quả của báo cáo này là trung thực, không
có sự sao chép, lấy cắp, hay thuê mượn của người khác. Báo cáo có tham khảo và
trích dẫn một số tài liệu nguồn gốc rõ ràng. Nếu phát hiện có sự sao chép kết quả của
người khác, em xin chịu hoàn toàn trách nhiệm.

Hà Nội, ngày 24 tháng 6 năm 2024

Sinh viên thực hiện

(Ký và ghi rõ họ tên)

MỤC LỤC
4
5

PHIẾU ĐÁNH GIÁ BÁO CÁO CUỐI KÌ...................2


Bảng phân chia công việc.............................................3
Lời cam đoan…………………………………………
Kế hoạch thực hiện đồ án…………………………….4

Chương 1: Lý thuyết tổng quan……………………...6

Chương 2 : Thiết kế hệ thống......................................6


2.1 Sơ đồ tổng quát của hệ thống...................................
2.2 Nguyên lí hoạt động.................................................
2.3 Linh kiện, thiết bị chuẩn bị....................................6
.....................................................................................7

Chương 3 : Kết quả thực hiện và kết luận....................8


3.1 Lập trình Labview…………………………………
3.2 code IDE Arduino,………………………………..
3.2.1 Hình ảnh code IDE Arduino……………………
3.2.2 Giải thích code IDE Arduino……………………9
………………………………………………………..10
……………………………………………………….11
3.3 Nội dụng của giao diện ………………………….12
3.4 Kết quả thực nghiệm của xe tự hành…………….13
3.5 Tài liệu tham khảo……………………………….14

5
6

CHƯƠNG 1: TỔNG QUAN VÀ CÁC GIẢI PHÁP THỰC HIỆN


( Bạn Phạm Thanh Tùng thực hiện)

CHƯƠNG 2: THIẾT KẾ HỆ THỐNG

2.1. Sơ đồ tổng quát của hệ thống


(Phạm Thanh Tùng thực hiện)
2.2 Nguyên lý hoạt động
Nguyên lý hoạt động của hệ thống như sau:
- Khi xe bắt đầu hoạt động, cả hai động cơ dẫn động hai bánh quay theo
chiều thuận,đưa xe về phía trước, đồng thời, bộ vi xử lý ở đây là Arduino se
liên tục tính toán khoảng cách từ cảm biến siêu âm trên robot đến bề mặt phản
xạ. Nếu khoảng cách tới bề mặt vật cản phản xạ là 15cm thì robot dừng lại, quét
phía trái và phải, nếu phía nào trống thì 1 động cơ sẽ quay thuận trong khi 1
động cơ dừng cho phép robot đi về 1 hướng trái hoặc phải. Cảm biến góc sẽ
nhớ góc có vật cản và di chuyển theo hướng có khoảng trống và đi tiếp

Hình 2.2: Sơ đồ nguyên lý/ Sơ đồ thuật toán (ví dụ)

2.3. Linh kiện, thiết bị chuẩn bị

Bảng 2.1. Danh sách linh kiện, vật tư, thiết bị

TT Tên linh kiện/ vật tư Thông số kỹ thuật


Giá thành
(nếu có)
1 Động cơ giảm tốc – Điện áp: 3-12VDC, khuyến 12.000đ/chiếc
vàng x2 nghị ở giải điện áp (6-8VDC)
– Dòng: 70mA (250mA Max) ở
3V
– Mô men xoắn: 800gfcm
– Tỷ số truyền: 1:48

6
7

– Tốc độ:
+ 125 rpm 3VDC (bánh 66mm:
26rpm)
+ 208 rpm 5VDC (bánh 66mm:
44rpm)
2 Mô đun cảm biến Điện áp: 5V DC 20.000đ
siêu âm SR04 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
3 Mạch Điều Khiển Điện áp đầu vào: 5~30VDC, 38.000₫
Động Cơ DC L298N Dòng tối đa cho mỗi cầu H là:
2A, Kích thước: 43x43x27mm
4 Cảm biến hồng - Điện áp làm việc: 3.3V – 5V 9.000đ/chiếc
ngoại LM393 x3 DC.
- Lỗ vít 3 mm
- Kích thước: 3.2cm * 1.4cm
Cổng giao tiếp:
- VCC: điện áp chuyển đổi từ
3.3V đến 5V (có thể được kết nối
trực tiếp đến vi điều khiển 5V và
3.3V)
- GND: GND ngoài
- OUT: đầu ra kỹ thuật số (0
và 1)
5 Mạch Arduino Uno – Mạch Uno R3 kèm cáp 239.000₫
R3 Arduino Uno R3 DIP (kèm cáp)
Điện áp hoạt động: 5~12VDC,
Dòng tiêu thụ: Khoảng 30mA,
Khối lượng: 25 gram

7
8

CHƯƠNG 3: KẾT QUẢ THỰC HIỆN VÀ KẾT LUẬN

3.1. Lập trình LABVIEW


(Phạm Thanh Tùng thực hiện)
3.2. Hình ảnh code Arduino

3.2.1 Giải thích code Arduino

8
9

1. Định nghĩa các chân kết nối:

#define CAMBIEN_VACH_TRAI A0
#define CAMBIEN_VACH_PHAI A1
#define CAMBIEN_VATCAN 2
#define DONGCO_TRAI_TIEN 3
#define DONGCO_TRAI_LUI 4
#define DONGCO_PHAI_TIEN 5
#define DONGCO_PHAI_LUI 6

Đoạn mã này định nghĩa các chân kết nối trên Arduino:

o CAMBIEN_VACH_TRAI và CAMBIEN_VACH_PHAI là các


chân analog để đọc giá trị từ cảm biến vạch kẻ đường bên trái và
bên phải.
o CAMBIEN_VATCAN là chân digital để đọc giá trị từ cảm biến
vật cản.
o DONGCO_TRAI_TIEN, DONGCO_TRAI_LUI,
DONGCO_PHAI_TIEN, và DONGCO_PHAI_LUI là các chân
digital để điều khiển các động cơ tiến và lùi của bánh trái và bánh
phải.
2. Các biến toàn cục:

int nguong_vach = 500;


int co_vat_can = LOW;

o nguong_vach: giá trị ngưỡng để xác định có vạch kẻ hay không.


o co_vat_can: biến lưu trạng thái của cảm biến vật cản.
3. Hàm setup():

void setup() {
pinMode(CAMBIEN_VACH_TRAI, INPUT);
pinMode(CAMBIEN_VACH_PHAI, INPUT);
pinMode(CAMBIEN_VATCAN, INPUT);
pinMode(DONGCO_TRAI_TIEN, OUTPUT);
pinMode(DONGCO_TRAI_LUI, OUTPUT);
pinMode(DONGCO_PHAI_TIEN, OUTPUT);
pinMode(DONGCO_PHAI_LUI, OUTPUT);

Serial.begin(9600);
}

Hàm này thiết lập các chân kết nối:


9
10

o Các cảm biến được đặt làm đầu vào (INPUT).


o Các động cơ được đặt làm đầu ra (OUTPUT).
o Serial communication được khởi động để in giá trị cảm biến ra
o màn hình Serial Monitor.
4. Hàm loop():

void loop() {
int vach_trai = analogRead(CAMBIEN_VACH_TRAI);
int vach_phai = analogRead(CAMBIEN_VACH_PHAI);
int vat_can = digitalRead(CAMBIEN_VATCAN);

Serial.print("Vạch Trái: ");


Serial.print(vach_trai);
Serial.print(" - Vạch Phải: ");
Serial.print(vach_phai);
Serial.print(" - Vật Cản: ");
Serial.println(vat_can);

if (vat_can == HIGH) {
dungDongCo();
} else {
if (vach_trai > nguong_vach && vach_phai <
nguong_vach) {
queoTrai();
} else if (vach_trai < nguong_vach &&
vach_phai > nguong_vach) {
queoPhai();
} else {
diThang();
}
}
}

Hàm này được lặp đi lặp lại liên tục:

o Đọc giá trị từ các cảm biến vạch trái, vạch phải và vật cản.
o In các giá trị này ra màn hình Serial Monitor.
o Nếu phát hiện vật cản (vat_can == HIGH), gọi hàm
dungDongCo() để dừng robot.
o Nếu không có vật cản, kiểm tra giá trị cảm biến vạch kẻ:
 Nếu chỉ có cảm biến trái vượt ngưỡng, gọi hàm
queoTrai() để rẽ trái.
 Nếu chỉ có cảm biến phải vượt ngưỡng, gọi hàm
queoPhai() để rẽ phải.
10
11

 Nếu cả hai cảm biến không vượt ngưỡng, gọi hàm


diThang() để đi thẳng.
5. Các hàm điều khiển động cơ:
o Hàm diThang(): Điều khiển robot đi thẳng.

void diThang() {
digitalWrite(DONGCO_TRAI_TIEN, HIGH);
digitalWrite(DONGCO_TRAI_LUI, LOW);
digitalWrite(DONGCO_PHAI_TIEN, HIGH);
digitalWrite(DONGCO_PHAI_LUI, LOW);
}

o Hàm queoTrai(): Điều khiển robot rẽ trái.

void queoTrai() {
digitalWrite(DONGCO_TRAI_TIEN, LOW);
digitalWrite(DONGCO_TRAI_LUI, HIGH);
digitalWrite(DONGCO_PHAI_TIEN, HIGH);
digitalWrite(DONGCO_PHAI_LUI, LOW);
}

o Hàm queoPhai(): Điều khiển robot rẽ phải.

void queoPhai() {
digitalWrite(DONGCO_TRAI_TIEN, HIGH);
digitalWrite(DONGCO_TRAI_LUI, LOW);
digitalWrite(DONGCO_PHAI_TIEN, LOW);
digitalWrite(DONGCO_PHAI_LUI, HIGH);
}

o Hàm dungDongCo(): Dừng robot.

void dungDongCo() {
digitalWrite(DONGCO_TRAI_TIEN, LOW);
digitalWrite(DONGCO_TRAI_LUI, LOW);
digitalWrite(DONGCO_PHAI_TIEN, LOW);
digitalWrite(DONGCO_PHAI_LUI, LOW);
}

3.3 Nội dụng của giao diện

11
12

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

12
13

Hình ảnh bên trái xe

Hình ảnh bên phải xe

Tài liệu tham khảo

Tiếng Việt
13
14

 ABC – Linh kiện và mạch điện tử - NXB GD VN – 2013


 Đỗ Xuân Thụ - Kỹ thuật điện tử - NXB GD – 2006
 Phạm Minh Hà – Kỹ thuật mạch điện tử - NXB KH&KT – 1997
Tiếng Anh
 Heinz-Piest-Institut fuer Handwerkstechnik at the University of Hannover –
Electrotechnical Fundamentals of Electronics – TZ-Verlags GmbH – Germany- 1995
 Klaus Tkotz – Fachkunde Elektrotechnik – Verlag Europa-Lehrmittel – 2002

14

You might also like