Bảng phân chia công việc1 PHẠM THANH TÙNGLậ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 LM35Edit videoViết báo cáo nội dung 1Nội dung 3: Lập trình hiể
Trang 1TRƯỜ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ử
Trang 2Mức độ đạt chuẩn quy định
Trọng số
(4.0-5.4)
Điểm (5.5-6.9)
Điểm (7.0-8.4)
Điểm (8.5-10)
Ý tưởng
(CĐR 1.1)
Không có ý tưởng cụ thể
Ý tưởng chưa rõ ràng
Có ý tưởng
cụ thể
Ý tưởng có điểm mới
Ý tưởng có tính cải tiến
rõ ràng
20%
Quyển báo
cáo (CĐR
1.1)
Không đạt về
mặt hình thức theo mẫu
Đạt về hình thức và nội dung không
có tính logic
Nội dung logic thể hiện được ý tưởng chung
Nội dung cụ thể theo các yêu cầu đặt ra
Báo cáo thể hiện tốt ý tưởng và mang phong cách riêng
20%
Bài thuyết
trình (CĐR
2.1)
Không trình bày được vấn đề một cách rõ ràng
Trình bày được vấn đề
ở mức cơ bản
Trình bày được vấn đề một cách logic
Trình bày và thể hiện được
sự hiểu biết
rõ ràng về vấn đề
Trình bày tốt vấn đề, có thể phân tích
mở rộng vấn đề
20%
Thiết kế
chương
trình (CĐR
2.1)
Chương trình
thực hiện được một phần yêu cầu
đặt ra
Chương trình thực hiện được một phần yêu cầu đặt ra
Chương trình thực hiện được các yêu cầu chính
Chương trình thực hiện được các chức năng ý tưởng đưa ra
Chương trình được tối ưu 20%
Tùy chỉnh
được
chương
trình (CĐR
2.2)
Chương trình
thực hiện được một phần yêu cầu
đặt ra
Chương trình thực hiện được một phần yêu cầu đặt ra
Chương trình thực hiện được các yêu cầu chính
Chương trình thực hiện được các chức năng ý tưởng đưa ra
Chương trình được tối ưu 20%
Điểm đánh giá: ………
(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)
Trang 3Bảng phân chia công việc
1 PHẠM THANH
TÙNG
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
Viết báo cáo nội dung 1
Nội dung 3: Lập trình hiển thị kết quả 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ỳ
Thành viên, tích cực tham gia
2
NGUYỄN
QUANG
TRUNG
Lập ý tưởng thực hiện project
Nội dung 2: Lập trình thu thập dữ liệu cảm biến đo khoảng cách
Viết báo cáo nội dung 2
Nội dung 3: Lập trình hiển thị kết quả trên giao diện chính
Thiết kế lắp đặt phần cứng
Nhóm trưởng , tích cực tham gia
Trang 4Lờ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
Trang 5PHIẾ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
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)
Trang 6CHƯƠ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ị
(nếu có)
1 Động cơ giảm tốc
vàng x2
– Điện áp: 3-12VDC, khuyến 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 – Tốc độ:
+ 125 rpm 3VDC (bánh 66mm:
26rpm)
12.000đ /chiếc
Trang 7+ 208 rpm 5VDC (bánh 66mm:
44rpm)
2 Mô đun cảm biến
siêu âm SR04
Đ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
20.000đ
3 Mạch Điều Khiển
Động Cơ DC L298N
Điện áp đầu vào: 5~30VDC, Dòng tối đa cho mỗi cầu H là:
2A, Kích thước: 43x43x27mm
38.000₫
4 Cảm biến hồng
ngoại LM393 x3
- Điện áp làm việc: 3.3V – 5V 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)
9.000đ /chiếc
5 Mạch Arduino Uno
R3
– Mạch Uno R3 kèm cáp 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
239.000₫
CHƯƠNG 3: KẾT QUẢ THỰC HIỆN VÀ KẾT LUẬN 3.1 Lập trình LABVIEW
Trang 83.2 Hình ảnh code Arduino
3.2.1 Giải thích code Arduino
1 Định nghĩa các chân kết nối:
#define CAMBIEN_VACH_TRAI A0
Trang 9#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:
o Các cảm biến được đặt làm đầu vào (INPUT)
Trang 10o 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
Trang 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
Trang 123.4 Kết quả thực nghiệm
Trang 13Hình ảnh bên trái xe
Hình ảnh bên phải xe
Tài liệu tham khảo
Trang 14ABC – Linh kiện và mạch điện tử - NXB GD VN – 2013
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
ABC – Linh kiện và mạch điện tử - NXB GD VN – 2013
Phạm Minh Hà – Kỹ thuật mạch điện tử - NXB KH&KT – 1997
ABC – Linh kiện và mạch điện tử - NXB GD VN – 2013
Tiếng Anh
Heinz-Piest-Institut fuer Handwerkstechnik at the University of Hannover –
ABC – Linh kiện và mạch điện tử - NXB GD VN – 2013
Electrotechnical Fundamentals of Electronics – TZ-Verlags GmbH – Germany- 1995
Klaus Tkotz – Fachkunde Elektrotechnik – Verlag Europa-Lehrmittel – 2002
ABC – Linh kiện và mạch điện tử - NXB GD VN – 2013