Cùng với sự phát triển nhanh chóng về khoa học - kỹ thuật, ngà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
Trang 1TR ƯỜ NG Đ I H C CÔNG NGHI P HÀ N I Ạ Ọ Ệ Ộ
ﻣKHOA ĐI N Ệ ﻣ
BÀI T P L N Ậ Ớ
Đề tài: THIẾT KẾ MÔ HÌNH XE ĐIỀU KHIỂN BẰNG BLUETOOTH TRÊN ĐIỆN THOẠI SMARTPHONE
Nhóm 03-TĐH 01
Trang 2BÀI T P L N Ậ Ớ
Đề tài: THIẾT KẾ MÔ HÌNH XE ĐIỀU KHIỂN BẰNG BLUETOOTH TRÊN ĐIỆN THOẠI SMARTPHONE
Thành viên nhóm
Trầần Kh Hào-MSV 2022601769 ả Trầần Chu Hiếếu-MSV 2022601276 Chu Văn Hoàng-MSV 2022601956
Ph m Minh Hoàng-MSV 2022602162 ạ Phùng Huy Hoàng-MSV 2022600437 Nguyếễn Huy H ưở ng-MSV 2022600403 Nguyếễn Tr ườ ng Huy-MSV 2022606833
Ph m Quang Huy-MSV 2022601163 ạ Nguyếễn Vi t Dũng-MSV 2022600399 ệ
Trang 3M C L C Ụ Ụ
1 Lý Do Chọn Đề Tài, Mục Đích, Đối Tượng Nghiên Cứu Trang 6
CHƯƠNG 3: VI ĐIỀU KHIỂN ARDUINO UNO R3 VÀ TỔNG QUÁT VỀ
Trang 44.1 Chương Trình Android Trang 17
4.1.1 Giao diện điều khiển Android trên Smartphone Trang 17
4.1.2.1 Phần mềm viết chương trình và biên dịch chương trình Trang 18
CHƯƠNG 5 : KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI Trang 30
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, ngà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ệnphục 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, em đã thiết kế và thi công mạch “Mô hình xe điều khiển bằng Bluetooth trên điện thoại smartphone”
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ậychúng em mong sự giúp đỡ của Thầy và sự góp ý của bạn bè
Chúng em xin chân thành cảm ơn!
Trang 6Danh sách hình nh ả
Hình 2.1.1: Giao di n điềều khi n trền smartphone ệ ể Trang 7
Hình 2.1.2: Arduino uno R3 Trang 8
Hình 2.1.3: Mô hình h thôống ệ Trang 8
Hình 3.1: Cấốu T o Arduino uno R3 ạ Trang 10
Hình 3.2: Bluetooth phiền b n 4.0 ả Trang 13
Hình 3.3: Module Bluetooth HC-05 Trang 14
Hình 3.4: S đôề m ch chấn Bluetooth ơ ạ Trang 16
Hình 4.1.1: Giao di n điềều khi n Android trền Smartphone ệ ể Trang 17
Hình 4.1.2: Cho Phép b t Bluetooth tr ậ ướ c khi kềốt nôối v i Arduino ớ Trang 17
Hình 4.1.3: Chềố đ điềều khi n 1 ộ ể Trang 18
Hình 4.1.4: Chềố đ điềều khi n 2 ộ ể Trang 18
Hình 4.1.5: Giao di n phấền mềềm ệ Trang 18
Hình 4.2.1: Đ t đôề trền shopee vềề ặ Trang 22
Hình 4.2.2: Ki m tra đôề ể Trang 23
Hình 4.2.3: Module L298 m ch cấều H ạ Trang 23
Trang 7Hình 4.2.9: Lắốp đ ng c gi m tôốc vào bánh xe ộ ơ ả Trang 26
Hình 4.2.10: Gắốn bánh xe đã đ ượ c lắốp đ ng c gi m tôốc vào khung xe ộ ơ ả Trang 26
Hình 4.2.11: Lắốp encoder vào đ ng c gi m tôốc ộ ơ ả Trang 27
Hình 4.2.12: Hàn dấy cho đ ng c gi m tôốc, hàn 2 đấều dấy và 2 là đôềng trền ộ ơ ả
Trang 8kỹ thuật điện tử trở nên phong phú và đa dạng hơn Nó góp phần rất lớn trong việc đưa kỹ thuật hiện đại thâm nhập rộng rãi vào mọi lĩnh vực của hoạt động sản xuất, kinh tế và đời sống xã hội Từ những hệ thống máy tính đến các thiết bị cá nhân cầm tay điện thoại Smartphone, để điều khiển các máy công nghiệp đến các thiết bị phục
vụ cho đời sống hằng ngày của con người
Khoa học phát triển hầu như các thiết bị đầu có sự góp mặt của công nghệ đượctiếp cận sớm là một lợi thế Điện thoại trở nên phổ biến mọi người ai cũng có cho mình một chiếc điện thoại
Với mong muốn tìm hiểu nguyên lý, kỹ thuật trong các hệ thống điều khiển
Nhóm em đã thiết kế ra “THIẾT KẾ MÔ HÌNH XE ĐIỀU KHIỂN BẰNG
BLUETOOTH TRÊN ĐIỆN THOẠI SMARTPHONE”
1.2 Mục đích của đề tài
Mục đích nghiên cứu của đề tài này là nghiên cứu về Arduino cụ thể hơn là Arduino uno, cải thiện kỹ năng thực hành, phương pháp lập trình cho Arduino bằng ngôn ngữ Arduino (được xây dựng trên ngôn ngữ C), để biên dịch chương trình và chuyển chương trình lên board là phần mềm Arduino IDE Lập trình ứng dụng
Android dùng SDK, giao tiếp thông qua Bluetooth…
1.3 Đối tượng phạm vi nghiên cứu
Module Bluetooth HC-05, arduino uno R3, module I298 mạch cầu H, động cơ
DC, phần mềm Arduino Integrated Development Environment (IDE)
Trang 91.4 H ướ ng nghiên c u và th c hi n ứ ự ệ
Nghiên cứu nắm bắt phần cứng của Arduino uno R3, sơ đồ khối, bố trí chân, tập lệnh điều khiển cho Arduino uno R3
Tìm hiểu cách điều khiển động cơ DC
Tìm hiểu về lập trình phần mềm Android giao tiếp Bluetooth Hướng đến kết quả cuối cùng là xe hoạt động ổn định, điều khiển được bằng bluetooth thông qua điệnthoại
Trang 10TỔNG QUAN VỀ Ý TƯỞNG2.1 Ý Tưởng Thiết Kế
2.1.1 Thiết bị điều khiển
Việc xây dựng ứng dụng trên hệ điều hành Android tương đối thuận lợi, dễ dàng bởi đây là hệ điều hành mã nguồn mở với cộng đồng sử dụng đông đảo Việc phát triển ứng dụng được thực hiện dễ dàng bất cứ khi nào mà không bị gò bó bởi bộ điều khiển riêng biệt Qua đó nhóm đã thực hiện tạo một ứng dụng trên chiếc
Smartphone chạy hệ điều hành Android, ứng dụng này có nhiệm vụ điều khiển thiết bịngoại vi thông qua sóng Bluetooth
Hình 2.1.1: Giao diện điều khiển trên smartphone
2.1.2 Thiết bị ngoại vi
Nhóm sử dụng một module Bluetooth (HC–05) để truyền tải dữ liệu với Mobile
và được điều khiển bởi 1 vi điều khiển Vi điều khiển có nhiệm vụ chính là xử lý tín hiệu nhận được từ module Bluetooth và điều khiển 4 động cơ của xe
Để đơn giản hơn trong việc lập trình, nhóm đã quyết định sử dụng Arduino, cụ thể hơn là Arduino uno R3 Việc lập trình cho Arduino cũng khá dễ dàng như các loại
vi điều khiển khác, phần mềm viết chương trình cho Arduino là Arduino Integrated Development Environment (IDE)
Trang 11− Tổng quan về Arduino, hệ điều hành Android và Bluetooth
− Thiết kế và thi công
− Nhận xét và hướng phát triển đề tài
Trang 12VI ĐIỀU KHIỂN ARDUINO UNO R3 VÀ TỔNG QUAN VỀ
- Arduino Uno R3 là một board mạch vi điều khiển được phát triểnbởi Arduino.cc, một nền tảng điện tử mã nguồn mở chủ yếu dựa
trên vi điều khiển AVR Atmega328P
3.1.2 Cấấu T o Arduino uno R3 ạ
Hình 3.1.1: Cấấu T o Arduino uno R3 ạ
Trang 133.1.3 Tính năng arduino trên board
-Arduino Uno đi kèm với giao diện USB tức là cổng USB đượcthêm vào bo mạch Arduino để phát triển giao tiếp nối tiếp vớimáy tính
-Bộ vi điều khiển Atmega328 sử dụng trên bo mạch đi kèm vớimột số tính năng như hẹn giờ, bộ đếm, ngắt, chân PWM, CPU,chân I / O và dựa trên xung nhịp 16 MHz giúp tạo ra nhiều tần
số và số lệnh hơn trong mỗi chu kỳ
-Đây là một nền tảng mã nguồn mở, nơi mọi người có thể sửađổi và tối ưu hóa bảng dựa trên số lượng hướng dẫn và nhiệm
-Có 14 chân I / O digital và 6 chân analog được tích hợp trênArduino cho phép kết nối bên ngoài với bất kỳ mạch nào vớiArduino Các chân này cung cấp sự linh hoạt và dễ sử dụng chocác thiết bị bên ngoài có thể được kết nối thông qua các chânnày
-6 chân analog được đánh dấu là A0 đến A5 và có độ phân giải
10 bit Các chân này đo từ 0 đến 5V, tuy nhiên, chúng có thểđược cấu hình ở phạm vi cao bằng cách sử dụng chức nănganalogReference () và chân ISF
-Chỉ cần nguồn 5V để sử dụng với Arduino, hoặc lấy nguồntrực tiếp từ cổng USB Arduino có thể hỗ trợ nguồn điện bênngoài lên đến 12 V và có thể được điều chỉnh giới hạn ở mức 5
V hoặc 3,3 V dựa trên yêu cầu của dự án
Trang 14-Làm mã nguồn mở này được c dùng để làm bộ xử lý trung tâm của rất
nhiều loại robot
-Dùng để chế tạo ra máy bay không người lái
-Điều khiển đèn giao thông, làm hiệu ứng đèn Led nhấp nháy trên các
biển quảng cáo…
- Điều khiển motor, đèn led
3.2 Tổng Quan Về Công Nghệ Không Dây Bluetooth
3.2.1 Khái niệm
Bluetooth là một công nghệ cho phép truyền thông giữa các thiết bị với nhau
mà không cần dây dẫn Nó là một chuẩn điện tử, điều đó có nghĩa là các hãng sản xuấtmuốn có đặc tính này trong sản phẩm thì họ phải tuân theo các yêu cầu của chuẩn nàycho sản phẩm của mình Những tiêu chuẩn kỹ thuật này đảm bảo cho các thiết bị cóthể nhận ra và tương tác với nhau khi sử dụng công nghệ Bluetooth.Ngày nay phần lớn các nhà máy đều sản xuất các thiết bị có sử dụng công nghệBluetooth Các thiết bị này gồm có điện thoại di động, máy tính và thiết bị hỗ trợ cánhân PDA ( Personal Digital Assistant ) Công nghệ Bluetooth là một công nghệ dựatrên tần số vô tuyến và bất cứ một thiết bị nào có tích hợp bên trong công nghệ nàyđều có thể truyền thông với các thiết bị khác với một khoảng cách nhất định về cự ly
để đảm bảo công suất cho việc phát và nhận sóng Công nghệ này thường được sửdụng để truyền thông giữa hai loại thiết bị khác nhau Ví dụ: Bạn có thể hoạt động trênmáy tính với một bàn phím không dây, sử dụng bộ tai nghe không dây để nói chuyệntrên điện thoại di động của bạn hoặc bổ sung thêm một cuộc hẹn vào lịch biểu PDAcủa một người bạn từ PDA của bạn
Trang 15- Tính tương thích cao, được nhiều nhà sản xuất phần cứng cũng như phầnmềm hỗ trợ.
3.2.2.2 Khuyết điểm
- Khoảng cách kết nối còn ngắn so với công nghệ mạng không dây khác
- Số thiết bị active, pack cùng lúc trong một piconet còn hạn chế
- Tốc độ truyền không cao
Trang 16Bluetooth được thiết kế hoạt động trên 79 tần số đơn lẻ Khi kết nối , nó sẽ tự độngtìm ra tần số tương thích để di chuyển đến thiết bị cần kết nối trong khu vực nhằmđảm bảo sự liên tục Về tầm phủ sóng, bluetooth có 3 class: class 1 có công suất100mW với tầm phủ sóng gần 100m; class 2 có công suất 2,5mW tầm phủ sóngkhoảng 10m; và class 3 là 1mW với tầm phủ sóng khoảng 5m Bản thân bên trongBluetooth hiện nay là một tập hợp nhiều giao thức hoạt động khác nhau.
Ví dụ: A2DP ( Advvanced Audio Distribution Profile) là cơ chế truyền dẫn âmthanh stereo qua sóng bluetooth tới các tai nghe, loa; FTP( File Transfer Protocol) là
cơ chế chuyển đổi dữ liệu qua kết nối Bluetooth giữa các thiết bị ( hay còn gọi là FileTransfer Services ); hay OBEX, được phát triển bởi chính nhà mạng Verizon , chophép xóa dữ liệu thông qua Bluetooth
3.3.4 Module Bluetooth HC - 05
3.3.4.1 Giới thiệu về Module Bluetooth HC – 05
Hình 3.3.3: Module Bluetooth HC-05
Đặc điểm kỹ thuật:
Trang 17+ Ở chế độ SLAVE: Cần thiết lập kết nối từ smartphone, laptop, usb bluetooth để dò tìm module sau đó pair với mã PIN là 1234 Sau khi pair thành công, bạn đã có 1 cổngserial từ xa hoạt động ở baud rate 9600.
+ Ở chế độ MASTER: module sẽ tự động dò tìm thiết bị bluetooth khác (1 module bluetooth HC-06, usb bluetooth, bluetooth của laptop…) và tiến hành ghép nối chủ động mà không cần thiết lập gì từ máy tính hoặc smartphone
- Hoạt động điện áp: 3.2 ~ 6VDC
- Mức điện áp giao tiếp: 3.3 - 5VDC
- Dòng khi hoạt động: khi Ghép nối 30 mA, sau khi ghép nối hoạt động truyền nhận - bình thường 8 mA
- Tốc độ truyền UART có thể chọn được: 1200, 2400, 4800, 9600, 19200, 38400,
- Đáp ứng theo lệnh: khi làm việc ở chế độ này, chúng ta có thể gửi các lệnh AT
để giao tiếp với module Giao tiếp với module bằng giao tiếp nối tiếp không đồng bộqua hai đường RX và TX Bằng cách thay đổ trạng thái chân KEY chúng ta có thể cấuhình chế độ hoạt động cho Module
- Để module làm việc ở chế độ tự động kết nối: KEY phải ở trạng thái Floating( trạng thái không kết nối )
- Để module làm việc ở chế độ đáp ứng theo lệnh : KEY=’0’, cấp nguồn chomodule, chuyển KEY = ‘1’, lúc này có thể giao tiếp với module bằng tập lệnh AT Ởchế độ SLAVE: chúng ta cần thiết lập kết nối từ smartphone, laptop, usb bluetooth để
dò tìm module và ghép nối với pin code mặc định ”1234”
Module tương thích với các vi diều khiển 5V mà không cần chuyển đổ mứcgiao tiếp 5V về 3.3V như nhiều loại module khác
3.3.4.2 Đặc tả phần cứng
Module Bluetooth HC-05 được thiết kế để chuyển đổi giao tiếp nối tiếp không
Trang 18Hình 3.3.4: S đồồ chấn m ch Bluetooth ơ ạ
Mô tả sơ đồ chân
Chân VCC: Giống như mọi thiết bị khác, HC05 Modules cũng phụ thuộc vào nguồn điện để hoạt động và chân VCC cấp nguồn điện từ bên ngoài
Chân GND: Chân nối đất module
Chân TX: Chân truyền dữ liệu giao thức UART
Chân RX: Chân nhận dữ liệu trong giao tiếp UART
Chân State: Báo trạng thái kết nối của Bluetooth
Chân Enable/key: Chân Enable / Key là chân thay đổi chế độ giữa chế độ dữ liệu và chế độ dòng lệnh bằng cách cấp tín hiệu bên ngoài Cấp logic cao sẽ chuyển sang chế
độ dòng lệnh và trạng thái logic thấp sẽ chuyển sang chế độ dữ liệu Chế độ thiết bị mặc định là chế độ dữ liệu
Chân button: Các chế độ dữ liệu và lệnh có thể thay đổi thông qua một nút nhấn có trên module
Chân LED: Đèn LED hiển thị trạng thái của Module HC-05
Trang 19CHƯƠNG 4 THIẾT KẾ VÀ THI CÔNG4.1 Chương Trình Android
4.1.1 Giao diện điều khiển Android trên Smartphone
Hình 4.1.1: Giao diện điều khiển Android trên Smartphone
Hình 4.1.2: Cho Phép bật Bluetooth trước khi kết nối với Arduino
Trang 20Hình 4.1.3: Chế độ điều khiển 1
Hình 4.1.4: Chế độ điều khiển 2
Trang 214.1.2 Phấền Mêềm Arduino
4.1.2.1 Phấền mêềm viêất ch ươ ng trình và biên d ch ch ị ươ ng trình
Hình 4.1.5: Giao di n phấồn mềồm ệ
Arduino Uno R3 sử dụng phần mềm Arduino IDE để lập chương trình, ngôn
ngữ lập trình cho Arduino cũng có tên là Arduino (được xây dựng trên ngôn ngữ C) Ngoài viết chương trình phần mềm Arduino IDE còn biên dịch và tải chương trình lên board
4.1.2.2 Cấấu trúc ch ươ ng trình
Phần I: Khai báo biến
1)Char: khai báo kiểu biến
● VD: char data = 0;
2) #define: là một đối tượng của ngôn ngữ C/C++ cho phép bạn đặt tên cho một hằng
số nguyên hay hằng số thực Trước khi biên dịch, trình biên dịch sẽ thay thế nhữngtên hằng bạn đang sử dụng bằng chính giá trị của chúng
● Cú pháp : #define [tên hằng] [giá trị của hằng]
Trang 22● Cú pháp : digitalWrite(pin,value);
● Trong đó: pin là chân digital mà bạn muốn thiết lập
value là giá trị HIGH hoặc LOW
● VD: digitalWrite (13, HIGH);
Chương trình khai báo biến, hàm con:
char data = 0;
#define in110 // thay thế in1 bằng chân số 10
#define in211 // thay thế in2 bằng chân số 11
#define in312 // thay thế in3 bằng chân số 12
#define in413 // thay thế in4 bằng chân số 13
void forward(){ // khai báo hàm cho xe đi thẳng
digitalWrite(in1 , HIGH);
digitalWrite(in2 , LOW);
digitalWrite(in3 , HIGH);
digitalWrite(in4 , LOW);
}
void backward(){ // khai báo hàm cho xe đi lùi
digitalWrite(in2 , HIGH);
digitalWrite(in1 , LOW);
digitalWrite(in4 , HIGH);
digitalWrite(in3 , LOW);
}
void right(){ // khai báo hàm cho xe rẽ phải
digitalWrite(in3 , HIGH);
digitalWrite(in4 , LOW);
digitalWrite(in1 , LOW);
digitalWrite(in2 , LOW);
}
void left(){ // khai báo hàm cho xe rẽ trái
digitalWrite(in1 , HIGH);
digitalWrite(in2 , LOW);
digitalWrite(in3 , LOW);
digitalWrite(in4 , LOW);
}
void stop(){ // khai báo hàm cho xe dừng
digitalWrite(in2 , LOW);
Trang 23digitalWrite(in3 , LOW);
digitalWrite(in4 , LOW);
}
void backleft(){// khai báo hàm cho xe rẽ phải
digitalWrite(in1 , LOW);
digitalWrite(in2 , HIGH);
digitalWrite(in3 , LOW);
digitalWrite(in4 , LOW);
}
void backright(){ // khai báo hàm cho xe rẽ trái
digitalWrite(in3 , LOW);
digitalWrite(in4 , HIGH);
digitalWrite(in1 , LOW);
digitalWrite(in2 , LOW);
}
Phần II: Hàm thiết lập - void setup (){}
1)Hàm setup() sẽ được gọi ngay khi bắt đầu chương trình, sử dụng nó để khởi tạo các
biến, pin mode, bắt đầu sử dụng thư viện,…
2)Hàm setup() sẽ chỉ chạy một lần, sau mỗi lần khởi động hoặc reset Arduino.
Câu lệnh của chương trình trong setup
void setup()
{
pinMode(in1 , OUTPUT);
pinMode(in2 , OUTPUT);
pinMode(in3 , OUTPUT);
pinMode(in4 , OUTPUT);
Serial.begin(9600);
}
Trong đó:
1) pinMode(); dùng để định cấu hình chân được chỉ định để hoạt động như đầu vào
hoặc đầu ra
● Cú pháp : pinMode(pin, Mode);
2) Thư viện Serial được dùng trong việc giao tiếp giữa các board mạch với nhau
(hoặc board mạch với máy tính hoặc với các thiết bị khác) Tất cả các mạch