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 PHENIKAAKHOA Đ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
Trang 2Mức độ đạt chuẩn quy định
Điểm 6.9)
(5.5-Điểm 8.4)
(7.0-Điểm 10)
(8.5-Ý tưởng(CĐR 1.1)
Không có ýtưởng cụ thể
Ý tưởngchưa rõ ràng
Có ý tưởngcụ thể
Ý tưởng cóđiểm mới
Ý tưởng cótính cải tiến
rõ ràng
Quyển báocáo (CĐR
Không đạt vềmặt hìnhthức theo
Đạt về hìnhthức và nộidung khôngcó tính logic
Nội dunglogic thểhiện được ýtưởng chung
Nội dung cụthể theo cácyêu cầu đặt ra
Báo cáo thểhiện tốt ý
tưởng vàmang phong
cách riêng
Bài thuyếttrình (CĐR
Không trìnhbày đượcvấn đề mộtcá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áchlogic
Trình bày vàthể hiện được
sự hiểu biếtrõ ràng về
vấn đề
Trình bày tốtvấn đề, cóthể phân tíchmở rộng vấn
Thiết kếchươngtrình (CĐR
Chương trìnhthực hiệnđược mộtphần yêu cầu
đặt ra
Chương trìnhthực hiệnđược mộtphần yêu cầu
đặt ra
Chươngtrình thựchiện đượccác yêu cầu
Chương trìnhthực hiệnđược cácchức năng ýtưởng đưa ra
Chương trình
được tối ưu 20%
Tùy chỉnhđượcchươngtrình (CĐR
Chương trìnhthực hiệnđược mộtphần yêu cầu
đặt ra
Chương trìnhthực hiệnđược mộtphần yêu cầu
đặt ra
Chươngtrình thựchiện đượccác yêu cầu
Chương trìnhthực hiệnđược cácchức năng ýtưởng đưa ra
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 thamgia
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ệnbở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ôngcó 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………
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
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ỐNG2.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étphí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ốcvàng x2
– Điện áp: 3-12VDC, khuyếnnghị ở 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ếnsiêu âm SR04
Điện áp: 5V DC
Dòng hoạt động: < 2mAMức cao: 5V
Mức thấp: 0VGó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Độ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
4 Cảm biến hồngngoại LM393 x3
- Điện áp làm việc: 3.3V – 5VDC.
- Lỗ vít 3 mm
- Kích thước: 3.2cm * 1.4cmCổng giao tiếp:
- VCC: điện áp chuyển đổi từ3.3V đến 5V (có thể được kết nốitrực tiếp đến vi điều khiển 5V và3.3V)
– 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
CHƯƠNG 3: KẾT QUẢ THỰC HIỆN VÀ KẾT LUẬN3.1 Lập trình LABVIEW
Trang 83.2 Hình ảnh code Arduino
3.2.1 Giải thích code Arduino1 Đị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();
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