Các chân trên Shield được kết nối với board Arduino như sau: .... Các chân trên module được kết nối với board Arduino như sau: ..... Hiện nay việc các ứng dụng ngày càng trở nên phổ biến
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA CƠ KHÍ – BỘ MÔN Ô TÔ
THỰC HÀNH ĐIỀU KHIỂN TỰ ĐỘNG TRÊN
Ô TÔ BÀI BÁO CÁO MÔ HÌNH XE ĐIỀU KHIỂN
Trang 2Về chủ đề thực hiện: Thiết kế xe mô hình có hình thang lái sử dụng mạch Arduino điều khiển bằng app “Bluetooth RC Controller” trên smartphone
Phân chia công việc của các thành viên trong nhóm: Để hoàn thiện mô hình xe cần thực hiện nhiều công việc Trong quá trình làm việc nhóm, các thành viên đều tham gia tìm hiểu và hỗ trợ nhau để có thể hoàn thành mô hình xe tốt nhất Để đảm bảo tiến độ hoàn thành và tính công bằng trong công việc cho các thành viên trong nhóm, nhóm chúng
em phân chia công việc thực hiện của các thành viên như sau:
• Thăng: tìm hiểu, chế tạo và lắp đặt hình thang lái
• Khánh, Thất: thiết kế khung và vỏ xe
• Vương, Yên: lắp ráp mạch điện
- Viết code và nạp code cho xe:
• Thăng: viết code servo
• Khánh, Thất: viết code đèn
• Vương, Yên: viết code động cơ
• Cả nhóm: viết code bluetooth
• Tổng hợp code: trong quá trình học và tìm hiểu viết code, sau khi hoàn thành được code của các phần trên xe, cả nhóm chúng em đã tổng hợp lại thành 1 đoạn code hoàn chỉnh để nạp cho xe hoạt động
Trang 3Mục lục
Trang
LỜI NÓI ĐẦU 5
PHẦN I: GIỚI THIỆU TỔNG QUAN CHI TIẾT CÁC THIẾT BỊ 6
1.1 Arduino Uno R3: 6
1.1.1 Cáp USB 6
1.1.2 IC CH340 7
1.1.3 Cổng nguồn ngoài 7
1.1.4 Cổng USB 7
1.1.5 Nút reset 8
1.1.6 Chân xuất tín hiệu ra 8
1.1.7 IC ATmega 328 9
1.1.8 Chân ICSP của ATmega 328 9
1.1.9 Chân lấy tín hiệu Analog 9
1.1.10 Chân cấp nguồn cho cảm biến 10
1.1.11 Các linh kiện khác trên board Arduino Uno 10
1.2 Motor Driver Shield L293D: 11
1.2.1 Các thành phần Motor Driver Shield L293D có thể điều khiển: 12
1.2.2 Các chân trên Shield được kết nối với board Arduino như sau: 13
1.3 Module Bluetooth HC-05: 14
1.3.1 Module bluetooth HC-05 có nhiều chức năng: 15
1.3.2 Các chân trên module được kết nối với board Arduino như sau: 15
Trang 42.1 Mô hình đã hoàn thiện: 17
2.2 Sơ đồ mạch điện: 18
PHẦN 3: PHẦN MỀM LẬP TRÌNH, PHẦN MỀM ĐIỀU KHIỂN VÀ CODE 19
3.1 Phần mềm lập trình 19
3.2 Phần mềm điều khiển 20
3.3 Code 21
PHẦN 4: KẾT QUẢ 26
PHẦN 5: KẾT LUẬN 26
Trang 5
LỜI NÓI ĐẦU
Đất nước ta đang trong giai đoạn công nghiệp hoá hiện đại hoá, nên khoa học – kỹ thuật luôn là mối quan tâm hàng đầu Cùng với sự phát triển nhanh chóng về khoa học - kỹ thuật, nghành điện tự động có những bước phát triển nhảy vọt với linh kiện bán dẫn, các hệ thống nhúng ra đời và kèm theo đó là nhiều ứng dụng mới xuất hiện phụ vụ cho sinh hoạt và sản xuất con người Hiện nay việc các ứng dụng ngày càng trở nên phổ biến, từ những cái đơn giản như điều khiển cột đèn giao thông định thời, đếm sản phẩm dây chuyền sản xuất, điều khiển động
cơ điện một chiều Đến những ứng dụng phức tập như điều khiển Robot, hệ thống kiểm soát Một trong những ứng dụng không kém phần quan trọng trong công nghiệp điều khiển từ xa Nó
đã góp phần rất lớn trong việc điều khiển các thiết bị từ xa hay những thiết bị mà con người không thể trực tiếp chạm vào để điều khiển Xuất phát từ ứng dụng quan trọng trên, nhóm em
đã thiết kế và thi công mô hình “Xe Điều Khiển Từ Xa Thông Qua Smartphone”
Qua đây chúng em xin chân thành cảm ơn thầy ThS Bùi Văn Hùng khoa cơ khí đã giúp
đỡ tạo điều kiện và cung cấp tài liệu để em hoàn thành đề tài Trong quá trình thực hiện đề tài chắc chắn sẽ còn nhiều thiếu sót nhất định Vậy chúng em mong sự giúp đỡ của thầy và sự góp
ý của bạn bè
Trang 6PHẦN I: GIỚI THIỆU TỔNG QUAN CHI TIẾT CÁC THIẾT BỊ
để cho board hoạt động
- Ngoài ra cáp USB còn được dùng để truyền dữ liệu từ board Arduino lên máy tính Dây cáp có 2 đầu, đầu 1a được dùng để cắm vào cổng USB trên board Arduino, đầu 1b dùng
để cắm vào cổng USB trên máy tính
Hình 1.2 Cáp USB
Trang 81.1.6 Chân xuất tín hiệu ra
- Có tất cả 14 chân xuất tín hiệu ra trong Arduino Uno, những chân có dấu ~ là những chân có thể băm xung (PWM), tức có thể điều khiển tốc độ động cơ hoặc độ sáng của đèn Hình 1.7 thể hiện rất rõ những chân để băm xung này
Hình 1.7 Chân xuất tín hiệu ra
Trang 91.1.7 IC ATmega 328
- IC Atmega 328 là linh hồn của bo mạch Arduino Uno, IC này được sử dụng trong việc thu thập dữ liệu từ cảm biến, xử lý dữ liệu, xuất tín hiệu ra,
Hình 1.8 IC ATmega 328
1.1.8 Chân ICSP của ATmega 328
- Các chân ICSP của ATmega 328 được sử dụng cho các giao tiếp SPI (Serial Peripheral Interface), một số ứng dụng của Arduino có sử dụng chân này, ví dụ như sử dụng module RFID RC522 với Arduino hay Ethernet Shield với Arduino
Hình 1.9 Chân ICSP của ATmega 328
1.1.9 Chân lấy tín hiệu Analog
- Các chân này lấy tín hiệu Analog (tín hiệu tương tự) từ cảm biến để IC Atmega 328 xử
lý Có tất cả 6 chân lấy tín hiệu Analog, từ A0 đến A5
Trang 10Hình 1.10 Chân lấy tín hiệu Analog
1.1.10 Chân cấp nguồn cho cảm biến
- Các chân này dùng để cấp nguồn cho các thiết bị bên ngoài như role, cảm biến, RC servo, trên khu vực này có sẵn các chân GND (chân nối đất, chân âm), chân 5V, chân 3.3V như được thể hiện ở hình 1.11 Nhờ những chân này mà người sử dụng không cần thiết bị biến đổi điện khi cấp nguồn cho cảm biến, role, rc servo, Ngoài ra trên khu vực này còn có chân Vin và chân reset, chân IOREF
Hình 1.11 Chân cấp nguồn cho cảm biến
1.1.11 Các linh kiện khác trên board Arduino Uno
- Ngoài các linh kiện đã liệt kê bên trên, Arduino Uno còn 1 số linh kiện đáng chú ý khác Trên bo có tất cả 4 đèn led, bao gồm 1 led nguồn (led ON nhằm cho biết board đã được cấp nguồn), 2 led Tx và Rx, 1 led L Các led Tx và Rx sẽ nhấp nháy khi có dữ liệu truyền từ board lên máy tính hoặc ngược lại thông qua cổng USB Led L được được kết nối với chân số 13 Led này được gọi là led on board (tức led trên board), led này giúp người dùng có thể thực hành các bài đơn giản mà không cần dùng thêm led ngoài
- Trong 14 chân ra của bo còn có 2 chân 0 và 1 có thể truyền nhận dữ liệu nối tiếp TTL
Có một số ứng dụng cần dùng đến tính năng này, ví dụ như ứng dụng điều khiển mạch Arduino Uno qua điện thoại sử dụng bluetooth HC-05 Thêm vào đó, chân 2 và chân 3 cũng được sử dụng cho lập trình ngắt (interrupt), đồng thời còn 1 vài chân khác có thể được sử dụng cho các chức năng khác, như được thể hiện ở hình 1.12 Bảng 1.1 thể hiện thêm các thông số cho bo Arduino Uno R3
Trang 11Bảng 1.1 Một số thông số của Arduino Uno R3
Dòng tối đa trên mỗi chân I/O 30 mA
Trang 12Hình 1.13 Motor Driver Shield
Motor Driver Shield L293D sử dụng 2 IC cầu H L293D và 1 IC logic 74HC595 điều khiển
Do đó, shield này có thể điều khiển nhiều loại motor khác nhau với mức áp lên đến 36V, dòng tối đa 600mA mỗi kênh điều khiển
Hình 1.14 Sơ đồ nguyên lý Motor Driver Shield L293D
1.2.1 Các thành phần Motor Driver Shield L293D có thể điều khiển:
- 2 servo
Trang 13- 4 motor điện DC (M1, M2, M3, M4) theo các hướng khác nhau (mỗi motor có thể
chạy với 1 hướng tới/lùi bất kì) thông qua 4 cầu H của L293D dòng 600mA (cực đại 1.2A)
- 2 stepper motor loại đơn cực (unipolar) hoặc lưỡng cực (bipolar)
Motor driver shield L293D có sẵn các điện trở nối GND nhằm tránh các motor tự quay lúc khởi động và nút RESET để khởi động lại board Arduino mà nó đang gắn vào
1.2.2 Các chân trên Shield được kết nối với board Arduino như sau:
Servo kết nối với chân số 9 Nguồn nuôi lấy trực tiếp từ board Arduino (nguồn 5V) Motor 3 nối với chân 5
Motor 4 nối với chân 6
Chân 4, 7, 8, 12 dùng điều khiển motor thông qua IC 74HC595
Các chân chưa sử dụng: 2, 13, A0, A1, A2, A3, A4, A5
Trên shield có 1 jumper màu vàng PWR được sử dụng: nếu kết nối nguồn ngoài cho
board Arduino thông qua jack DC (dùng pin 9V chẳng hạn) thì nguồn nuôi motor được
lấy luôn từ jack này, không cần nối nguồn với EXT_PWR Nếu ngắt jumper, bạn cần nối 1 nguồn riêng vào terminal EXT_PWR để nuôi motor
Trang 14Hình 1.15 Sơ đồ kết nối Motor Driver Shield L293D và Arduino Uno R3
1.3 Module Bluetooth HC-05:
Hình 1.16 Module Bluetooth HC-05 Module bluetooth HC-05 master / slave dùng để thiết lập kết nối Serial giữa 2 thiết bị
bằng sóng Bluetooth
Trang 15Module bluetooth HC-05 thường có 6 chân là GND, VCC, TXD, RXD, STATE, END Nhưng thưởng chỉ sử dụng 4 chân là GND, VCC, TXD, RXD
1.3.1 Module bluetooth HC-05 có nhiều chức năng:
Bluetooth HC-05 được điều khiển bằng tập lệnh AT để thực hiện các tác vụ mong muốn
Để bluetooth module chuyển từ chế độ thông thường qua điều khiển bằng AT, ta có 2 cách như sau:
+ Cấp nguồn cho module bluetooth (VCC và GND) đồng thời cấp mức điện áp cao (=VCC) cho chân KEY của module bluetooth Khi đó giao tiếp bằng tập lệnh AT với module
bằng cổng Serial (Tx và Rx) với baud rate là 38400
+ Cấp nguồn cho module bluetooth trước, sau đó cấp mức điện áp cao cho chân KEY của module bluetooth Lúc này bạn có thể giao tiếp với module bằng tập lệnh AT với baud
1.3.2 Các chân trên module được kết nối với board Arduino như sau:
Chân TXD được nối với chân RX
Chân RXD được nối với chân TX
Chân GND được nối với chân GND
Chân VCC được nối với chân 5V
1.4 Motor giảm tốc DC:
Trang 16Tỷ số truyền 1:48
Mômen xoắn cực đại: 800gf cm min 1:48 (3V)
Tốc độ không tải: 125 Vòng/ 1 Phút (3V) (Với bánh 66mm: 26m/1p)
208 Vòng/ 1 Phút (5V) (Với bánh 66mm: 44m/1p)
Dòng không tải động cơ: 70mA (250mA MAX)
1.5 Servo MG90S :
Hình 1.18 Servo MG90S Động cơ RC Servo MG90S là động cơ với các bánh răng được làm bằng kim loại cho lực khéo khỏe và độ bền cao, động cơ có kích thước nhỏ gọn Phù hợp cho nhiều ứng dụng khác nhau: Robot cánh tay máy, robot nhện, cơ cấu chuyển hướng, cơ cấu quay góc,
Thông số kỹ thuật:
Stall Torque
1.8kg/cm(4.8V) 2.2kg/cm(6V)
Operating Speed
0.1sec/60degree(4.8v) 0.08sec/60degree(6v)
Trang 17PHẦN 2: MÔ HÌNH XE THỰC TẾ:
2.1 Mô hình đã hoàn thiện :
Hình 2.1 Bên trong mô hình đã hoàn thiện
Trang 18Hình 2.2 Mô hình xe đã hoàn thiện
2.2 Sơ đồ mạch điện:
Hình 2.3 Kết nối LED và module Bluetooth với Arduino
Trang 19Hình 2.4 Kết nối Motor và Servo với Motor Driver Shield L293D Kết nối hai cái trên lại với nhau chúng ta sẽ có một mạch điều khiển hoàn chỉnh
PHẦN 3: PHẦN MỀM LẬP TRÌNH, PHẦN MỀM ĐIỀU KHIỂN VÀ CODE
Trang 20Hình 2.5 Giao diện Arduino IDE
Mục 1: Là thanh menu bar, bao gồm các tùy chọn thiết lập cho phần mềm Arduino và cho
sketch đang thực hiện
Mục 2: Là thanh symbol bar, gồm các nút nhấn Verify để biên dịch sketch, upload để nạp
sketch vào board, New để tạo sketch mới, Open để mở sketch, Save lưu sketch và Serial Monitor để mở serial port
Mục 3: Vùng để soạn thảo code cho sketch
Mục 4: Vùng hiển thị thông tin khi biên dịch, hiển thị quá trình nạp sketch và các thông
báo lỗi khi biên dịch sketch (nếu có)
3.2 Phần mềm điều khiển
Phần mềm điều khiển là phần mềm “Bluetooth RC Controller” Phần mềm này được tải trên chợ ứng dụng CH play của hệ điều hành Android
Trang 21Sau đây là giao diện của phần mềm:
Hình 2.6 Giao diện phần mềm điều khiển
3.3 Code
#include <MotorDriver.h> //thư viện motor DC
#include <Servo.h> //thư viện servo
MotorDriver m;// khai báo 1 biến motor(kiểu class)
Servo servo; //khai báo 1 biến servo(kiểu class)
char command; //biến để chứa dữ liệu nhận về từ bluetooth
int pos = 82; //khởi tạo góc quay ban đầu cho servo
void setup()
{
Serial.begin(9600); //Kết nối bluetooth module ở tốc độ 9600bit/s
servo.attach(9);
pinMode(2, OUTPUT); //truoc trai
pinMode(5, OUTPUT); //truoc phai
pinMode(6, OUTPUT); // sau trai
pinMode(13, OUTPUT); //sau phai
}
Trang 22Stop(); //khởi tạo động cơ dừng
Trang 23m.motor(1,FORWARD,255); //động cơ 1, chạy thuận, tốc độ 255
m.motor(2,FORWARD,255);//động cơ 2, chạy thuận, tốc độ 255
digitalWrite(2, HIGH); //2 đèn trước sáng
digitalWrite(5, HIGH);
}
void back()
{
m.motor(1,BACKWARD,255);//động cơ 1, chạy ngược, tốc độ 255
m.motor(2,BACKWARD,255);//động cơ 2, chạy ngược, tốc độ 255
digitalWrite(6, HIGH);//đèn phải sau sáng
servo.write(110);// servo xoay góc 110 để rẽ phải
digitalWrite(5, HIGH);// phải trước sáng
Trang 26digitalWrite(13,LOW);
}
PHẦN 4: KẾT QUẢ
Xe hoạt động tốt, ổn định, linh hoạt
Mô tả chế độ hoạt động của xe:
• Chế độ tiến: 2 động cơ chạy thuận, 2 đèn trước sáng
• Chế độ lùi: 2 động cơ chạy ngược, 2 đèn sau sáng
• Chế độ rẽ phải: servo quay 1 góc 110 độ để rẽ phải, đèn phải trước sáng, đèn phải sau sáng
• Chế độ tiến rẽ phải: 2 động cơ chạy thuận, servo quay 1 góc 110 độ để rẽ phải, đèn phải trước sáng, đèn phải sau sáng
• Chế độ lùi rẽ phải: 2 động cơ chạy ngược, servo quay 1 góc 110 độ để rẽ phải, đèn phải trước sáng, đèn phải sau sáng
• Chế độ rẽ trái: servo quay 1 góc 110 độ để rẽ trái, đèn trái trước sáng, đèn trái sau sáng
• Chế độ tiến rẽ trái: 2 động cơ chạy thuận, servo quay 1 góc 110 độ để rẽ trái, đèn trái trước sáng, đèn trái sau sáng
• Chế độ lùi rẽ trái: 2 động cơ chạy ngược, servo quay 1 góc 110 độ để rẽ trái, đèn trái trước sáng, đèn trái sau sáng