LỜI MỞ ĐẦUNgày nay, trong thời đại khoa học công nghệ đang phát triển mạnh mẽ, việcứng dụng các thiết bị điện tử vào đời sống càng trở nên phổ biến hơn, từnhững ứng dụng cá nhân như đồng
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN HỌC
GV hướng dẫn: ThS Lê Thị Hồng Vân
Trang 2MỤC LỤC
LỜI MỞ ĐẦU 3
CHƯƠNG I TỔNG QUAN ĐỀ TÀI 4
1.1 Đặt vấn đề 4
1.2 Tình hình nghiên cứu hiện nay 4
1.2.1 Tình hình nghiên cứu quốc tế 4
1.2.2 Tình hình nghiên cứu tại Việt Nam 5
1.3 Ứng dụng của hệ điều hành nhúng thời gian thực 6
1.3.1 Hệ điều hành nhúng thời gian thực (RTOS) 6
1.3.2 Hệ điều hành FreeRTOS 7
1.3 Xây dựng bài toán 8
1.3.1 Yêu cầu chung 8
1.3.2 Chức năng của hệ thống 8
1.3.3 Phương án thực hiện 8
CHƯƠNG II PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 9
2.1 Thiết kế phần cứng 9
2.1.1 Arduino UNO R3 9
2.1.2 Module động cơ DC L298N 12
2.1.3 Module bluetooth HC-05 15
2.2 Thiết kế phần mềm 16
2.2.1 Biểu đồ use case tổng quát 16
2.2.2 Biểu đồ use case chi tiết 16
2.2.3 Đặc tả use case 17
2.2.4 Phân tích use case 18
2.2.5 Sơ đồ khối 19
2.2.6 Lưu đồ thuật toán 20
2.2.7 Sơ đồ nguyên lý 22
2.2.8 Sơ đồ lắp đặt 22
2.3 Thiết kế phần mềm điều khiển 23
Trang 32.3.1 Giới thiệu về MIT App Inventor 23
2.3.2 Lưu đồ thuật toán 24
2.4 Ứng dụng hệ điều hành FreeRTOS 24
2.4.1 Tác vụ 24
2.4.2 Bộ định thời (Timer) 25
2.4.3 Sơ đồ Gantt 25
CHƯƠNG III XÂY DỰNG HỆ THỐNG 28
3.1 App điều khiển 28
3.2 Khối nguồn 29
3.3 Khối xử lý 29
3.4 Khối Driver động cơ 30
3.5 Mô hình hoàn chỉnh 30
PHỤ LỤC 31
KẾT LUẬN 41
TÀI LIỆU THAM KHẢO 42
Trang 4DANH MỤC HÌ
Hình 2.1.1 Arduino UNO R3 9
YHình 2.1.2a Module động cơ L298N 12
Hình 2.1.2b Nguyên lý hoạt động L298N 14
YHình 2.1.3 Module Bluetooth HC-05 15Y Hình 2.2.1 Biểu đồ use case tổng quát 16
Hình 2.2.2 Biểu đồ use case chi tiết “Di chuyển” 16
Hình 2.2.4 Phân tích use case 18
Hình 2.2.5 Sơ đồ khối 19
Hình 2.2.6a Lưu đồ thuật toán điều khiển bằng nút bấm 20
Hình 2.2.6b Lưu đồ thuật toán điều khiển bằng giọng nói 21
Hình 2.2.7 Sơ đồ nguyên lý trên Proteus 22
Hình 2.2.8 S đồồ lắắp đ t Fritzing ơ ặ 2 Hình 2.3.1 Giao diện App MIT Inventor 23
Hình 2.3.2 Lưu đồ thuật toán phần mềm điều khiển 24
Hình 2.4.3a Sơ đồ Gantt CheckTask không tìm thấy tín hiệu 26
Hình 2.4.3b S đồồ Gant CheckTask tm thấắy tn hi u ơ ệ 2 Hình 3.1 App điều khiển 27
Hình 3.2 Khối nguồn 28
Hình 3.3 Khối xử lý 29
Hình 3.4 Khối Driver động cơ 29
Hình 3.5 Mô hình khi hoàn thiện 30
Trang 5DANH MỤC BẢ
Bảng 2.1.1 Thông số kỹ thuật của Arduino UNO R3 11Bảng 2.1.2 Thông số kỹ thuật của module động cơ L298N 13 YBảng 2.2.3a Đặc tả use case “Kết nối Bluetooth” 17Bảng 2.2.3b Đặc tả use case “Điều khiển xe” 18
Trang 6LỜI MỞ ĐẦU
Ngày nay, trong thời đại khoa học công nghệ đang phát triển mạnh mẽ, việcứng dụng các thiết bị điện tử vào đời sống càng trở nên phổ biến hơn, từnhững ứng dụng cá nhân như đồng hồ kỹ thuật số, máy chơi nhạc MP3,… đếnnhững ứng dụng xã hội như đèn giao thông, bộ kiểm soát trong nhà máy,….Trong đó, phải kể đến robot điều khiển từ xa
Robot điều khiển từ xa là một mảng quan trọng trong lĩnh vực robotic với rấtnhiều các công trình nghiên cứu trên thế giới Việc điều khiển từ xa thâmnhập vào tất cả lĩnh vực của cuộc sống và góp phần to lớn trong việc điềukhiển các thiết bị từ xa hay những thiết bị mà con người không thể trực tiếpchạm vào để điều khiển
Chính vì tầm quan trọng của lĩnh vực điều khiển từ xa, nhóm chúng em đã lựa
chọn đề tài: “Thiết kế xe điều khiển bằng Bluetooth và giọng nói trên điện thoại sử dụng Arduino và hệ điều hành FreeRTOS”.
Báo cáo gồm 3 chương:
Chương I Tổng quan đề tài.
Chương này nêu vấn đề, đưa ra khảo sát về tình hình nghiên cứu tạiViệt Nam và quốc tế, sau đó đưa ra yêu cầu với hệ thống mới
Chương II Phân tích và thiết kế hệ thống.
Chương này thực hiện thiết kế phần cứng, phần mềm cũng như phầnmềm điều khiển cho hệ thống
Chương III Xây dựng hệ thống.
Chương này xây dựng mô hình hệ thống
Chúng em xin gửi lời cảm ơn đến cô Lê Thị Hồng Vân đã nhiệt tình giúp đỡchúng em trong suốt thời gian môn học cũng như trong quá trình thực hiện đềtài Trong quá trình thực hiện báo cáo của mình, chúng em đã cố gắng hết sức
để hoàn thiện một cách tốt nhất Nhưng với kiến thức và sự hiểu biết có hạnnên sẽ không thể tránh khỏi những thiết sót, rất mong nhận được lời góp ý từthầy để đề tài của chúng em hoàn thiện hơn
Trang 7CHƯƠNG I TỔNG QUAN ĐỀ TÀI 1.1 Đặt vấn đề
Trong thời đại công nghiệp hóa hiện đại hóa đất nước, việc chú trọng pháttriển các ngành công nghiệp cũng như các ngành dịch vụ rất được coi trọng.Như một nhu cầu thiết yếu, việc phát triển các hệ thống nhúng để đưa vào hỗtrợ trong công nghiệp, dịch vụ, giúp điều khiển các thiết bị từ xa mà khôngcần trực tiếp chạm vào để điều khiển là vô cùng cần thiết
Điều khiển từ xa là điều khiển mô hình ở một khoảng cách nào đó mà conngười không nhất thiết phải trực tiếp đến nơi để điều khiển hệ thống Khoảngcách này tùy thuộc vào độ phức tạp của từng hệ thống Chẳng hạn như để điềukhiển từ xa một du thuyền, ta cần có hệ thống phát và thu mạnh Ngược lại,
để điều khiển một trò chơi điện tử từ xa ta lại chỉ cần một hệ thống phát vàthu yếu hơn
Cùng với đó, điện thoại thông minh đang ngày càng phổ biến Nhu cầu điềukhiển từ xa bằng điện thoại ngày càng tăng cao Chính vì vậy, chúng em đã
lựa chọn đề tài “Thiết kế xe điều khiển bằng Bluetooth và giọng nói trên điện thoại”, với hệ điều hành sử dụng là FreeRTOS Theo đó, dự án gồm các
phần sau:
Thực hiện nghiên cứu các cách giao tiếp, kết nối giữa vi điều khiểnArduino Uno R3 với module Bluetooth và module L298N
Thiết kế điều khiển xe bằng giọng nói thông qua module Bluetooth
Xây dựng chương trình điều khiển trên điện thoại Android
Xây dựng chương trình lập trình với hệ điều hành FreeRTOS
1.2 Tình hình nghiên cứu hiện nay
1.2.1 Tình hình nghiên cứu quốc tế
Trên thế giới, điều khiển từ xa được sử dụng rộng rãi trong ngành điện tử giadụng và giải trí Phần lớn các thiết bị điện tử như TV, đầu đĩa, máy điều hòa,quạt đều có điều khiển từ xa đi kèm Gần đây, các tay cầm chơi điện tử cũngđược ứng dụng công nghệ không dây Chúng dùng sóng vô tuyến thay vì hồngngoại, vì việc luôn phải chĩa chúng vào thiết bị chính trong khi chơi là điềurất không thực tế Ngoài việc phải thay pin thường xuyên và đôi khi gây rahiện tượng trễ tín hiệu, tay cầm không dây đem lại một số ưu điểm và sự tiệndụng khác Sản phẩm của Sony PlayStation 3 Nintendo, Wii dùng sóngBluetooth, trong khi MicrosoftXbox 360 và Xbox One dùng giao thức truyền
Trang 8Điều khiển từ xa nhà để xe và cổng rất phổ biến, đặc biệt là ở một số quốc gianhư Mỹ, Úc và Anh, nơi cửa nhà để xe, cổng và rào chắn được sử dụng rộngrãi Một điều khiển từ xa như vậy rất đơn giản bởi thiết kế, thường chỉ có mộtnút và một số có nhiều nút hơn để điều khiển một số cổng từ một điều khiển.Điều khiển từ xa như vậy có thể được chia thành hai loại theo loại bộ mã hóađược sử dụng: mã cố định và mã cuộn Nếu bạn tìm thấy công tắc nhúngtrong điều khiển từ xa, nó có khả năng là mã cố định, một công nghệ cũ hơnđược sử dụng rộng rãi Tuy nhiên, mã cố định đã bị chỉ trích vì bảo mật(thiếu), do đó mã cuộn ngày càng được sử dụng rộng rãi hơn trong các cài đặtsau này.
Trong quân sự đây cũng là một thiết bị rất quan trọng thường dùng để vô hiệuhóa hệ thống điện tử của đối phương Điều khiển từ xa còn được dùng để điềukhiển các phương tiện quân sự (máy bay, xe tăng, tàu ngầm, … ) không ngườilái hoặc các thiết bị nổ
Ngoài ra trong công nghệ điều khiển từ xa còn được ứng dụng cho không gian
vũ trụ Các nước công nghệ tiên tiến như Mỹ, Liên Xô, Trung Quốc dùng nócho mục đích điều khiển các tàu vũ trụ từ xa
1.2.2 Tình hình nghiên cứu tại Việt Nam
Chiều 4/12, tại Sở Khoa học và Công nghệ Hải Phòng diễn ra hội nghị đánhgiá kết quả thực hiện nhiệm vụ khoa học và công nghệ không sử dụng ngânsách Nhà nước “Nghiên cứu ứng dụng thiết bị vận hành cống điều khiển từ xa
sử dụng năng lượng mặt trời cho cống Bãi Vẹt (1 cửa) và cống Đông Cung (2cửa)” do thạc sĩ Phạm Thị Ngoan, Trưởng phòng Kế hoạch - Kỹ thuật, Công
ty TNHH MTV Khai thác công trình thủy lợi Đa Độ làm chủ nhiệm
Hiện công ty TNHH MTV Khai thác công trình thủy lợi Đa Độ quản lý 212cống điều tiết nước trên toàn hệ thống phục vụ tưới - tiêu nước cho trên32.000ha đất sản xuất nông nghiệp, phòng chống lụt bão cho lưu vực, ngănxâm nhập mặn, cấp nước phục vụ sinh hoạt - sản xuất công nghiệp và cấpnước phục vụ chăn nuôi, nuôi trồng thủy, hải sản… Trong đó, 140/140 cốngdưới bờ Đa Độ được vận hành thủ công, chỉ có 20/72 cống dưới đê vận hàngbằng điện lưới Tuy nhiên, việc vận hành cống thủ công tốn nhiều công sức,không đảm bảo trữ lượng và chất lượng nước trong hệ thống cũng như khôngđảm bảo thời gian tiêu thoát nước phòng chống thiên tai, bão lũ
Kết quả ứng dụng thiết bị thể hiện các ưu điểm: Sử dụng 100% năng lượng táitạo; vận hành tự động hóa bằng hệ thống điều khiển từ xa, cập nhật số liệu24/7; dễ dàng chuyển đổi vận hành thủ công; chủ động, phù hợp với các điềukiện thời tiết không thuận lợi, không phụ thuộc vào nguồn điện lưới, an toàn
Trang 9điện và phòng chống cháy nổ; giải phóng sức lao động của công nhân, nângcao hiệu quả, năng suất lao động; giám sát vận hành theo thời gian thực; giảmchi phí quản lý, vận hành từ 10- 20%; không tốn diện tích mặt đất.
1.3 Ứng dụng của hệ điều hành nhúng thời gian thực
1.3.1 Hệ điều hành nhúng thời gian thực (RTOS)
Thuật ngữ về hệ điều hành của những thiết bị đơn giản trước đây là "hệ điềuhành nhúng - embedded operating system" sẽ được thay thế bởi "hệ điều hànhthời gian thực - real-time operating system" (RTOS) vốn được dành cho thiết
bị thuộc kỷ nguyên IoT Tuy nhiên, trên thực tế, một hệ điều hành dành choIoT sẽ khó sử dụng cho nhiều mục đích hoặc ứng dụng hàng hoạt trên mọi sảnphẩm, bởi vậy cần có nhiều hệ điều hành khác nhau trong lĩnh vực IoT để đápứng nhu cầu thực tế
Real-Time Operating Systems (RTOS - Hê ž điều hành thời gian thực), là phầnmềm điều khiển chuyên dụng thường được dùng trong những ứng dụng điê žntoán nhúng có tài nguyên bô ž nhớ hạn chế và yêu cầu ngă žt nghèo về thời gianđáp ứng tức thời, tính sŸn sàng cao và khả năng tự kiểm soát mô žt cách chínhxác
Trên thực tế, RTOS dành cho thiết bị IoT đòi hỏi khả năng xử lý dữ liệu có độtrễ thấp nhất có thể Những lợi ích mà RTOS mang lại bao gồm khả năng đanhiệm, ưu tiên các nhiệm vụ và quản lý việc chia sẻ tài nguyên giữa các tác
Sau đây là tổng quát về những hệ điều hành có thể đáp ứng yêu cầu và mangđến sức mạnh mới nhằm thúc đẩy ngành công nghiệp IoT: RIOT OS;VxWorks; Google Brillo; Hệ điều hành nhúng của Apple; Nucleus RTOS.Ngoài danh sách này có thể có thêm rất nhiều lựa chọn khác, nhưng những cáitên ở đây có thể đại diện cho ngành IoT bởi khả năng phổ biến ứng dụngthương mại cũng như sự phát triển của chúng trong giới mã nguồn mở Và
Trang 10vận hành, từ vệ tinh cho đến tủ lạnh, và giúp những thiết bị thông minh kếtnối với con người.
1.3.2 Hệ điều hành FreeRTOS
FreeRTOS là hệ điều hành nguồn mở thời gian thực dành cho các bộ vi điềukhiển, cho phép dễ dàng lập trình, triển khai, bảo mật, kết nối và quản lý cácthiết bị ngoại biên nhỏ, công suất thấp Được phân phối miễn phí theo giấyphép nguồn mở MIT, FreeRTOS bao gồm một nhân và một bộ thư viện phầnmềm đang phát triển phù hợp để sử dụng trong nhiều lĩnh vực và ứng dụngcông nghiệp Việc sử dụng bao gồm cả kết nối bảo mật thiết bị nhỏ, công suấtthấp của bạn với các dịch vụ Đám mây AWS như AWS IoT Core hoặc với cácthiết bị biên mạnh mẽ hơn chạy AWS IoT Greengrass FreeRTOS được xâydựng chú trọng vào độ tin cậy và khả năng sử dụng dễ dàng, đồng thời camkết các bản phát hành hỗ trợ lâu dài
Bộ vi điều khiển chứa một bộ xử lý đơn giản, hạn chế về tài nguyên, có trongnhiều thiết bị, bao gồm đồ gia dụng, cảm biến, thiết bị theo dõi sức khỏe, thiết
bị tự động hóa công nghiệp và ô tô Khá nhiều trong số các thiết bị nhỏ này cóthể được lợi từ việc kết nối với đám mây hoặc kết nối cục bộ với thiết bị khác,nhưng có công suất điện toán và dung lượng bộ nhớ hạn chế, cũng nhưthường thực hiện các tác vụ chức năng đơn giản Bộ vi điều khiển thườngchạy các hệ điều hành có thể không được tích hợp sŸn tính năng kết nối vớicác mạng cục bộ hoặc đám mây, nên thường gặp khó khăn khi triển khai ứngdụng IoT FreeRTOS giúp giải quyết vấn đề này bằng cách cung cấp nhân đểchạy thiết bị công suất thấp và các thư viện phần mềm cho phép dễ dàng kếtnối bảo mật với đám mây hoặc các thiết bị biên khác để bạn thu thập dữ liệu
từ các cấu phần này cho các ứng dụng IoT và thực hiện hành động
FreeRTOS cung cấp mọi thứ bạn cần để dễ dàng lập trình các thiết bị chạy bộ
vi điều khiển đã kết nối và thu thập dữ liệu từ những thiết bị này cho các ứngdụng IoT Để bắt đầu, bạn có thể chọn một bộ vi điều khiển đáp ứng điều kiệncủa FreeRTOS từ AWS Partner Device Catalog Sau đó, bạn có thể sử dụngBảng điều khiển AWS hoặc GitHub để chọn và tải xuống các thư việnFreeRTOS phù hợp hoặc tích hợp tham chiếu IoT được xác thực trước Bạn có thể kết nối bảo mật thiết bị FreeRTOS với các dịch vụ đám mây nhưAWS IoT Core, với một thiết bị ngoại biên cục bộ hoặc thiết bị di động bằngcông nghệ Bluetooth tiết kiệm năng lượng và cập nhật thiết bị từ xa bằng tính
Trang 11năng cập nhật OTA với AWS IoT Device Management Việc tích hợp vớiAWS IoT Device Defender giúp bạn dễ dàng báo cáo các số liệu về thiết bị đểphát hiện sự bất thường khi các số liệu này khác đi so với kỳ vọng.
1.3 Xây dựng bài toán
1.3.1 Yêu cầu chung
Tính thực thi cao, có khả năng phát triển
Đảm bảo về chất lượng, độ chính xác cao, làm việc lâu dài, bền bỉ
Tiết kiệm chi phí, linh kiện dễ kiếm dễ sử dụng và dễ dàng thay thếkhi xảy ra sự cố
Giảm thiểu chi phí, thời gian vận hành, bảo dưỡng và sửa chữa
1.3.2 Chức năng của hệ thống
Xe có khả năng nhận tín hiệu Bluetooth từ phần mềm
Xe có khả năng di chuyển tiến, lùi, rẽ trái, rẽ phải, dừng theo tín hiệutương ứng
1.3.3 Phương án thực hiện
Tìm hiểu về các mảng lý thuyết liên quan
Viết và thực hiện các chương trình nhỏ, các bài ví dụ trên vi điềukhiển Arduino Uno R3 để làm quen với kiến trúc tập lệnh của vi điềukhiển
Viết các chương trình thực hiện các chức năng bằng Kit Arduino
Viết các chương trình với hệ điều hành FreeRTOS
Viết ứng dụng chạy trên hệ điều hành android thực hiện điều khiển.Ứng dụng sẽ được viết trên MIT App Inventor - một môi trường tíchhợp ứng dụng web được cung cấp bởi Google
Trang 12CHƯƠNG II PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.1 Thiết kế phần cứng
2.1.1 Arduino UNO R3
Hình 2.1.1 Arduino UNO R3
Arduino UNO R3 là một bảng mạch vi điều khiển nguồn dựa trên vi điềukhiển Microchip ATmega328 được phát triển bởi Arduino.cc Bảng mạchArduino được trang bị các bộ phận chân đầu vào, đầu ra Digital và Analog cóthể giao tiếp với các bảng mạch mở rộng khác nhau Do đó, ta có thể sử dụngchúng để dễ dàng xây dựng một dự án nhanh nhất và có tính ứng dụng thực tếcao
Arduino Uno có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có
2 mức điện áp là 0V và 5V với dòng điện vào/ra tối đa trên mỗi chân là40mA Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong viđiều khiển ATmega328 (mặc định các điện trở này không được kết nối).Một số chân Digital có các chức năng đặc biệt sau:
2 chân Serial: 0 (RX), 1 (TX): dùng để gửi (transmit - TX) và nhận(receive - RX) dữ liệu TTL Serial Arduino UNO có thể giao tiếp vớicác thiết bị khác thông qua 2 chân này Kết nối bluetooth thường thấynói nôm na chính là kết nối Serial không dây Nếu không cần giao tiếpSerial, bạn không nên sử dụng 2 chân này nếu không cần thiết
Trang 13 Chân PWM (~): 3, 5, 6, 9, 10, 11: cho phép xuất ra xung PWM với độphân giải 8 bit ( giá trị từ 0 → 2^8 - 1 tương ứng với 0V→ 5V) bằnghàm analogWrite() Nói một cách đơn giản, bạn có thể điều chỉnh đượcđiện áp ra ở chân áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cốđịnh ở mức 0V và 5V như những chân khác.
Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoàicác chức năng thông thường, 4 chân này còn dùng để truyền phát dữliệu bằng giao thức SPI với các thiết bị khác
LED 13: trên Arduino Uno có 1 đèn led màu cam (kí hiệu chữ L) Khibấm nút Reset, đèn này sẽ nhấp nháy để báo hiệu Nó được nối vớichân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng.Ngoài các chân Digital, Arduino Uno còn có 6 chân Analog (A0 → A5) cungcấp độ phân giải tín hiệu 10 bit (0 →2^10-1) để đọc giá trị điện áp trongkhoảng từ 0V → 5V Với chân AREF trên board, ta có thể đưa vào điện áptham chiếu khi sử dụng các chân Analog Tức là nếu cấp điện áp 2.5V vàochân này thì có thể dùng các chân analog để đo điện áp trong khoảng từ 0V →2.5V với độ phân giải vẫn là 10 bit Đặc biệt, Arduino Uno có 2 chân A4(SDA), A5 (SCL) hỗ trợ giao tiếp 12C/TWI với các thiết bị khác
Trang 14Thông số kỹ thuật
Vi điều khiển ATMega328 họ 8 bit
Điện áp hoạt động 5V (DC) (chỉ được cấp qua cổng USB)
Tần số hoạt động 16MHz
Điện áp ổn định 7 – 12V (DC)
Điện áp giới hạn 6 – 20V (DC)
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10 bit)
Bộ nhớ Flash 32 KB (ATMega328) với 0.5KB dùng
Trang 152.1.2 Module động cơ DC L298N
Hình 2.1.2a Module động cơ L298N
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 độ
DC L298N gồm các chân:
12V power, 5V power: đây là 2 chân cấp nguồn trực tiếp đến động
cơ Ta có thể cấp nguồn từ 9V → 12V ở 12V Chân 5V cấp nguồn cho mạch logic bên trong L298N
Power GND: chân nối đất
ENA : kích hoạt tín hiệu PWM cho động cơ A
ENB: kích hoạt tín hiệu PWM cho động cơ B
IN1 & IN2: các chân đầu vào điều khiển hướng động cơ A
IN3 & IN4: các chân đầu vào điều khiển hướng động cơ B
OUT1 & OUT2: chân đầu ra cho động cơ A
OUT3 & OUT4: chân đầu ra cho động cơ B
Trang 16Thông số kỹ thuật
Điện áp của tín hiệu điều khiển +5V → +7VDòng của tín hiệu điều khiển 0 ~ 36 Ma
Bảng 2.1.2 Thông số kỹ thuật của module động cơ L298N
Trang 17 OUT1 và OUT2 là 2 chân đầu ra động cơ OUT1 > OUT2 thì động
cơ chạy thuận, ngược lại động cơ sẽ chạy nghịch
Động cơ chỉ hoạt động khi IN1 và IN2 trái mức logic và ENA ở mứclogic cao
Trang 18HC-05 có thể hoạt động ở 2 chế độ đó là MASTER và SLAVE
Ở chế độ MASTER: module sẽ tự động dò tìm thiết bị bluetooth khác và tiến hành pair chủ động mà không cần thiết lập gì từ máy tính hoặc smartphone
Ở chế độ SLAVE: chúng ta cần thiết lập kết nối từ smartphone, laptop, usb bluetooth để dò tìm module sau đó sẽ pair với mã PIN là
1234 Sau khi pair thành công, ta sẽ có 1 cổng serial hoạt động ở baud rate 9600
Chức năng các chân của HC-05:
Chân STATE: báo trạng thái kết nối của bluetooth
Chân TxD & RxD: truyền & nhận dữ liệu trong giao tiếp UART
Chân GND: chân nối đất
Chân VCC: cấp nguồn điện từ bên ngoài
Trang 19 Chân EN: 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 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ế độ mặc định của thiết bị là chế độ dữ liệu
Trang 202.2 Thiết kế phần mềm
2.2.1 Biểu đồ use case tổng quát
Hình 2.2.1 Biểu đồ use case tổng quát
2.2.2 Biểu đồ use case chi tiết
Hình 2.2.2 Biểu đồ use case chi tiết “Di chuyển”
Trang 21Trường hợp khác 2.2 Nếu không có kết nối Bluetooth thì xe sẽ ở chế
Trang 22Tên use case Điều khiển xe
Tác nhân Người dùng
Tiền điều kiện Xe đã được khởi động và kết nối thiết bị điều khiển thông qua Bluetooth
Cách xử lý
1 Người điều khiển xe thông qua app Control Car
2 Module HC-05 nhận tín hiệu điều khiển và chuyển tín hiệu điều khiển cho arduino
3 Arduino gửi tín hiệu đến L298N điều khiển xe
di chuyển
Trường hợp khác
Đang điều khiển thì bị mất kết nối Bluetooth:
1 Xe ngừng hoạt động, quay lại chế độ khởi động
Bảng 2.2.3b Đặc tả use case “Điều khiển xe”
2.2.4 Phân tích use case
Hình 2.2.4 Phân tích use case
Trang 232.2.5 Sơ đồ khối
Hình 2.2.5 Sơ đồ khối
Chức năng các khối:
Khối nguồn: cung cấp nguồn cho động cơ và các module
Module Bluetooth: nhận tín hiệu điều khiển và chuyển cho bộ xử lý
Bộ xử lý: nhận thông tin từ module bluetooth tiến hành xử lý và gửithông tin điều khiển cho Driver động cơ
Driver động cơ: nhận tín hiệu điều khiển từ bộ xử lý và phân nhiệm vụcho động cơ
Động cơ: nhận tín hiệu từ Driver động cơ và hoạt động giúp xe chuyểnđộng
Nguyên lý hoạt động: Ban đầu module bluetooth sẽ nhận tín hiệu từ app điềukhiển sau đó giao tiếp với khối xử lý điều khiển bằng phương thức UART vàtruyền tín hiệu cho khối xử lý Khối xử lý sử dụng bo mạch Arduino Uno R3
sẽ xử lý và xuất xung tín hiệu PWM cho module driver động cơ L298N đểđiều khiển motor trái và motor phải
Trang 242.2.6 Lưu đồ thuật toán
Hình 2.2.6a Lưu đồ thuật toán điều khiển bằng nút bấm