Bài 1: Thiết kế và điều khiển xe với JoystickBài 2: Xe tự hành với cảm biến siêu âm Bài 3: Điều khiển xe từ xa với mô-đun Bluetooth Bài 4: Thiết lập chế độ dò line cho xe với cảm biến IR
Trang 1Bài 1: Thiết kế và điều khiển xe với Joystick
Bài 2: Xe tự hành với cảm biến siêu âm Bài 3: Điều khiển xe từ xa với mô-đun Bluetooth Bài 4: Thiết lập chế độ dò line cho xe với cảm biến IR
Bài 5: Chế tạo xe thông minh Bài 6: Tối ưu các chương trình Arduino Bài 7: Ý tưởng về dự án cuối khóa
Bài 8: Xây dựng phần cứng của sản phẩm Bài 9: Xây dựng chương trình tổng quan để điều khiển
Bài 10: Hoàn thiện phần lập trình của sản phẩm Bài 11: Hoàn thiện toàn bộ sản phẩm và luyện thuyết trình
Bài 12: Bảo vệ cuối khóa
Trang 2BÀI 1: THIẾT KẾ & ĐIỀU KHIỂN XE VỚI JOYSTICK
Khóa học “Kỹ sư điện tử tự động” - Học phần 4
Trang 3WARM UP
Nào cùng khởi động buổi học nào!
Trang 4NỘI QUY LỚP
HÃY ĐẾN LỚP ĐÚNG GIỜ
HOÀ ĐỒNG VỚI BẠN BÈ NHÉ
BẢO VỆ TÀI SẢN TIẾT KIỆM ĐIỆN
TÔN TRỌNG MỌI
NGƯỜI XUNG QUANH & TỰ
KHÁC LÀM KHÁC
TÔN TRỌNG GIẢNG VIÊN
ĐỪNG QUÊN KIỂM TRA LẠI BÀI
CŨ
CHỈ RA KHỎI LỚP KHI ĐƯỢC CHO
PHÉP
GIỜ TAY LÊN BẠN
SẼ ĐƯỢC PHÁT BIỂU
KHI AI ĐÓ ĐANG
NÓI HÃY LẮNG NGHE
Trang 5● Giới thiệu kiến thức bài mới
BÀI 1 – LM298 & JOYSTICK
Trang 6CHỦ ĐỀ BÀI
Trang 7Bài học hôm nay chúng ta tìm hiểu về 4 nội dung chính sau đây:
KHÁI NIỆM, KIẾN THỨC BUỔI
HỌC
Động cơ DC giảm tốc Mô đun L298 Mô đun Joystick
BÀI 1 – LM298 & JOYSTICK
Cấu trúc hàm map()
map(value, fromLow, fromHigh, toLow, toHigh)
map( value, fromLow, fromHigh, toLow, toHigh )
Trang 8Động cơ DC giảm tốc?
Động cơ DC giảm tốc = Động cơ DC + Hộp
giảm tốc Động cơ giảm tốc có mô-men xoắn lớn hơn
động cơ thường nhưng lại có tốc độ nhỏ hơn
(Mô-men xoắn đặc trương cho khả năng chịu
tải ngay lập tức của động cơ, hiểu đơn giản là
“độ khỏe” của động cơ, động cơ càng “khỏe”
thì sinh ra lực càng lớn, kéo càng mạnh, tăng
KHÁI NIỆM, KIẾN THỨC BUỔI
Trang 9KHÁI NIỆM, KIẾN THỨC BUỔI
Trang 10PWM - Thay đổi độ rộng xung là một kỹ thuật cho
phép chúng ta điều chỉnh giá trị trung bình của điện
áp đến thiết bị điện tử bằng cách bật và tắt nguồn
với tốc độ nhanh Điện áp trung bình phụ thuộc vào
chu kỳ xung, hoặc lượng thời gian tín hiệu BẬT so
với lượng thời gian tín hiệu TẮT trong một khoảng
thời gian quy định.
XUNG PWM?
Điều chế xung PWM
KHÁI NIỆM, KIẾN THỨC BUỔI
Trang 11Mô đun L298?
Mạch điều khiển động cơ DC L298N có thể
điều khiển cùng lúc 2 động cơ DC hoặc một
động cơ bước Dòng tối đa trên mỗi động cơ
là 2A.
• Điện áp cấp cho L298: 5 – 12VDC
• Điện áp điều khiển: 5VDC
• Dòng cấp: tối đa 2A mỗi động cơ. Cấu trúc của LM298 & sơ đồ kết nối
KHÁI NIỆM, KIẾN THỨC BUỔI
Trang 12Mô đun L298?
Để điều khiển hướng quay, chúng ta chỉ cần đảo
ngược hướng của dòng điện qua động cơ, và
phương pháp phổ biến nhất để làm điều đó là sử
dụng mạch cầu H Một mạch cầu H chứa bốn chân
chuyển mạch, điện trở hoặc MOSFET, với động cơ
ở trung tâm tạo thành một cấu hình giống như chữ
H Bằng cách kích hoạt hai công tắc cụ thể cùng
một lúc, chúng ta có thể thay đổi hướng của dòng
điện, do đó thay đổi hướng quay của động cơ. Mạch cầu H
KHÁI NIỆM, KIẾN THỨC BUỔI
Trang 13Module Arduino PS2 JoyStick là
các khối biến trở, hoạt động dựa trên
nguyên tắc sau: Hoạt động đẩy cần
gạt đi các hướng sẽ làm xoay các
biến trở tương ứng tạo ra sự thay đổi
của điện áp xuất ra Các chuyển động
hướng là hai chiết áp một cho mỗi
trục
Điện áp cung cấp cho Module: VCC có
thể chọn là 3.3V hoặc 5V
Cấu tạo của cảm biến phát hiện khí Gas
KHÁI NIỆM, KIẾN THỨC BUỔI
Trang 14Hàm map()?
• Hàm map() dùng để chuyển đổi
giá trị từ thang đo này sang một
giá trị của thang đo khác.
• Giá trị trả về của hàm map()
luôn là một số nguyên.
Ví dụ hàm map()
KHÁI NIỆM, KIẾN THỨC BUỔI
void setup() {
} void loop() {
int val = analogRead(0);
val = map(val, 0, 1023, 0, 255);
analogWrite(9, val);
}map(value, fromLow, fromHigh, toLow, toHigh)
map(value, fromLow, fromHigh, toLow, toHigh)
Trang 15THỰC HÀNH
NÀO
Hãy sáng tạo sản phẩm của riêng con nhé
Trang 16DỰ ÁN BÀI
HỌC
XÂY DỰNG KHUNG XE & ĐIỀU KHIỂN ĐỘNG CƠ
Trong bài học chúng ta thiết kế khung xe và gắn động cơ lên khung, sau đó lập trình –
điều khiển động cơ với joystick
Trang 17YÊU CẦU DỰ ÁN BÀI HỌC
Bài tập 1: Lập trình cho Cảm biến joystick
Lập trình hiển thị giá của joystick
BÀI 1 – LM298 & JOYSTICK
Lập trình
Trang 18BẢN QUYỀN TÁC GIẢ THUỘC VỀ HỌC VIỆN TEKY 1
YÊU CẦU DỰ ÁN BÀI
HỌC
Bài tập 2: Lắp ráp xe
Học sinh lắp ráp động cơ, LM298 với Arduino lên khung xe
BÀI 1 – LM298 & JOYSTICK
Lắp ráp xe
Trang 19BẢN QUYỀN TÁC GIẢ THUỘC VỀ HỌC VIỆN TEKY 1
YÊU CẦU DỰ ÁN BÀI
HỌC
Bài tập : Đấu nối
Học sinh đáu dây điện theo sơ đồ
BÀI 1 – LM298 & JOYSTICK
Đấu nối
Trang 20BẢN QUYỀN TÁC GIẢ THUỘC VỀ HỌC VIỆN TEKY 2
YÊU CẦU DỰ ÁN BÀI
HỌC
Bài tập : Đấu nối
Học sinh đáu dây điện theo sơ đồ
BÀI 1 – LM298 & JOYSTICK
Trang 21BẢN QUYỀN TÁC GIẢ THUỘC VỀ HỌC VIỆN TEKY 2
YÊU CẦU DỰ ÁN BÀI
HỌC
Bài tập : Đấu nối
Học sinh đáu dây điện theo sơ đồ
BÀI 1 – LM298 & JOYSTICK
Trang 22BẢN QUYỀN TÁC GIẢ THUỘC VỀ HỌC VIỆN TEKY 2
YÊU CẦU DỰ ÁN BÀI
HỌC
Lập trình
Bài tập 4: Lập trình điều khiển xe với joystick
Học sinh lập trình theo code mẫu và điều chỉnh theo yêu cầu của giáo viên
BÀI 1 – LM298 & JOYSTICK
Trang 23BẢN QUYỀN TÁC GIẢ THUỘC VỀ HỌC VIỆN TEKY 2
YÊU CẦU DỰ ÁN BÀI
HỌC
Joystick
Bài tập 4: Lập trình điều khiển xe với joystick
Học sinh lập trình theo code mẫu và điều chỉnh theo yêu cầu của giáo viên
BÀI 1 – LM298 & JOYSTICK
1 Khai báo các chân của Joystick kết nôí với các chân I/O của Arduino
//Joystick Pins
int x_key = A0;
int y_key = A1;
int x_pos;
int y_pos;
Trang 24BẢN QUYỀN TÁC GIẢ THUỘC VỀ HỌC VIỆN TEKY 2
YÊU CẦU DỰ ÁN BÀI
HỌC
L298
Bài tập 4: Lập trình điều khiển xe với joystick
Học sinh lập trình theo code mẫu và điều chỉnh theo yêu cầu của giáo viên
BÀI 1 – LM298 & JOYSTICK
//Motor Pins int EN_A = 11; //Enable pin for first motor int IN1 = 9; //control pin for first motor int IN2 = 8; //control pin for first motor int IN3 = 7; //control pin for second motor int IN4 = 6; //control pin for second motor int EN_B = 10; //Enable pin for second motor
2 Khai báo các chân của L298 kết nôí với các chân I/O của Arduino
Trang 25YÊU CẦU DỰ ÁN BÀI
HỌC
Cài đặt chế độ cho I/O
Bài tập 4: Lập trình điều khiển xe với joystick
Học sinh lập trình theo code mẫu và điều chỉnh theo yêu cầu của giáo viên
BÀI 1 – LM298 & JOYSTICK
void setup ( ) { Serial.begin (9600);
//Initializing the motor pins as output pinMode(EN_A, OUTPUT);
3 Thiết lập chế độ I/O cho các chân
Trang 26YÊU CẦU DỰ ÁN BÀI
HỌC
Điều khiển
Bài tập 4: Lập trình điều khiển xe với joystick
Học sinh lập trình theo code mẫu và điều chỉnh theo yêu cầu của giáo viên
BÀI 1 – LM298 & JOYSTICK
void loop () {
x_pos = analogRead (x_key) ; y_pos = analogRead (y_key) ;
if (x_pos < 400) {
motor_speed = map(x_pos, 400, 0, 0, 255); digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(EN_A, motor_speed);
}
Trang 27BẢN QUYỀN TÁC GIẢ THUỘC VỀ HỌC VIỆN TEKY 2
YÊU CẦU DỰ ÁN BÀI
HỌC
Thảo luận ý tưởng dự án
Vấn đề ở đây là gì, có các cách tiếp
cận nào để phát triển phương án xử
lý, các thành phần của ý tưởng như
độ khó, thêm độ phong phú etc
Thảo luận phương án, câu lệnh lập trình
Sử dụng các khối câu lệnh nào, cách lập trình
BÀI 1 – LM298 & JOYSTICK
Trang 28BẢN QUYỀN TÁC GIẢ THUỘC VỀ HỌC VIỆN TEKY 2
YÊU CẦU DỰ ÁN BÀI HỌC
Thuyết trình
Giới thiệu bản thân - Trình bày ý tưởng - Mục đích sản phẩm - Hỏi/ Đáp
BÀI 1 – LM298 & JOYSTICK
Trang 29TỔNG KẾT BÀI
HỌC
Con hãy trình bày lại kiến thức bài học
Gợi ý: Chủ đề; Kiến thức lập trình đã học hôm nay!
Trang 30BẢN QUYỀN TÁC GIẢ THUỘC VỀ HỌC VIỆN TEKY 3
NỘI DUNG BÀI HỌC TIẾP
THEO
Chủ đề
Xe tự hành
Khái niệm, kiến thức
Tìm hiểu cách đọc dữ liệu từ cảm biến khoảng cách và động cơ servo
Dự án
Hệ thống lái xe tự động
BÀI 2 – Ultrasonic & Servo
Trang 31Con hãy lưu lại file dự án đã hoàn
thành của mình nhé
Nhớ đánh giá
và viết cảm nhận buổi học nữa nhé
bit.ly/danhgiabuoihoc
Trang 32TOP 10 dự án có ảnh hưởng xã hội tốt nhất tại Đông Nam Á
TEKY TỰ HÀO LÀ 1 TRONG 16 DỰ ÁN GIÁO DỤC TIÊU BIỂU TOÀN CẦU