Điện áp hoạt động là 5V, dòng điện qua các chân này ở chế độ bình thường là 20mA, cấp dòng quá 40mA sẽ phá hỏng vi điều khiển.. -Sử dụng đầu vào 5V: miễn là đầu vào được cấp là 5V ổn địn
Trang 1BỘ GIAO THÔNG VẬN TẢI
HỌC VIỆN HÀNG KHÔNG VIỆT NAM
KHOA ĐIỆN-ĐIỆN TỬ
ĐỒ ÁN MÔN HỌC
ĐỀ TÀI: XE NÉ VẬT CẢN
Giáo viên hướng dẫn: Nguyễn Hữu Châu Minh
Sinh viên thực hiện: Tất Quỳnh Chi-2255130024
Lớp học phần: 22ĐHTĐ01
Thành phố Hồ Chí Minh - 06/2024
Trang 2LỜI CAM ĐOAN
Em xin cam đoan đồ án môn học này là công trình nghiên cứu của bản thân, được đúc kết từ quá trình học tập và nghiên cứu thực tiễn trong thời gian qua Các thông tin và số liệu được sử dụng trong đồ án môn học này là hoàn toàn trung thực
Tp,HCM, tháng 0 6 , năm 2024
Người cam đoan Lời cảm ơn
Lời đầu tiên cho em gửi lời cảm ơn đến nhà trường, khoa Điện - Điện tử, các thầy cô đã truyền đạt kiến thức chuyên ngành và các lĩnh vực liên quan giúp chúng
em có những bài học bổ ích và thú vị để sau này có công góp phần xây dựng, làm việc, phát triển xã hội
Trong thời gian học tập em đã cố gắng để hoàn thành đề tài, vì có mặt hạn chế
về kiến thức và nội dung nghiên cứu nên sẽ có nhiều sai sót Em xin chân thành cảm ơn giảng viên Nguyễn Hữu Châu Minh đã giúp đỡ và hỗ trợ em trong quá trình thực hành đề tài Sự hướng dẫn của thầy là một yếu tố quan trọng để em được thành công trong đề tài này
MỤC LỤC
I.Giới thiệu chung Arduino UNR3
1.Khái niệm cơ bản
2.Thông số kĩ thuật
3.Cấu trúc Atmega328P
4.Cấp nguồn
II Module L298N
1 Khái quát
2.Cấu trúc, thông số
3.Nguyên lí hoạt động
III Cảm biến siêu âm HC-SR04
1.khái niệm
2 Thông số
3 Nguyên lí hoạt động
4.Đo khoảng cách dùng arduino
IV.Xe né vật cản
1 Linh kiện
2.Nguyên lí hoạt động
V.Tổng kết
Trang 3NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
….
………
………
………
………
………
………
………
………
………
………
………
………
………
Trình bày
Nội dung
Phản biện
Tổng điểm
Tp.HCM, ngày… , tháng … , năm 2024
Giáo viên hướng dẫn (ký tên và ghi rõ họ tên)
Trang 4I Giới thiệu chung ARDUINO R3:
1 Khái niệm cơ bản:
-Arduino Uno là một bo mạch vi điều khiển dựa trên chip Atmega328P Uno
có 14 chân I/O digital ( trong đó có 6 chân xuất xung PWM), 6 chân Input analog, 1 thạch anh 16MHz, 1 cổng USB, 1 jack nguồn DC, 1 nút reset
-2.Thông số kĩ thuật:
Vi điều khiển Atmega328P
Điện áp hoạt động 5V
ĐIện áp cấp (hoạt động tốt) 7-12V
Điện áp cấp(giới hạn) 6-12V
Chân I/O digital 14 chân (6 chân PWM)
Chân input analog 6 chân (A0-A5)
Dòng điện mỗi chân input 20mA
Dòng điện chân 3.3V 50mA
EEPROM 1KB
Tốc độ xung nhịp 16MHz
3.Cấu trúc của Atmega328P:
Trang 5♦ Digital: Các chân I/O digital (chân số 2 – 13 ) được sử dụng làm chân nhập,
xuất tín hiệu số thông qua các hàm chính : pinMode(), digitalWrite(),
digitalRead() Điện áp hoạt động là 5V, dòng điện qua các chân này ở chế độ bình thường là 20mA, cấp dòng quá 40mA sẽ phá hỏng vi điều khiển
♦ Analog : có 6 chân Input analog (A0 – A5), độ phân giải mỗi chân là 10 bit
(0 – 1023 ) Các chân này dùng để đọc tín hiệu điện áp 0 – 5V (mặc định) tương ứng với 1024 giá trị, sử dụng hàm analogRead()
♦ PWM : các chân được đánh số 3, 5, 6, 9, 10, 11; có chức năng cấp xung
PWM (8 bit) thông qua hàm analogWrite()
♦ UART: Atmega328P cho phép truyền dữ liệu thông qua hai chân 0 (RX) và
chân 1 (TX)
4.Cấp nguồn cho Arduino:
-Cổng USB :có thể kết nối với máy tính để bàn hoặc máy tính xách tay Nếu kết nối được liệt kê, tức là máy tính nhận được thiết bị, dòng điện cung cấp cho bo mạch là 500mA ở 5V
-Sử dụng đầu vào 5V: miễn là đầu vào được cấp là 5V ổn định và được điều chỉnh Chân 5V bỏ qua bộ điều chỉnh điện áp và tất cả các biện pháp an toàn
có trên Arduino Uno, vì vậy nếu đầu vào vượt quá 5V bo mạch có thể bị hỏng
Trang 6-Sử dụng pin lớn hơn 5V:Nối với pin 9V bằng cách nối cực dương với chân Vin và cực âm với chân GND Cổng Vin cho phép đầu vào từ 7 đến 12 V, nhưng nên sử dụng pin 9V
II Module L298N:
1.Khái quát:
L298N là module điều khiển động cơ trong các xe DC và động cơ bước Module có một IC điều khiển động cơ L298 và một bộ điều chỉnh điện áp 5V 78M05 Module L298N có thể điều khiển tối đa 4 động cơ DC hoặc 2 động
cơ DC với khả năng điều khiển hướng và tốc độ
2.Cấu trúc, thông số:
Tên chân Mô tả
IN1 & IN2 Các chân đầu vào điều khiển hướng quay động cơ A
IN3 & IN4 Các chân đầu vào điều khiển hướng quay của Động cơ B
ENA Kích hoạt tín hiệu PWM cho Động cơ A
VIB Kích hoạt tín hiệu PWM cho Động cơ B
OUT1 & OUT2 Chân đầu ra cho động cơ A
OUT3 & OUT4 Chân đầu ra cho Động cơ B
12V Đầu vào cấp nguồn 12
5V Cấp nguồn cho mạch logic bên trong IC L298N
Trang 7GND Chân nối đất
Module điều khiển: 2A L298N
Chip điều khiển: Cặp H-Bridge L298N
Điện áp cấp cho động cơ (Tối đa): 46V
Dòng điện cấp động cơ (tối đa): 2A
Điện áp logic: 5V
Điện áp hoạt động của IC: 5-35V
Dòng điện hoạt động IC: 2A
Dòng logic: 0-36mA
Công suất tối đa (W): 25W
Cảm biến dòng điện cho mỗi động cơ
Có tản nhiệt cho hiệu suất tốt hơn
Có đèn báo LED bật nguồn
3 Nguyên lí hoạt động:
L298N có bốn bộ khuếch đại công suất làm việc độc lập.Hai trong số đó tạo thành mạch H-bridge A và hai bộ khuếch đại còn lại tạo thành mạch H-bridge
B Một H-bridge dùng để chuyển đổi cực điều khiển hướng quay của động cơ điện một chiều 2 mạch H-bridge điều khiển động cơ bước hai cực
Ứng dụng điều khiển động cơ
Trang 8Bộ điều chỉnh điện áp chỉ được bật khi đặt jumper Khi nguồn điện nhỏ hơn hoặc bằng 12V thì mạch bên trong sẽ được cấp nguồn bởi bộ điều chỉnh điện
áp và chân 5V có thể sử dụng như một chân đầu ra để cấp nguồn cho vi điều khiển Không nên đặt jumper khi nguồn điện lớn hơn 12V
Các chân số D7, D6, D5 và D4 của Arduino sẽ nối tương ứng với IN1, IN2, IN3 và IN4 của L298
Chiều quay của động cơ được điều khiển bằng cách xuất các đầu ra HIGH hoặc LOW tại các chân INx
Ví dụ với động Cơ A: chân IN1 là chân OutA.1, chân IN2 là chân OutA.2 -Cấp cực dương vào IN1, cực âm vào IN2 => motor quay một chiều
-Cấp cực âm vào IN1, cực dương vào IN2 => motor quay chiều còn lại
Trang 9III Cảm biến siêu âm HC-SR04:
1.Khái niệm:
-là một thiết bị cảm biến hoạt động dựa trên sóng siêu âm
-chủ yếu là để đo khoảng cách hoặc vận tốc Ngoài ra được sử dụng trong các ứng dụng như làm sạch bằng sóng siêu âm hoặc dùng trong siêu âm y khoa
2.Thông số:
Điện áp hoạt động: 5VDC
Dòng tiêu thụ: 10~40mA
Chân tín hiệu: Echo, Trigger
Góc quét:<15 độ
Tần số phát sóng: 40Khz
Khoảng cách đo được: 2~450cm
Sai số: 0.3cm (khoảng cách càng gần, bề mặt vật thể càng phẳng sai số càng nhỏ)
3.Nguyên lí hoạt động:
Trang 10-Sử dụng nguyên lý phản xạ sóng siêu âm Cảm biến gồm 2 module, 1
module phát ra sóng siêu âm và 1 module thu sóng siêu âm phản xạ về -Đầu tiên cảm biến sẽ phát ra 1 sóng siêu âm với tần số 40khz Nếu có
chướng ngại vật trên đường đi, sóng siêu âm sẽ phản xạ lại và tác động lên module nhận sóng
-Bằng cách đo thời gian từ lúc phát đến lúc nhận sóng ta sẽ tính được khoảng cách từ cảm biến đến chướng ngại vật
Khoảng cách = thời gian * vận tốc âm thanh (340 m/s) / 2
4.Đo khoảng cách dùng Arduino:
Bước 1: phát 1 xung rất ngắn (5 microSeconds - ú) từ chân Trig.
Bước 2: tạo ra 1 xung HIGH ở chân Echo cho đến khi nhận lại được sóng phản xạ hiề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
Bước 3: In kết quả
Code mẫu
const int trig = 8; // chân trig của HC-SR04
const int echo = 7; // chân echo của HC-SR04
void setủp()
{
Serial.begin(9600);
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
}
void loop()
{
ủnsigned long dủration;
int distance;
Trang 11
/* Phát xủng từ chân trig */
digitalWrite(trig,0);
delayMicroseconds(2);
digitalWrite(trig,1
delayMicroseconds(5
digitalWrite(trig,0
/* Tính toán thời gian */
// Đo độ rộng xủng HIGH ở chân echo dủration = pủlseIn(echo,HIGH);
distance = int(dủration/2/29.412);
Serial.print(distance);
Serial.println("cm");
delay(200);
}
IV Xe tự né vật cản:
1 Linh kiện:
-Arduino UNO R3
-Module L298N
-Cảm biến siêu âm HC-SR04
-Dây cắm breadboar
-Pin Lithium 3,7V
-Khung xe
Trang 122.Nguyên lí hoạt động:
-Sau khi bật công tắc, arduino điều khiển 2 bánh xe chạy làm xe di chuyển
-Cảm biến siêu âm hoạt động và bắt đầu xác định vật cản xung quanh
-khi có vật cản được xác định, arduino điều khiển động cơ làm xe chạy lùi về sau và rẽ phải để né vật cản.
-Nếu không có vật cản, xe sẽ tiếp tục chạy thẳng
Code mẫu:
// Khai báo các chân kết nối
const int trigPin = 3;
const int echoPin = 4;
const int in1 = 6;
const int in2 = 7;
const int in3 = 8;
const int in4 = 9;
// Hàm đo khoảng cách từ cảm biến siêu âm
Trang 13long readUltrasonicDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
return duration * 0.034 / 2; // Tính khoảng cách bằng cm }
// Hàm để động cơ di chuyển tiến
void moveForward() {
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
}
void moveBackward() {
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
}
void turnLeft() {
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
Trang 14
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
}
void stopMotors() {
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
Serial.begin(9600);
}
void loop() {
long distance = readUltrasonicDistance();
Serial.println(distance);
if (distance < 20) { // nếu khoảng cách nhỏ hơn 20 cm, tránh vật cản
stopMotors();
delay(500);
moveBackward();
delay(500);
Trang 15stopMotors();
delay(500);
turnRight();
delay(500);
} else {
moveForward();
}
delay(100);
}
V.Tổng kết:
Ưu điểm:
-Nhỏ gọn, chi phí thấp, dễ lập trình
Nhược điểm:
- Tính ổn định chưa cao
- Còn hạn chế về góc đo của cảm biến, phạm vi xác định vật cản của xe Hướng phát triển:
- Nghiên cứu và phát triển thêm để đảm bảo tính ổn định của mạch Sử dụng them một động cơ servo để tăng góc đo cảm biến và phạm vi né vật cản
Kinh nghiệm rút ra:
- Học được cách tìm và đọc datasheet
- Hiểu sơ lược về các linh kiện, module trong đề tài
- Học được cách viết lập trình C++ cơ bản
- Học cách trình bày báo cáo đồ án
- Học cách lắp ráp phần cứng