Đồ án này trình bày kết quả nghiên cứu công nghệ không dây Bluetooth của các thiếtbị điện tử chạy trên nền hệ điều hành Android và ứng dụng vào thiết kế mô hình xeđiều khiển từ các thiết
Trang 1LỜI CẢM ƠN
Tôi xin chân thành cảm ơn gia đình của tôi, đặc biệc là cha mẹ tôi đã tạomọi điều kiện cho tôi ăn học cho đến ngày hôm nay Chính họ là nguồnđộng viên lớn nhất ủng hộ tôi, giúp đỡ tôi trong suốt quá trình học tập cũngnhư việc thực hiện đồ án này
Tôi xin chân thành cám ơn cô hướng dẫn PGS TS TRẦN THU HÀ
trường Đại học Kỹ Thuật Tp Hồ Chí Minh đã tận tình chỉ dạy, hướng dẫn,đóng góp nhiều ý kiến quý báu trong suốt quá trình thực hiện đồ án
Tôi cũng xin chân thành cám ơn thầy cô trong khoa Điện - Điện Tử nóiriêng và thầy cô trường Đại Học Sư Phạm Kỹ Thuật Tp Hồ Chí Minh đã tạo
ra cho tôi một môi trường học tập thật tuyệt vời và đã tạo mọi điều kiện chotôi hoàn thành đồ án này
Xin cám ơn tất cả các bạn học viên và các anh chị đã đóng góp những ýkiến và giúp đỡ tôi hoàn thành đồ án này
Người thực hiện đồ án NGUYỄN NGỌC TUẤNNGUYỄN PHẠM LÊ DUY
1 GVHD: PGS.TS TRẦN THU HÀ
Trang 2Đồ án này trình bày kết quả nghiên cứu công nghệ không dây Bluetooth của các thiết
bị điện tử chạy trên nền hệ điều hành Android và ứng dụng vào thiết kế mô hình xeđiều khiển từ các thiết bị Android qua kết nối không dây Bluetooth
Từ khóa: robot car, mobile robot, Bluetooth, Board Arduino Mega 2560.
Trang 3MỤC LỤC
LỜI CẢM ƠN i
TÓM TẮT i
MỤC LỤC iii
DANH SÁCH CÁC HÌNH v
DANH SÁCH CÁC BẢNG v
DANH SÁCH CÁC CHỮ VIẾT TẮT vi
Chương 1 TỔNG QUAN VỀ BLUETOOTH VÀ ARDUINO 1
1.1.Tổng quan về tình hình nghiên cứu trong và ngoài nước 1
1.1.1.Giới thiệu chung 1
1.1.2.Tổng quan tình hình nghiên cứu ngoài nước 2
1.1.2.1.Công nghệ không dây Bluetooth 2
1.1.2.2.Công nghệ Arduino 4
1.1.3.Tổng quan tình hình nghiên cứu trong nước 5
1.2.Mục tiêu và đối tượng nghiên cứu của đề tài 6
1.2.1.Mục tiêu 6
1.2.2.Đối tượng nghiên cứu 6
1.3.Nhiệm vụ và giới hạn của đề tài 6
1.3.1.Nhiệm vụ 6
1.3.2.Giới hạn 7
1.4.Phương pháp nghiên cứu 7
1.5.Nội dung luận văn 7
Chương 2 CƠ SỞ LÝ THUYẾT 9
2.1.Giới thiệu về hệ điều hành Androi 9
2.1.1.Lịch sử phát triển 9
3 GVHD: PGS.TS TRẦN THU HÀ
Trang 42.1.2.Kiến trúc của Anroid 10
2.2 Board Arduino Mega 2560 18
2.3.Giao tiếp Bluetooth 23
2.3.1.Giới thiệu về module HC - 05 23
2.3.2.Đặc điểm kỹ thuật 24
2.3.3 Đặc điểm phần cứng 24
2.3.4 Tập lệnh HC -05 25
Chương 3 LẬP TRÌNH GIAO DIỆN TRÊN HỆ ĐIỀU HÀNH ANDROID 42
3.1 Giới thiệu phàn mềm lập trình App Inventor2 42
3.1.1 Tạo project 42
3.1.2 Xây dựng layout 43
3.2 Chương trình điều khiển : 44
3.3 Kết quả lập trình màn hình giao diện trên hệ điều hành android: 46
Chương 4: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH XE ĐIỀU KHIỂN 47
4.1 Thiết kế phần cứng: 47
4.1.1 Khối xử lý: 47
4.1.2 Khối nguồn: 48
4.1.3 Khối Driver động cơ: 48
4.2 Giới thiệu linh kiện sử dụng trong thiết kế mô hình xe : 48
4.2.1 Mạch điều khiển động cơ L298: 48
4.2.2 Cảm biến nhiệt độ và độ ẩm DHT 11: 51
4.2.3 Động cơ DC giảm tốc V1: 52
4.3 Mô hình xe sau thiết kế: 53
4.4 Lưu đồ giải thuật của chương trình: 54
Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 55
5.1 Những mục tiêu đã đạt được 55
5.2 Những hạn chế của đề tài 55
5.3 Hướng phát triển của đề tài 55
Trang 5TÀI LIỆU THAM KHẢO 56
DANH SÁCH CÁC HÌ Hình 2 1 Cấu trúc stack hệ thống Android 10
Hình 2 2 Công cụ Android Virtual Device Manager 12
Hình 2 3 Máy ảo do Android Virtual Device Manager tạo ra 13
Hình 2 4 Thiết kế giao diện cho Android Project dùng phương pháp kéo thả 13
Hình 2 5 Thiết kế giao diên cho Android Project dùng phương pháp viết code 14
Hình 2 6 Một số hình ảnh Mobile Android 17
Hình 2 7 Giao diện IDE của Arduino 20
Hình 2 8 Board Arduino Mega 2560 (mặt trước và sau) 21
Hình 2 9 Board Arduino Mega 2560 22
Hình 2 10 Sơ đồ chân của ATMEGA 2560 22
Hình 2 11 Module HC - 05 24
Hình 2 12 Phần cứng HC - 05 24
Hình 3 1 Giao diện phần mềm app inventor2 42
Hình 3 2 Xây dựng Project 43
Hình 3 3 Xây dựng giao diện điều khiển 43
Hình 3 4 Màn hình thiết kế chương trình điều khiển 44
Hình 3 5 Chương trình điều khiển giao diện 45
Hình 3 6 Giao diện điều khiển xe 46
Hình 4 1 Sơ đồ khối của hệ thống 47
Hình 4 2 Board xử lý Arduino 47
Hình 4 3 Sơ đồ khối nguồn 48
Hình 4 4 Sơ đồ khối Driver của động cơ 48
YHình 4 5 Mạch điều khiển động cơ L298 49
Hình 4 6 Các chân điều khiển của L298 49
Hình 4 7 Kết nồi giữa Arduino và L298 với động cơ 50
Hình 4 8 Cảm biến DHT 11 51
Hình 4 9 Cách kết nối arduino với DHT11 52
Hình 4 10 Động cơ DC giảm tốc 52
5 GVHD: PGS.TS TRẦN THU HÀ
Trang 6Hình 4 11 Mô hình xe điều khiển 53Hình 4 12 Lưu đồ chương trình của arduino 54
DANH SÁCH CÁC BẢ
Bảng 2 1: Tập lệnh kiểm tra 25YBảng 2 2: Tập lệnh thiết lập lại 25Bảng 2 3: Tập lệnh lấy phiên bản mềm 25Bảng 2 4: Tập lệnh khôi phục trạng thái mặc định25Y
Bảng 2 5: Tập lệnh nhận địa chỉ module Bluetooth 26Bảng 2 6: Tập lệnh đặt / hỏi tên của thiết bị 26Bảng 2 7: Tập lệnh n hận tên thiết bị Bluetooth điều khiển từ xa2
Bảng 2 8: Tập lệnh Đặt / hỏi vai trò mô-đun 27Bảng 2 9: Tập lệnh Đặt / hỏi loại thiết bị 27Bảng 2.10: Tập lệnh Đặt / hỏi - Yêu cầu mã truy cập2
Bảng 2.11: Tập lệnh Đặt / hỏi – chế độ dò xét truy cập 29Bảng 2.12 Tập lệnh Đặt/dò xét- passkey 29Bảng 2.13: Tập lệnh Đặt/ dò xét- tham số xê-ri 3
Bảng 2.14: Tập lệnh Set / Dò xét - Chế độ kết nối 30Bảng 2.15: Tập lệnh Đặt / Yêu cầu - địa chỉ Bluetooth ràng buộc 31Bảng 2.16:Tập lệnh Đặt / Yêu cầu - tình trạng đèn LED và kết nối3
Bảng 2.17: Tập lệnh Đặt PIO đầu ra cổng duy nhất 32Bảng 2.18: Tập lệnh Set PIO đầu ra nhiều cổng 32Bảng 2.19: Tập lệnh Yêu cầu PIO cổng đầu vào3
Bảng 2.20: Tập lệnh Yêu cầu PIO cổng đầu vào 33Bảng 2.21: Tập lệnh Đặt/ tìm hiểu thông số năng lượng yêu cầu 34Bảng 2.22:Tập lệnh Đặt / tìm hiểu chế độ an toàn và mã hóa3
Bảng 2.23: Tập lệnh Xóa thiết bị trong danh sách Bluetooth 35Bảng 2.24: Tập lệnh Xóa tất cả các thiết bị xác nhận trong danh sách 35
Trang 7Bảng 2.25: Tập lệnh T ìm kiếm thiết bị xác nhận trong danh sách Bluetooth3
Bảng 2.26: Tập lệnh Lấy số thiết bị xác thực từ danh sách cặp 36Bảng 2.27: Tập lệnh Lấy địa chỉ Bluetooth của thiết bị xác thực sử dụng 37Bảng 2.28: Tập lệnh Lấy tình trạng làm việc của các mô-đun Bluetooth
Bảng 2.29: Tập lệnh Khởi tạo hồ sơ SPP 38Bảng 2.30: Yêu cầu thiết bị Bluetooth 38
Bảng 2.31: Tập lệnh Hủy bỏ thiết bị Bluetooth 38
Bảng 2.32: Tập lệnh Cài đặt cặp 38
Bảng 2.33 : Tập lệnh Kết nối thiết bị 39
Bảng 2.34 : Tập lệnh Ngắt kết nối39
Bảng 2.35 : Tập lệnh Nhập vào chế độ năng lượng40
Bảng 2.36: Tập lệnh Thoát chế độ năng lượng 40
Bảng 2.37: Giới thiệu về AT mã lỗi lệnh 41
7 GVHD: PGS.TS TRẦN THU HÀ
Trang 8Microcomputer Products soạn thảo
Pulse Width Modulation PWM Điều chế độ rộng xung
Central Processing Unit CPU Bộ xử lý trung tâm
Advanced RISC Machine ARM
Một loại cấu trúc vi xử lý 32 bit và 64 bit kiểu RISC được sử dụng rộng rãi trong các thiết kế nhúng
Trang 9Chương 1 TỔNG QUAN VỀ BLUETOOTH VÀ ARDIUNO
1.1 Tổng quan về tình hình nghiên cứu trong và ngoài nước
1.1.1 Giới thiệu chung
Ngày nay , xã hội phát triển mạnh mẽ, kỹ thuật ngày càng hiện đại do đó nhucầu về trao đổi thông tin, giải trí, nhu cầu về điều khiển thiết bị từ xa, ngày càng cao
Và những hệ thống dây cáp phức tạp lại không thể đáp ứng tốt nhu cầu này, nhất là ởnhững khu vực phức tạp, xa xôi , trên các phương tiện vận chuyển, vì thế công nghệkhông dây ra đời đã và đang phát triển mạnh mẽ, tạo rất nhiều thuận lợi cho con ngườitrong đời sống hằng ngày Kỹ thuật không dây phục vụ rất nhiều nhu cầu khác nhaucủa con người, từ nhu cầu làm việc, học tập đến các nhu cầu giải trí với các nhu cầu
đa dạng và phức tạp đó, kỹ thuật không dây đã đưa ra nhiều chuẩn với các đặc điểm kỹthuật khác nhau để có thể phù hợp với từng nhu cầu, mục đích và khả năng của người
sử dụng như IrDA, WLAN , ZigBee, OpenAir, UWB, RF, Wifi , Bluetooth…
Mỗi chuẩn kỹ thuật đều có những ưu, khuyết điểm riêng của nó, và Bluetoothđang dần nổi lên là kỹ thuật không dây tầm ngắn có nhiều ưu điểm, rất thuận lợi chonhững thiết bị di động với một tổ chức nghiên cứu đông đảo, hiện đại và số lượng nhàsản xuất hỗ trợ kỹ thuật Bluetooth vào sản phẩm của họ ngày càng tăng Bluetoothđang phát triển khắp thế giới, có mặt trong mọi lĩnh vực của thiết bị điện tử và trongtương lai mọi thiết bị điện tử đều có thể được hỗ trợ kỹ thuật này
Bên cạnh đó việc điều khển thiết bị cũng rất quan trọng hiện nay trên thế giới nóichung, việt nam nói riêng để điều khiển và giao tiếp với nhiều thiết bị ngoại vi, boardmạch Arduino là một chọn lựa thích hợp Arduino thật ra là một bo mạch vi xử lýđược dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ,đèn hoặc các thiết bị khác Đặc điểm nổi bật của Arduino là môi trường phát triển ứngdụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóngngay cả với người ít am hiểu về điện tử và lập trình Và điều làm nên hiện tượngArduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm.Chỉ với khoảng $30, người dùng đã có thể sở hữu một bo Arduino có 20 ngõ I/O có thểtương tác và điều khiển chừng ấy thiết bị
1 GVHD: PGS.TS TRẦN THU HÀ
Trang 10Trên thị trường Việt Nam hiện nay chưa có nhiều sản phẩm điều khiển thiết bịkhông dây, đa số những sản phẩm hiện có đều là nhập khẩu từ nước ngoài với giáthành cao Việc nghiên cứu và thiết kế một bộ sản phẩm điều khiển thiết bị khôngdây có một ý nghĩa lớn, giúp tăng thêm sự lựa chọn cho người sử dụng, sản phẩmđược sản xuất trong nước nên giá thành rẻ và góp phần phát triển các hệ thống điều
khiển thông minh Do đó, chúng em quyết định thực hiện đề tài: “Điều khiển xe mô
hình từ xa sử dụng Arduino và module Bluetooth trên điện thoại Android” Đề
tài ứng dụng công nghệ Bluetooth phổ biến trên nhiều thiết bị, đặc biệt điểm mới của
đề tài so với các sản phẩm hiện có là điều khiển thông qua hệ điều hành Android giúptận dụng những thiết bị sử dụng hệ điều hành Android có sẵn của người dùng giúpgiảm giá thành sản phẩm, ngoài ra với màn hình hiển thị lớn của điện thoại cho phéphiển thị nhiều thông tin hơn , cùng với việc điều khiển thông qua board Ardiuno sẽđem lại nhiều cảm hứng cũng như thực hiện các dự án theo ý muốn một cách dễ dàng
1.1.2 Tổng quan tình hình nghiên cứu ngoài nước
1.1.2.1 Công nghệ không dây Bluetooth
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ầnlớn các nhà máy đều sản xuất các thiết bị có swur dụng công nghệ Bluetooth Cácthiế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(Prosonal Digital Assistant)
Công nghệ Bluetooth là một công nghệ dựa trên tần số vô tuyến và bất cứ mộtthiế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à
Trang 11bị khác nhau Ví dụ: Bạn có thể hoạt động trên máy tính với một bàn phím khôngdây, sử dụng bộ tai nghe không dây để nói chuyện trên điện thoại di động của bạnhoặc bổ sung thêm một cuộc hẹn vào lịch biểu PDA của một người bạn từ PDA củabạn.
Ưu điểm của Bluetooth :
Tiêu thụ năng lượng thấp
Cho phép ứng dụng được nhiều loại thiết bị bao gồm các thiết bị cầm tay và điệnthoại di động
Giá thành ngày một giảm
Khoảng cách giao tiếp cho phép giữa hai thiết bị kết nối có thể lên đến 100m
Tính tương thích cao, được nhiều nhà sản xuất phần cứng cũng như phần mềm hỗtrợ
Nhược điểm của Bluetooth :
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
Chỉ kết nối được hai thiết bị với nhau, không kết nối thành mạng
Hoạt động của Bluetooth:
Bluetooth là chuẩn kết nối không dây tầm ngắn, thiết kế cho các kết nối thiết bị
cá nhân hay mạng cục bộ nhỏ trong phạm vi băng tần từ 2.4GHz đến 2.485GHz.Bluetooth đượ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
Lịch sử phát triển Bluetooth:
Blutooth 1.0 (7/1999): phiên bản đầu tiên được đưa ra thị trường với tốc độ kết
nối ban đầu là 1Mbps Tuy nhiên, trên thực tế tốc độ kết nối của thế hệ nàychưa bao giờ đạt quá mức 700Kbps
Bluetooth 1.1 (2001): Đánh dấu bước phát triển mới của công nghệ Bluetooth
trên nhiều lĩnh vực khác nhau với sự quan tâm của nhiều nhà sản xuất mới
Bluetooth 1.2 (11/2003): Bắt đầu có nhiều tiến bộ đáng kể Chuẩn này hoạt
động dựa trên băng tần 2.4GHz và tăng cường kết nối thoại
3 GVHD: PGS.TS TRẦN THU HÀ
Trang 12 Bluetooth 2.0+ERD (2004): Bắt đầu nâng cao tốc độ và giảm thiểu một nửa
năng lượng tiêu thụ so với trước đây Tốc độ của chuẩn Bluetooth lên đến2.1Mbps với chế độ cải thiện kết nối truyền tải–ERD (Enhanced data rate)
Bluetooth 2.1+ERD (2004): đây chính là thế hệ nâng cấp của Bluetooth 2.0 có
hiệu năng cao hơn và tiết kiệm năng lượng hơn
Bluetooth 3.0+HS (2008): có tốc độ truyền dữ liệu đạt mức 24Mbps – bằng
sóng Blutooth – High Speed, tương đương chuẩn Wifi thế hệ đầu tiên, phạm
vi hiệu quả nhất chỉ trong vòng 10m
Bluetooth 4.0 (30/06/2010): Chuẩn Bluetooth mới nhất hiện nay Bluetooth
4.0 là sự kết hợp của “classic Bluetooth” (Bluetooth 2.1 và 3.0), “Bluetooth high speed” ( Bluetooth 3.0 + HS ) và “ Bluetooth low energy -Bluetooth năng lượng thấp (Bluetooth Smart Ready/ Bluetooth Smart) “Bluetooth low enegry”
là một phần của Bluetooth 4.0 với một giao thức tiêu chuẩn của Bluetooth 1.0 vào 4.0 nhằm phục vụ cho những ứng dụng năng lượng cực thấp
1.1.2.2 Công nghệ Arduino
Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác vớinhau hoặc với môi trường được thuận lợi hơn Phần cứng bao gồm một board mạchnguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vàoanalog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau
Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mang đếnmột phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên vàgiới chuyên nghiệp để tạo ra những nhiết bị có khả năng tương tác với môi trườngthông qua các cảm biến và các cơ cấu chấp hành Những ví dụ phổ biến cho nhữngngười yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và pháthiện chuyển động Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạytrên các máy tính cá nhân thông thường và cho phép người dùng viết các chương trìnhcho Aduino bằng ngôn ngữ C hoặc C++
1.1.3 Tổng quan tình hình nghiên cứu trong nước
Trang 13Trên thị trường Việt Nam hiện nay chưa có nhiều sản phẩm điều khiển thiết bịkhông dây, đa số những sản phẩm hiện có đều là nhập khẩu từ nước ngoài với giáthành cao Phạm vi ứng dụng điều khiền thiết bị không dây trong nước hiện nay đượcứng dụng và phát triển khá mạnh mẽ nhưng đều là sản phẩm nước ngoài, đó là đối vớicông nghệ không dây còn đối với Arduino ở Việt Nam, nó cũng được biết đến vàonhững năm 2010 bởi những thành viên trong ban quản trị Cộng đồng Arudino ViệtNam Và cũng đã gần 2 năm kể từ ngày Cộng đồng Arduino Việt Nam chính thức đivào hoạt động Với quy mô ngày càng lớn về chất lượng và cả số lượng Cộng đồngArudino Việt Nam đã dần trở thành một sân chơi quen thuộc của các bạn Việt Nam ,nơi mà mọi người đến học hỏi, trao đổi và chia sẻ những kiến thức độc đáo nhằm xâydựng hình ảnh cá nhân và cùng phát triển dựa trên tinh thần vì cộng đồng nguồn mở và
sự chia sẻ , quan tâm giữa các thành viên trong Cộng đồng Việt Nam Tuy còn hạn chếnhưng cũng đã có một số ứng dụng công nghệ không dây và board Ardiuno được thiết
1.2 Mục tiêu và đối tượng nghiên cứu của đề tài
1.2.1 Mục tiêu
Đề tài có những mục tiêu chính như sau :
Nghiên cứu công nghệ Bluetooth
5 GVHD: PGS.TS TRẦN THU HÀ
Trang 14 Nghiên cứu hệ điều hành Android
Nghiên cứu board Arduino Mega 2560
Nghiên cứu ngôn ngữ lập trình Java, C, C++
Thi công mô hình
Thiết kế giao diện phần mềm mô hình xe điều khiển
1.2.2 Đối tượng nghiên cứu
Công nghệ Bluetooth: khái niệm về Bluetooth, các đặc điểm của côngnghệ Bluetooth, liên kết vật lý trong công nghệ Bluetooth, các chế độ kết nối,cách thức hoạt động Nghiên cứu Module Bluetooth HC-05: các thông số kỹthuật, nguyên lý hoạt động của module HC-05
Hệ điều hành Android: kiến trúc hệ điều hành Android, chu kỳ sống các ứngdụng chạy trên hệ điều hành Android, phần mềm hỗ trợ lập trình AndroidStudio, ngôn ngữ lập trình Java, Viết phần mềm ứng dụng
Thiết kế hệ thống sử dụng vi điều khiển board Arduino Mega 2560 để giao tiếpmodule Bluetooth, điều khiển các thiết bị
1.3 Nhiệm vụ và giới hạn của đề tài
Tìm hiểu các phần mềm lập trình Keil C for ARM, Java…
Viết code mô phỏng hệ điều hành Android, code thực thi điều khiển choBoard Arduino Mega 2560
Thiết kế và thi công mô hình xe điều khiển
Vận hành thử mô hình hệ thống
1.1.2 Giới hạn
Trang 15 Do nhóm làm đề tài chỉ nghiên cứu điều khiển thiết bị thông qua moduleBluetooth nên chưa thể so sánh về ưu nhược điểm so với các thiết giao tiếpkhác , cùng với khả năng lập trình có hạn nên chưa thể viết để điều khiển cácthiết bị với độ phức tạp cao.
Vì thời gian có hạn như đã nêu trên nên phần thiết kế và thi công mô hìnhthực nghiệm chỉ dừng lại ở dạng là một chiếc xe điều khiển , do đó việc thựchiện điều khiển nhiều thiết bị phức tạp bị hạn chế
Việc điều khiển thiết bị ở khoảng cách xa chưa đạt được theo yêu cầu đưa ra
1.4 Phương pháp nghiên cứu
Người thực hiện đề tài đã sử dụng các phương pháp sau đây:
Do điều kiện về môi trường nghiên cứu, chúng em không có điều kiện làm việctrong các phòng LAB với nhiều thiết bị hỗ trợ, do đó phương pháp nghiên cứu chủyếu là:
Tham khảo tài liệu: các đề tài liên quan, tìm kiếm thông tin trên Internet;
Tự thiết kế mô hình thí nghiệm và viết phần mềm điều khiển theo các yêu cầuđặt ra
Thực nghiệm trực tiếp trên mô hình để kiểm tra phần cứng và phần mềm sau
đó điều chỉnh các thông số cho phù hợp với điều kiện thực tế
1.5 Nội dung đồ án
Nội dung đề tài gồm các phần sau:
Chương 1: Tổng quan
Tổng quan chung về lĩnh vực nghiên cứu
Mục tiêu và đối tượng nghiên cứu
Nhiệm vụ và giới hạn của đề tài
Phương pháp nghiên cứu
Chương 2: Cơ sở lý thuyết
Giới thiệu hệ điều hành ANDROID
Giới thiệu Board mạch Ardunio
Giao tiếp BLUETOOTH
7 GVHD: PGS.TS TRẦN THU HÀ
Trang 16Chương 3: Lập trình giao diện trên hệ điều hành Android
Giới thiệu linh kiện sử dụng trong thiết kế mô hình xe
Mô hình xe điều khiển
Giao tiếp các thiết bị và điều khiển mô hình
Trang 17Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõiLinux do công ty Android Inc (California, Mỹ) thiết kế Công ty này sau đó đượcGoogle mua lại vào năm 2005 và bắt đầu xây dựng Android Platform.Và sau tiếp,vào cuối năm 2007, thuộc về Liên minh Thiết bị Cầm tay Mã Nguồn mở (OpenHandset Alliance) gồm các thành viên nổi bật trong ngành viễn thông và thiết bịcầm tay như: Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG,Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics,Sprint Nextel, T-Mobile, ARM Holdings, Atheros Communications, AsustekComputer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and VodafoneGroup,…
Mục tiêu của Liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơncho nhu cầu người tiêu dùng và kết quả đầu tiên của nó chính là nền tảngAndroid Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết,các nhà khai thác và các lập trình viên thiết bị cầm tay Phiên bản SDK lần đầutiên phát hành vào tháng 11 năm 2007, hãng T-Mobile cũng công bố chiếcđiện thoại Android đầu tiên đó là chiếc T-Mobile G1, chiếc smartphone đầu tiêndựa trên nền tảng Android Một vài ngày sau đó, Google lại tiếp tục công bố sự
ra mắt phiên bản Android SDK release Candidate 1.0 Trong tháng 10 năm 2008,Google được cấp giấy phép mã nguồn mở cho Android Platform
2.1.2 Kiến trúc của Android
Mô hình sau thể hiện một cách tổng quát các thành phần của hệ điều hànhAndroid Mỗi một phần sẽ được đặc tả một cách chi tiết dưới đây:
9 GVHD: PGS.TS TRẦN THU HÀ
Trang 182.1.2.1 Applications
Android được tích hợp sẵn một số ứng dụng cần thiết cơ bản như: contacts,browser, camera, Phone,… Tất cả các ứng dụng chạy trên hệ điều hành Androidđều được viết bằng Java
2.1.2.2.Application Framework
Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho cácnhà phát triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo Nhàphát triển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập,các dịch vụ chạy nền, thiết lập hệ thống báo động, thêm các thông báo để cácthanh trạng thái, và nhiều, nhiều hơn nữa Nhà phát triển có thể truy cập vào cácAPI cùng một khuôn khổ được sử dụng bởi các ứng dụng lõi Các kiến trúc ứngdụng được thiết kế để đơn giản hóa việc sử dụng lại các thành phần; bất kỳ ứngdụng có thể xuất bản khả năng của mình và ứng dụng nào khác sau đó có thể sửdụng những khả năng (có thể hạn chế bảo mật được thực thi bởi khuôn khổ) Cơchế này cho phép các thành phần tương tự sẽ được thay thế bởi người sử dụng
Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thống, bao gồm:
- Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dùng để thiết
kế phần giao diện ứng dụng như: gridview, tableview, linearlayout,…
- Một “Content Provider” cho phép các ứng dụng có thể truy xuất dữ liệu từcác ứng dụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa
Hình 2.1: Cấu trúc stack hệ thống Android
Trang 19các ứng dụng đó.
- Một “Resource Manager” cung cấp truy xuất tới các tài nguyên khôngphải là mã nguồn, chẳng hạn như: localized strings, graphics, and layoutfiles
- Một “Notifycation Manager” cho phép tất cả các ứng dụng hiển thị cáccustom alerts trong status bar
- Activity Maanager được dùng để quản lý chu trình sống của ứng dụng
và điều hướng các activity
2.1.2.3.Library
Android bao gồm một tập hợp các thư viên C/C++ được sử dụng bởi nhiềuthành phần khác nhau trong hệ thống Android Điều này được thể hiện thông quanền tảng ứng dụng Android Một số các thư viện cơ bản được liệt kê dưới đây:
System C library: chứa các chương trình căn bản của hệ thống
Media: hỗ trợ thực hiện các thao tác với các file đa phương tiện (multimedia)như hình ảnh, video, các file âm thanh,
Surface Manager – Quản lý việc truy xuất vào hệ thống hiển thị
LibWebCore: giúp giao tiếp với các ứng dụng mạng như web
SQLite: giao tiếp với các cơ sở dữ liệu người dùng
2.1.2.4 Android Runtime
Android bao gồm một tập hợp các thư viện cơ bản mà cung cấp hầu hết cácchức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java Tất cả cácứng dụng Android đều chạy trong tiến trình riêng Máy ảo Dalvik đã được viết
để cho một thiết bị có thể chạy nhiều máy ảo hiệu quả Các VM Dalvik thực thicác tập tin thực thi Dalvik (dex) Định dạng được tối ưu hóa cho bộ nhớ tối thiểu
VM là dựa trên register-based, và chạy các lớp đã được biên dịch bởi một trìnhbiên dịch Java để chuyển đổi thành các định dạng dex Các VM Dalvik dựa vàonhân Linux cho các chức năng cơ bản như luồng và quản lý bộ nhớ thấp
Trang 20Kernel Linux hoạt động như một lớp trừu tượng hóa giữa phần cứng và phần cònlại của phần mềm stack.
1 Mô phỏng Android trên Microsoft Windows
Vì Android không phổ biến trên PC và Laptop nên với những người muốn bắt đầutìm hiểu thì nên sử dụng các công cụ lập trình và mô phỏng trước khi làm việc vớiphần cứng thực tế Android SDK và Plugin Eclipse được gọi là một AndroidDeverloper Tool (ADT) Các Android coder sẽ cần phải sử dụng công cụ IDE(Integrated Development Enveronment) này để phát triển, debugging và testing choứng dụng
Hiện nay phổ biến nhất là phần mềm Eclipse và các tool hỗ trợ như: SDK( Software Development Kit), JDK (Java Development Kit)
2 Các thành phần của 1 Project Android
a File *.xml
Trong bất kì một project Android nào khi tạo ra đều có một file **.xml, file này được dùng để định nghĩa các screen sử dụng, các permission cũng như các theme cho ứng dụng
File này có thể hiểu là dùng đề thiết lập giao diện cho Android Project, có thể tạo
ra bằng 2 cách: viết code (như ví dụ), hoặc dùng kéo thả code sẽ tự động sinh ra
Hình 2.2 : Công cụ Android Virtual Device Manager Hình 2.3: Máy ảo do Android Virtual Device Manager tạo ra
Trang 21b File *.java
Đây là file chưa các thiết lập, chương trình cho Android Project, file này đượcviết bằng ngôn ngữ Java Nội dung của file cũng gần giống như nội dung 1 chươngtrình C mà ta hay sử dụng, gồm phần khai báo các thư viện, khai báo biến, phầnchương trình chính
c Giới thiệu các phiên bản đã ra mắt của hệ điều hành Android
Android 1.0: Ra mắt ngày 23-11-2008, Android 1.0 rất nguyên sơ, tích hợp sẵn
khả năng đồng bộ dữ liệu với các dịch vụ trực tuyến của Google như Gmail, GoogleCalendar và Contacts, một trình phát media, hỗ trợ Wi-Fi và Bluetooth, thanh trạngthái hiển thị các thông báo ứng dụng và một ứng dụng chụp ảnh (camera) tuy chưa chophép thay đổi độ phân giải và chất lượng ảnh
13
Hình 2.4 : Thiết kế giao diện cho Android Project dùng phương pháp kéo thả.
Hình 2.5 : Thiết kế giao diên cho Android Project dùng phương pháp viết code
GVHD: PGS.TS TRẦN THU HÀ
Trang 22 Android 1.1: Ra mắt ngày 9-2-2009, bên cạnh con số, Google rục rịch đưa hệ
thống tên gọi (tên mã) vào các phiên bản Android Tuy chưa chính thức áp dụng nhưngAndroid 1.1 đã có tên Petit Four Không bao gồm nhiều tính năng, phiên bản này bổsung một số chức năng mới cho Google Maps hiển thị chi tiết hơn, bàn phím ảo gọiđiện thoại đã có thể hiển thị hoặc ẩn khi gọi, chương trình SMS cho phép người dùnglưu tập tin đính kèm Android 1.1 sửa một số lỗi trong Android 1.0
Android 1.5 Cupcake: Ra mắt ngày 30-4-2009, Cupcake, tên mã đầu tiên áp
dụng cho phiên bản Android Cupcake mang nhiều tính năng mới như bàn phím ảo cókhả năng dự đoán từ đang gõ, từ điển từ ngữ do người dùng đặt ra, hỗ trợ widget trêngiao diện chủ, quay phim và phát lại video clip, lược sử thời gian cuộc gọi, chế độ tựđộng xoay màn hình theo hướng sử dụng (screen rotation) Trình duyệt web trongCupcake có thêm khả năng sao chép/ dán (copy/paste)
Android 1.6 Donut: Ra mắt ngày 30-9-2009, Donut khắc phục các chức năng
"lỏng lẻo" trong Cupcake, mở rộng chức năng tìm kiếm bằng giọng nói và ký tự đếnbookmark và danh bạ Android Market trở thành "chợ đầu mối" để người dùng tìmkiếm và xem các ứng dụng Android Ứng dụng chụp ảnh và quay phim trong Donutnhanh hơn Hệ điều hành hỗ trợ màn hình có độ phân giải lớn hơn, hướng đến các thế
hệ smartphone màn hình lớn
Android 2.0/2.1 Eclair: phiên bản chính 2.0 ra mắt vào tháng 11 năm 2009,
triển khai để hỗ trợ tốt hơn cho điện thoại di động Sau đó, phiên bản 2.1 với một vàitính năng nhỏ được nâng cấp xuất hiện vào tháng 1 năm 2010 Phiên bản này nổi bậtvới các tính năng mới cho người dùng và các nhà phát triển, cũng như nâng cấp giaodiện người dùng đồng thời hỗ trợ HTML5 và Exchange ActiveSync 2.5
Android 2.2 Froyo: Ra mắt ngày 20-5-2010, từ phiên bản 2.0 trở đi, Android
dần hoàn thiện hơn Phiên bản 2.2 (Froyo) mang Adobe Flash đến Android, kéo theohàng loạt ứng dụng và game trên nền Flash Người dùng cũng có thể xem video clipnền Flash như YouTube và "ra lệnh" thực hiện cuộc gọi qua Bluetooth
Một chức năng mới trong Froyo được nhóm người dùng lưu động yêu thích
là USB Tethering và Wi-Fi Hotspot, biến chiếc smartphone Android thành thiết bị phátsóng Wi-Fi từ kết nối 3G Tính năng này được sử dụng rất phổ biến đến ngày nay
Trang 23Lần đầu tiên Android cho phép cài đặt ứng dụng (app) lên thẻ nhớ SD thay vì mặc định cài ngay vào bộ nhớ trong của thiết bị Điểm "đầu tiên" nữa trong Froyo bao gồm mật khẩu đã hỗ trợ số và chữ số Thiết bị đầu tiên mang nhãn Froyo ra mắt thị trường là HTC Nexus One
Android 2.3 Gingerbread: ra ngày 06/12/2010, Gingerbread đưa vào hệ thống
một công cụ quản lý tải tập tin, cho phép theo dõi và truy xuất đến các tập tin đã tải vềmáy Hệ thống này hỗ trợ nhiều camera cho các thiết bị có camera mặt sau và trước,quản lý nguồn pin hiệu quả hơn, tiết kiệm thời lượng pin Phiên bản này khắc phục khánhiều lỗi từ Froyo, kèm theo một số điều chỉnh trong giao diện người dùng (UI)
Android 3.0/3.1 Honeycomb: Ra mắt ngày 22-2-2011.Đây không chỉ là một
phiên bản, mà có thể xem là một thế hệ Android đầu tiên dành riêng cho máy tính bảng(tablet), ra mắt cùng tablet Motorola XOOM
Mang những tính năng từ thế hệ Android 2.x, Android 3.0 cải tiến giao diện phùhợp với cách sử dụng máy tính bảng, bàn phím ảo thân thiện hơn, hỗ trợ xử lý đa tác
vụ (multi-tasking), cho phép chuyển đổi qua lại các ứng dụng đang cùng chạy Khôngchỉ có bề mặt được trau chuốt, phần lõi hệ thống có các cải tiến tương thích với phầncứng như hỗ trợ chip xử lý (CPU) đa lõi, tăng tốc phần cứng
Android 3.0 đặt nền móng quan trọng cho thế hệ Android 4.x hợp nhất, khắcphục sự phân mảng của Android (có các phiên bản riêng dành cho smartphone và
tablet)
Android 4.0: Ice Cream Sandwich :Ra mắt ngày 19-10-2011."Bánh kem
sandwich" (ICS) là thế hệ Android được mong đợi nhất đến nay, ra đời cùng dòngsmartphone "bom tấn" Samsung Galaxy Nexus, thế hệ smartphone đầu tiên trang bịICS Android 4.0 đưa chức năng truy xuất nhanh các ứng dụng thường dùng vào phầnbên dưới giao diện chủ, tùy biến widget, dễ sắp xếp và duyệt danh sách ứng dụng hơn.Các ứng dụng đã có thể truy xuất nhanh từ màn hình khóa thiết bị (Lock screen), hiệncác hãng sản xuất thiết bị chỉ mới cho phép Camera có thể chọn nhanh từ Lock screen
Android 4.1: Jelly Bean: Ra mắt 9-7-2012 Khả năng sắp xếp giao diện chủ và
widget trong Jelly Bean rất tùy biến và linh hoạt Hệ thống hỗ trợ dịch vụ ví điện tửGoogle Wallet, đặc biệt trình duyệt web mặc định trong Android được thay thế bởi đại
15 GVHD: PGS.TS TRẦN THU HÀ
Trang 24diện tên tuổi: Chrome, với khả năng đồng bộ dữ liệu theo tài khoản với bản Chrometrên máy tính.
Jelly Bean giới thiệu google now, dịch vụ trực tuyến mới hiện chỉ dành choAndroid, một phụ tá ảo đắc lực cho công việc sắp xếp lịch trình, tìm kiếm thông tin,xác định vị trí Rất đa năng và được xem như lời đáp trả của Google với "phụ tá ảo"Apple Siri trong iOS
Android 4.2: vẫn là Jelly Bean: Ra mắt tháng 11-2012, chỉ sau gần năm tháng
ra mắt Android 4.1, Google tiếp tục bồi thêm sức nặng cho Android với phiên bản 4.2
và vẫn mang tên mã Jelly Bean
Android 4.2 tiếp tục mang đến những cải tiến hấp dẫn cho ứng dụng chụp ảnh(Camera) như HDR, Photo Sphere, hiệu ứng ảnh, Google Now, đưa tính năng lướtchọn từ rất hay trong bàn phím ảo Chức năng "bom tấn" hỗ trợ nhiều tài khoản ngườidùng (multi-user profile) lần đầu tiên được áp dụng trong Android 4.2 nhưng chỉ có
người dùng máy tính bảng thừa hưởng chức năng này
Trong thời gian em thực hiện đề tài này Google đã cho ra phiên bản Android 4.3
vẫn lấy tên là Jelly Bean, nhưng vì chưa có thông tin chính thức và chưa có phản hồi
nhiều của người dùng nên em chưa cập nhật thông tin vào đây
2.1.2.6 Mobile Android và Tablet Android
Đây là các thiết bị công nghệ thông tin mà hệ điều hành của nó chính là hễ điềuhành Android
Trang 25Hình 2.6 : Hình ảnh điện thoại Android 2.2 Board Arduino Mega 2560
Giới thiệu board arduino:
Arduino là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bịphần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểm nổi bật củaArduino là môi trường phát triển ứng dụng cực kì dễ sử dụng, với một ngôn ngữ lậptrình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lậptrình Người dùng đã có thể sở hữu một bo Arduino có 20 ngõ I/O có thể tương tác vàđiều khiển chừng ấy thiết bị
Khả năng của bo mạch Arduino
Bo mạch Arduino sử dụng dòng vi xử lý 8-bit mega AVR của Atmel với hai chipphổ biến nhất là Atmega 328 và Atmeaga 2560 Các dòng vi xử lý này cho phép lậptrình các ứng dụng điều khiển phức tạp do được trang bị cấu hình mạnh với các loại bộnhớ ROM, RAM và Flash, các ngõ ra digital I/O trong đó có nhiều ngõ có khả năngxuất tín hiệu PWM, các ngõ đọc tín hiệu analog và các chuẩn giao tiếp đa dạng nhưUART, SPI, TWI (I2C)
Khả năng xử lý
Xung nhịp: 16MHz
EEPROM: 1KB (Atmega 328) và 4KB (Atmega 2560)
SRAM: 2KB (Atmega 328) và 8KB (Atmega 2560)
Flash: 32KB (Atmega 328) và 256KB (Atmega 2560)
Đọc tín hiệu cảm biến ngõ vào
Digital
Các bo mạch Arduino đều có các cổng digital có thể cấu hình làm ngõ vào hoặcngõ ra bằng phần mềm Do đó người dùng có thể linh hoạt quyết định số lượng ngõvào và ngõ ra Tổng số lượng cổng digital trên các mạch dùng Atmega 328 là 14, vàtrên Atmega 2560 là 54
17 GVHD: PGS.TS TRẦN THU HÀ
Trang 26 Analog
Các bo mạch Arduino đều có trang bị các ngõ vào analog với độ phân giải 10-bit(1024 phân mức, ví dụ với điện áp chuẩn là 5V thì độ phân giải khoảng 0.5mV) Sốlượng cổng vào analog là 6 đối với Atmega 328, và 16 đối với Atmega 2560 Với tínhnăng đọc analog, người dùng có thể đọc nhiều loại cảm biến như nhiệt độ, áp suất, độ
PWM output
Trong số các cổng digital, người dùng có thể chọn một số cổng dùng để xuất tínhiệu điều chế xung PWM Độ phân giải của các tín hiệu PWM này là 8 bit Số lượngcổng PWM đối với các bo dùng Atmega 328 là 6, và đối với các bo dùng Atmega 2560
là 14 PWM có nhiều ứng dụng trong viễn thông, xử lý âm thanh hoặc điều khiển động
cơ mà phổ biến nhất là động cơ servos trong các máy bay mô hình
Chuẩn giao tiếp
Serial
Đây là chuẩn giao tiếp nối tiếp được dùng rất phổ biến trên các bo mạch Arduino.Mỗi bo có trang bị một số cổng Serial cứng (việc giao tiếp do phần cứng trong chipthực hiện) Bên cạnh đó, tất cả các cổng digital còn lại đều có thể thực hiện giao tiếpnối tiếp bằng phần mềm (có thư viện chuẩn, người dùng không cần phải viết code).Mức tín hiệu của các cổng này là TTL 5V Lưu ý cổng nối tiếp RS-232 trên các thiết bịhoặc PC có mức tín hiệu là UART 12V Để giao tiếp được giữa hai mức tín hiệu, cầnphải có bộ chuyển mức, ví dụ như chip MAX232 Số lượng cổng Serial cứng củaAtmega 328 là 1 và của Atmega 2560 là 4 Với tính năng giao tiếp nối tiếp, các boArduino có thể giao tiếp được với rất nhiều thiết bị như PC, touchscreen, các gameconsole…
Trang 27 USB
Các bo Arduino tiêu chuẩn đều có trang bị một cổng USB để thực hiện kết nốivới máy tính dùng cho việc tải chương trình Tuy nhiên các chip AVR không có cổngUSB, do đó các bo Ardunino phải trang bị thêm phần chuyển đổi từ USB thành tínhiệu UART Do đó máy tính nhận diện cổng USB này là cổng COM chứ không phải làcổng USB tiêu chuẩn
Môi trường lập trình mạch Arduino
Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thông dụng mang lại nhiềulợi thế cho Arduino, tuy nhiên sức mạnh thực sự của Arduino nằm ở phần mềm Môitrường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wiring dễ hiểu và dựa trênnền tảng C/C++ rất quen thuộc với người làm kỹ thuật Và quan trọng là số lượng thưviện code được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn
Hình 2.7 : Giao diện IDE của Arduino
19 GVHD: PGS.TS TRẦN THU HÀ
Trang 28Môi trường lập trình Arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiệnnay là Windows, Macintosh OSX và Linux Do có tính chất nguồn mở nên môi trườnglập trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinhnghiệm.
Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++ Và do ngônngữ lập trình này dựa trên nền tảng ngôn ngữ C của AVR nên người dùng hoàn toàn cóthể nhúng thêm code viết bằng AVR C vào chương trình nếu muốn
Board Arduino Mega 2560
Arduino Mega 2560 được điều khiển bởi vi điều khiển Atmega 2560 Nó có 54chân đầu vào/ đầu ra số, 16 đầu vào tương tự, 4 UARTs (cổng nối tiếp phần cứng), mộttinh thể dao động 16 MHz, 1 cổng USB, một jack nguồn, ICSP và một nút Reset Nóchứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển, chỉ cần kết nối nó với mộtmáy tính bằng cáp USB hoặc sử dụng nó với một bộ chuyển đổi AC thành DC hay pin
để bắt đầu
Board Arduino Mega 2560 như hình 2.8
Hình 2.8 : Board Arduino Mega 2560 (mặt trước và sau)
Sơ đồ chi tiết Board Arduino Mega 2560 (Hình 2.9)
Trang 29Hình 2.9: Board Arduino Mega 2560
Sơ đồ chân chip ATMEGA 2560
Hình 2.10: Sơ đồ chân của ATMEGA 2560.
Khả năng xử lý
Xung nhịp: 16MHz
21 GVHD: PGS.TS TRẦN THU HÀ
Trang 30EEPROM: 4KB (Atmega 2560).
Flash: 256KB (Atmega 2560)
Số chân điều xung PWM của board Arduino Mega lên đến 52 chân (từ chân 2 – 53)
2.3 Giao tiếp Bluetooth
2.3.1 Giới thiệu về module HC-05
Module Bluetooth HC-05 được thiết kế để chuyển đổi giao tiếp nối tiếp không đồng bộ
và thành giao tiếp không dây Bluetooth và ngược lại Module bluetooth HC – 05 rachân hoàn chỉnh giúp dễ dàng kết nối để thực hiện các thí nghiệm, module được thết kế
để hoạt động từ mức điện áp 3v3 đến 5v dc Khi kết nối máy tính, HC – 05 sẽ nhận nhưmột cổng COM ảo ở chế độ truyền Haft Duplex tức trong một thời điểm chỉ có thểtruyền hoặc nhận tín hiệu
Module có 2 chế độ làm việc (có thể lựa chọn chế độ làm việc bằng cách thay đổi
trạng thái chân 34 KEY):
Tự động kết nối
Đá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
Module HC05 có thể nhận 1 trong 3 chức năng: Master, Slave, Loopback (có thể lựa chọn các chức năng bằng lệnh AT). Giao tiếp với module bằng giao tiếp nối tiếp
không đồng bộ qua 2 đường RX và TX, vì vậy chúng ta có thể sử dụng PC với chuẩn
RS232 hoặc các dòng vi điều khiển để giao tiếp.Bằng cách thay đổi trạng thái chân 34
(KEY), chúng ta có thể cấu hình chế độ hoạt động cho module Để module làm việc ở
chế độ kết nối tự động : 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’ (kết nối xuống đất) và cấp nguồn cho module sau đó chuyển KEY = ‘1’ (kết nối lên VCC) và lúc này các chúng
ta có thể sử dụng các lệnh AT để giao tiếp
Trang 31Hình 2.11: Module HC - 05
2.3.2 Đặc điểm kỹ thuật
Chuẩn Bluetooth : V2.0+EDR
Điện áp hoạt động : 3.3-5VDC, 30mA
Kết nối truyền thông
Đá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 để giaotiếp và cài đặt module
2.3.3 Đặc điểm phần cứng
Hình 2.12: Phần cứng HC -05.
23 GVHD: PGS.TS TRẦN THU HÀ
Trang 33①.Loại thiết bị: 0
②.Mã dò xét: 0x009e8b33
③.Chế độ làm việc Module : Slave Mode
④.Chế độ kết nối: Kết nối với các thiết bị Bluetooth định tham số
⑤.Thông số:Tốc độ Baud: 38400 bits/s; Stop bit: 1 bit; Parity bit: None
⑥.Passkey: “1234”
⑦ Tên thiết bị: “H-C-2010-06-01”
Nhận địa chỉ module Bluetooth
AT+ADDR? ADDR: <Param>
OK Param: Địa chi Bluetooth
Bảng 2.5: Tập lệnh nhận địa chỉ module Bluetooth
Địa chỉ Bluetooth sẽ hiển thị như thế này: NAP : UAP : LAP
Đặt / hỏi tên của thiết bị
Bảng 2.6: Tập lệnh đặt / hỏi tên của thiết bị
Nhận tên thiết bị Bluetooth điều khiển từ xa
Bảng 2.7: Tập lệnh nhận tên thiết bị Bluetooth điều khiển từ xa
Đặt / hỏi vai trò mô-đun
25 GVHD: PGS.TS TRẦN THU HÀ
Trang 34Bảng 2.8: Tập lệnh Đặt / hỏi vai trò mô-đun
Giới thiệu vai trò :
Slave (vai trò phụ thuộc) kết nối thụ động ;
Slave - Vòng kết nối thụ động , tiếp nhận các dữ liệu thiết bị chủ Bluetooth từ xavàgửi lại cho các thiết bị tổng thể, Chuyên nghiệp (vai trò master ) dò xét thiết bịgần SPP Bluetooth phụ thuộc, xây dựng kết nối với nó một cách tích cực và xây dựngtruyền dữ liệu trong suốt giữa thiết bị master và thiết bị Slave
Đặt / hỏi loại thiết bị.
Để tìm hiểu các thiết bị Bluetooth tùy chỉnh từ khắp nơi trên các thiết bị Bluetooth mộtcách nhanh chóng và có hiệu quả , người dùng có thể thiết lập các mô-đun được phitiêu chuẩn loại thiết bị Bluetooth , chẳng hạn như 0x1f1f ( Hexa decimal )
Mặc định: 0Các thông tin được cung cấptại Phụ lục 1 ( loại thiết bịGiới thiệu)
Bảng 2.9: Tập lệnh Đặt / hỏi loại thiết bị.
Đặt / hỏi - Yêu cầu mã truy cập.