Lưu ý khi in lại sân phải giữ đúng tỉ lệ file gốc
-
Khởi động Arduino IDE lần đầu tiên để cài các driver và thư viện cần thiết
-
Tải xuống mã nguồn đầy đủ của chương trình tại đây
-
Giải nén file XeDoLineUTC2-master.zip vừa tải về
-
Khởi động Arduino IDE chọn File >> Open và trỏ đường dẫn đến file XeDoLineUTC2-master.ino trong thư mục XeDoLineUTC2-master vừa xả nén
-
Cắm cáp kết nối ArduinoNano và PC
-
Tại giao diện phần mềm ArduinoIDE. Chọn board: Tools >> Board >> Arduino Nano
-
Chọn loại vi xử lý: Tools >> Processor >> ATmega328P (Old Bootloader)
-
Chọn cổng giao tiếp: Tools >> Port >> COMxx
-
Nạp chương trình đầu tiên từ PC xuống Arduino: Sketch >> Upload
-
Chờ phần mềm báo Done Uploading là đã nạp thành công code xuống ArduinoNano
Chương trình sẽ tự lưu lại các giá trị cảm biến sau khi cân chỉnh và tự động nạp lại trong những lần khởi động kế tiếp
Do đó chỉ cần thực hiện lại quy trình này khi xe có dấu hiệu hay trượt mất line do điều kiện ánh sáng ngoài trời thay đổi
- Tắt nguồn động cơ xe
- Cắm cáp kết nối ArduinoNano và PC
- Nhấn và giữ nút cân chỉnh - (nút nhấn đặt phía trước cảm biến dò line)
- Vẫn nhấn giữ nút cân chỉnh đồng thời nhấn vào biểu tượng kính lúp ở góc trên bên phải phần mềm ArduinoIDE để bật màn hình Serial Monitor
- Thả nút cân chỉnh khi vào đến màn hình Welcome Screen
- Đặt xe vào sân thi đấu
- Quan sát Serial Monitor và làm theo hướng dẫn
- Khi đạt được giá trị cảm biến ổn định thì nhấn giữ nút cân chỉnh để xác nhận
- Tiếp tục cân chỉnh cho đến hết cảm biến S5
- Rút cáp kết nối
- KHÔNG ĐƯỢC PHÉP LẮP NGƯỢC CỰC DƯƠNG(+) ÂM(-) CỦA PIN VÀO MẠCH SẠC CŨNG NHƯ MẠCH ĐỘNG CƠ
- PIN NẾU CẮM NGƯỢC CỰC NGAY CẢ KHI CHƯA BẬT NGUỒN CŨNG SẼ GÂY CHÁY NỔ
- SỐ LƯỢNG PIN CÓ HẠN
- Nếu cắm cáp kết nối Arduino sáng đèn nguồn nhưng không tìm thấy port trong Tools >> Port >> COMxx thì tải xuống và cài đặt Driver mạch nạp CH340C
- Nếu cảm biến dò line khi lắp vào có dấu hiệu cong vênh thì dùng kìm bấm linh kiện bấm sát các mối hàn và mắt đọc
- Nếu gặp tình trạng Serial Monitor nhảy ký tự linh tinh hoặc không hiện bất kỳ ký tự nào thì chỉnh lại baudrate ở góc phải bên dưới thành 9600
- Trong quá trình UPLOAD nếu ArduinoIDE ném ra lỗi An error occureed uploading the sketch thì chọn Tools >> Verify/Compile NHIỀU LẦN cho đến khi hết lỗi
void followLine() {
while (1) {
...
else if ((port & B00001) == 0) { // S5 rơi vào line trắng
leftScript = 0; // tự động rẽ PHẢI
onStop();
break; // thoát khỏi vòng lặp
}
else if ((port & B10000) == 0 ){ // S1 rơi vào line trắng
leftScript = 1; // tự động rẽ TRÁI
onStop();
break; // thoát khỏi vòng lặp
}
}
}
-
gần như xuyên suốt trong chương trình chính
-
chương trình chạy vòng lặp
-
liên tục bắt các sự kiện để dò theo line
-
S1 hoặc S5 nằm trên line trắng. Không quan tâm S2 S3 S4
-
trước khi thoát kéo cờ
leftScript
lên0
hoặc1
để xe tự phân biệt đội A hay đội B
if (port==B10111){
analogWrite(leftmotor, 40);
analogWrite(rightmotor, 90);
}
- đánh lái sang TRÁI
- khi S2 nằm trên line trắng (lệch PHẢI)
- đồng thời S1 S3 S4 S5 nằm trên line đen
if (port==B11101){
analogWrite(rightmotor, 40);
analogWrite(leftmotor, 90);
}
- đánh lái sang PHẢI
- khi S4 nằm trên line trắng (lệch TRÁI)
- đồng thời S1 S2 S3 S5 nằm trên line đen
if (port==B11011)
analogWrite(rightmotor, 50);
analogWrite(leftmotor, 50);
- đi THẲNG bằng cách cân bằng 2 động cơ
- khi S3 nằm trên line trắng. Đồng thời S1 S2 S4 S5 nằm trên line đen
void turnLeft(){
while ((adc2port() & B00010) != 0){
analogWrite(rightmotor, 50);
digitalWrite(leftmotor, 0);
}
onStop();
}
-
động cơ trái dừng, động cơ phải hoạt động
-
chương trình chạy vòng lặp
-
động cơ quay đến khi S4 nằm trong line trắng thì thoát. Không quan tâm S1 S2 S3 S5
-
sau đó dừng hẳn 2 động cơ
onStop();
void turnRight(){
while ((adc2port() & B01000) != 0){
analogWrite(leftmotor, 50);
digitalWrite(rightmotor, 0);
}
onStop();
}
-
động cơ phải dừng, động cơ trái hoạt động
-
chương trình chạy vòng lặp
-
động cơ quay đến khi S2 nằm trong line trắng thì thoát. Không quan tâm S1 S3 S4 S5
-
sau đó dừng hẳn 2 động cơ
onStop();
void crossRoad(){
do {
analogWrite(rightmotor, 50);
analogWrite(leftmotor, 50);
} while (adc2port() != B11011);
}
-
2 động cơ quay đều
onStraight();
-
chương trình chạy vòng lặp
-
2 động cơ xoay đến khi S3 vào line trắng. Đồng thời S1 S2 S4 S5 nằm trên line đen
Kịch bản mẫu cho ĐỘI XANH
followLine();
turnLeft();
followLine();
crossRoad();
followLine();
turnLeft();
followLine();
- Chung kết cuộc thi " Đua xe số UTC2 - LINE"
- CHUNG KẾT Cuộc thi " Đua xe số UTC2 - LINE " năm 2020 tại trường THPT 1 An Nhơn
Công tác chuẩn bị cho cuộc thi "Đua xe số UTC2-LINE năm 2020" cho học sinh các trường THPT trên địa bàn thị xã An Nhơn đã hoàn thành
- Arduino Nano - Main Dev Hardware
- Arduino IDE - The compiler for Arduino Nano
- Th.s Võ Thiện Lĩnh - Project Leader - Facebook
- Th.s Lê Mạnh Tuấn - Chuyên gia cố vấn cấp cao - Facebook
- Bùi Đình Trung - Facebook Email
- Trần Bách Khoa - We missed you BRO - Facebook Email
- Nguyễn Minh Tiến - Facebook | Telegram | Instagram | YouTube
- Nguyễn Minh Trung - Facebook Email
Trường Đại học Giao Thông Vận Tải - Phân hiệu tại TP. Hồ Chí Minh | Mã tuyển sinh: GSA