1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Dự Án xe Điều khiển từ xa (Báo cáo môn Kiểm thử phần mềm nhúng KMA - có kèm code)

50 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 3,19 MB

Nội dung

Tổng hợp những câu hỏi cần thiết và quan trọng của môn Công nghệ phần mềm nhúng (KMA). Tài liệu này giúp các bạn sinh viên có thể vượt qua các bài kiểm tra giữa kỳ, cuối kỳ và đạt kết quả cao nhất. Xin cảm ơn các bạn đã xem và tải tài liệu.

Trang 1

HỌC VIỆN KỸ THUẬT MẬT MÃ Khoa Công nghệ thông tin

BÁO CÁO MÔN HỌC

CÔNG NGHỆ PHẦN MỀM NHÚNG

ĐỀ TÀI: XE ĐIỀU KHIỂN TỪ XA

Giảng viên hướng dẫn:

Sinh viên thực hiện: A

Trang 2

1.2Tình hình phát triển hiện nay 2

1.2.1 Xu hướng trong điều khiển xe từ xa sử dụng Arduino 2

1.2.2 Các dự án và nghiên cứu đáng chú ý 3

1.3So sánh sản phẩm hiện có trên thị trường 3

1.4Mô hình mẫu sản phẩm mong muốn 4

Trang 3

2.2.2 Sơ đồ khối và nguyên lý hoạt động 31

2.2.3 Mô phỏng sơ đồ nối dây 32

2.2.4 Hình ảnh thực tế 32

TỔNG KẾT CHƯƠNG 2 33

CHƯƠNG 3: THỰC NGHIỆM 34

3.1Yêu cầu cài đặt phần cứng và phần mềm 34

3.1.1 Yêu cầu cài đặt ứng dụng 34

3.1.2 Yêu cầu cài đặt đối với xe mô hình 34

Trang 4

Hình 2.1 Biểu đồ Use Case tổng quát 24

Hình 2.2 Biểu đồ tuần tự “Tiến lên” 25

Hình 2.3 Biểu đồ tuần tự “Lùi lại” 26

Hình 2.4 Biểu đồ tuần tự “Quay trái” 26

Hình 2.5 Biểu đồ tuần tự “Quay phải” 27

Hình 2.6 Biểu đồ tuần tự “Dừng lại” 27

Hình 2.7 Sơ đồ thuật toán tổng thể 28

Hình 2.8 Sơ đồ thuật toán “Điều khiển xe di chuyển” 29

Hình 2.9 Sơ đồ thuật toán “Dừng lại khi gặp vật cản” 30

Hình 2.10 Sơ đồ khối tổng quát 31

Hình 2.11 Sơ đồ nối dây tổng quát 32

Hình 2.12 Mô hình xe thực tế 32

Hình 3.1 Màn hình hiển thị để kết nối ứng dụng với Bluetooth module tương ứng 35

Hình 3.2 Kết nối với xe điều khiển không thành công 35

Hình 3.3 Kết nối với xe điều khiển thành công 36

Hình 3.4 Điều khiển xe di chuyển tới 36

Hình 3.5 Điều khiển xe “Quay phải” 37

Hình 3.6 Điều khiển xe “Quay trái” 37

Hình 3.7 Điều khiển xe di chuyển lùi 38

Hình 3.8 Thực nghiệm phát hiện vật cản 38

Trang 5

DANH MỤC CÁC BẢNG BIỂU

Bảng 1.1 Mô tả các thiết bị phần cứng 6

Bảng 1.2 Thông số kỹ thuật của Arduino Uno R3 7

Bảng 1.3 Các chân cảm biến siêu âm 16

Bảng 2.1 Đặc tả Use Case “Điều khiển xe” 25

Bảng 2.2 Đặc tả Use Case “Dừng lại” 25

Bảng 3.1 Bảng chuyển đổi từ khóa sang lệnh 34

Trang 6

MỞ ĐẦU

Xe điều khiển từ xa đã trở thành một ứng dụng thú vị và phổ biến trong lĩnh vực công nghệ phần mềm nhúng Không chỉ là một trò chơi thú vị, mà còn là một minh chứng sáng rõ cho sự tiến bộ của công nghệ và ứng dụng của nó trong cuộc sống hàng ngày Đề tài này đưa chúng ta vào thế giới của những chiếc xe tự động điều khiển từ xa, nơi chúng ta sẽ khám phá cách công nghệ phần mềm nhúng đang cách mạng hóa và cách chúng ta tương tác với các thiết bị

Trong thập kỷ gần đây, công nghệ phần mềm nhúng đã phát triển mạnh mẽ, mở ra nhiều cơ hội và thách thức mới trong việc thiết kế và phát triển các ứng dụng điều khiển từ xa Từ các ứng dụng đơn giản như điều khiển đèn thông qua smartphone cho đến những ứng dụng phức tạp như xe tự động không người lái, công nghệ này đã thay đổi cách chúng ta tương tác với thế giới xung quanh

Trong đề tài này, chúng ta sẽ xem xét cơ bản về công nghệ phần mềm nhúng và cách nó được áp dụng vào việc điều khiển từ xa các loại xe, bao gồm cả xe đồ chơi và xe tự động thực tế Chúng ta sẽ tìm hiểu về các thành phần quan trọng của hệ thống, từ cảm biến cho đến giao thức truyền thông và phần mềm điều khiển

Bên cạnh việc tìm hiểu về công nghệ, chúng ta cũng sẽ xem xét những ứng dụng thực tiễn của xe điều khiển từ xa, bao gồm việc sử dụng chúng trong lĩnh vực giáo dục, giải trí, quảng cáo, và thậm chí trong ngành công nghiệp Chúng ta sẽ cùng nhau thảo luận về những lợi ích và tiềm năng của công nghệ này, cũng như các thách thức mà nó đặt ra trong việc bảo mật và quản lý

Cuối cùng, thông qua việc khám phá đề tài này, chúng ta hy vọng sẽ có cái nhìn tổng quan về vai trò quan trọng của công nghệ phần mềm nhúng trong việc phát triển xe điều khiển từ xa và tạo ra những ứng dụng thú vị và hứa hẹn trong tương lai

Nội dung báo cáo được chia làm 3 phần cụ thể như sau: ✓ Chương 1: Cơ sở lý thuyết

✓ Chương 2: Phân tích thiết kế hệ thống ✓ Chương 3: Thực nghiệm

Tuy nhiên do thời gian thực hiện dự án có hạn và lượng kiến thức còn nhiều hạn chế nên đề tài của nhóm em vẫn còn rất nhiều thiếu sót, những bất cập và những vấn đề chưa thể xử lý được triệt để Nhóm em rất mong nhận được sự đóng góp của thầy và các bạn để dự án được hoàn thiện hơn

Nhóm em xin chân thành cảm ơn!

Trang 7

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu

Giới thiệu chương này nhằm mục đích đưa độc giả vào bối cảnh của đề tài “Xe Điều Khiển Từ Xa Sử Dụng Arduino” Trong chương này, chúng ta sẽ khám phá cơ sở lý thuyết và tình hình phát triển liên quan đến việc sử dụng Arduino để điều khiển xe từ xa

Xe điều khiển từ xa là một lĩnh vực đầy hứa hẹn với nhiều ứng dụng thú vị trong cuộc sống hàng ngày và công nghiệp Từ việc giải trí cho đến ứng dụng công nghiệp và khám phá môi trường, việc điều khiển xe từ xa đã trở thành một phần không thể thiếu của cuộc sống hiện đại

Chương này sẽ đi sâu vào nghiên cứu tình hình hiện tại và những tiến bộ trong lĩnh vực này, cung cấp cho chúng ta cái nhìn tổng quan về những cơ hội và thách thức của việc sử dụng Arduino để điều khiển xe từ xa Nó cũng sẽ giới thiệu về việc so sánh các sản phẩm hiện có trên thị trường và đưa ra mô hình mẫu cho sản phẩm mục tiêu mà chúng ta sẽ nghiên cứu và phát triển trong các phần tiếp theo của đề tài

1.2 Tình hình phát triển hiện nay

1.2.1 Xu hướng trong điều khiển xe từ xa sử dụng Arduino

Trong thời đại số hóa ngày nay, điều khiển xe từ xa đã trở thành một lĩnh vực phát triển đầy hứa hẹn, và Arduino đang đóng một vai trò quan trọng trong sự tiến bộ của nó Dưới đây là một số xu hướng chính liên quan đến việc điều khiển xe từ xa sử dụng Arduino:

✓ IoT và Kết nối Internet: Sự phát triển của Internet of Things (IoT) đã mở ra cánh cửa cho việc kết nối xe điều khiển từ xa với internet Điều này cho phép người dùng điều khiển xe từ xa và thu thập dữ liệu từ xa thông qua ứng dụng di động hoặc máy tính, cung cấp sự tiện lợi và khả năng giám sát từ xa

✓ Tích hợp các Cảm biến và Mô-đun: Arduino có khả năng tích hợp nhiều loại cảm biến như cảm biến khoảng cách, cảm biến ánh sáng, cảm biến nhiệt độ, và nhiều mô – đun khác Điều này làm cho xe điều khiển từ xa có thể tự động phản ứng và thích ứng với môi trường xung quanh

✓ Điều khiển từ xa thông qua ứng dụng di động: Ứng dụng di động đã trở thành một phương tiện phổ biến để điều khiển xe từ xa Arduino có khả năng kết nối với các ứng dụng di động thông qua Bluetooth hoặc Wi-Fi, cho phép người dùng dễ dàng tương tác với xe từ xa thông qua giao diện người dùng trực quan

✓ Sự an toàn và bảo mật: Với việc càng nhiều xe điều khiển từ xa được sử dụng trong các môi trường khác nhau, vấn đề an toàn và bảo mật trở nên quan trọng hơn bao giờ hết Arduino đã phát triển các biện pháp bảo mật để đảm bảo rằng chỉ người dùng được ủy quyền mới có thể truy cập và điều khiển xe

Trang 8

Những xu hướng này đang thúc đẩy sự phát triển và sáng tạo trong lĩnh vực điều khiển xe từ xa sử dụng Arduino, mở ra nhiều cơ hội và thách thức cho những người nghiên cứu và phát triển trong lĩnh vực này

1.2.2 Các dự án và nghiên cứu đáng chú ý

Lĩnh vực điều khiển xe từ xa sử dụng Arduino đã thu hút sự quan tâm của nhiều dự án và nghiên cứu đáng chú ý Dưới đây là một số ví dụ về các dự án và nghiên cứu tiêu biểu:

✓ OpenRC: OpenRC là một dự án mã nguồn mở nổi tiếng trong cộng đồng điều khiển xe từ xa Dự án này sử dụng các thành phần Arduino và phần cứng tự chế để xây dựng các mô hình xe RC (Remote Control) với tính năng mở rộng và khả năng tùy chỉnh cao

✓ Smart Car: Các nghiên cứu về ô tô tự hành và xe thông minh đã đưa Arduino vào ngành công nghiệp ô tô Arduino được sử dụng để phát triển các hệ thống kiểm soát và đánh giá trong xe thông minh để cải thiện tính an toàn và khả năng tương tác của xe với môi trường

✓ Aerial Drones: Arduino cũng đã được tích hợp vào các dự án về máy bay không người lái (drone) để cải thiện khả năng kiểm soát và thu thập dữ liệu từ xa Các drone dựa trên Arduino có khả năng tùy chỉnh mạnh mẽ và giá trị ứng dụng rộng rãi từ giám sát môi trường đến ảnh và video chất lượng cao

✓ Robotic Exploration: Arduino cung cấp một nền tảng lý tưởng cho nghiên cứu về khám phá và điều khiển robot Các dự án như robot tự hành, robot ứng dụng trong nghiên cứu khoa học, và robot khám phá môi trường đều sử dụng Arduino để điều khiển và thu thập dữ liệu từ xa

Những dự án và nghiên cứu này không chỉ thể hiện sự đa dạng của ứng dụng Arduino trong việc điều khiển từ xa mà còn tạo ra tiềm năng cho sự phát triển và ứng dụng sáng tạo trong tương lai Các nghiên cứu này cung cấp kiến thức và kinh nghiệm quý báu cho các nhà nghiên cứu và nhà phát triển đang làm việc trong lĩnh vực này

1.3 So sánh sản phẩm hiện có trên thị trường

Khi nghiên cứu về việc sử dụng Arduino để điều khiển xe từ xa, việc so sánh và đánh giá các sản phẩm hiện có trên thị trường là một phần quan trọng để hiểu rõ về sự phát triển của lĩnh vực này Dưới đây là một số đánh giá về ưu điểm và nhược điểm của các sản phẩm hiện có:

Ưu Điểm:

✓ Tính ứng dụng rộng rãi: Các sản phẩm hiện có trên thị trường thường phù hợp cho nhiều mục đích, từ giải trí cho đến công nghiệp và giám sát môi trường

✓ Dễ dàng sử dụng: Hầu hết các sản phẩm đã được thiết kế để sử dụng dễ dàng ngay cả cho người không có kỹ thuật cao

Trang 9

✓ Ưu điểm về tính năng: Nhiều sản phẩm đã tích hợp các tính năng tiên tiến như hệ thống định vị GPS, camera HD, và khả năng tương tác thông qua ứng dụng di động ✓ Hỗ trợ kỹ thuật: Các hãng sản xuất thường cung cấp dịch vụ hỗ trợ kỹ thuật tốt và

cập nhật phần mềm định kỳ để nâng cao tính ổn định và bảo mật

Nhược Điểm:

✓ Giá cả: Một số sản phẩm cao cấp có giá khá đắt đỏ, khiến chúng trở thành lựa chọn không phù hợp với người dùng có ngân sách hạn chế

✓ Giới hạn tùy chỉnh: Mặc dù có tính năng cao cấp, các sản phẩm thường có giới hạn về tích hợp các chức năng tùy chỉnh phức tạp

✓ Sự ràng buộc về phần mềm: Một số sản phẩm yêu cầu sử dụng phần mềm chỉ định của hãng sản xuất, hạn chế sự linh hoạt và tùy chỉnh của người dùng

✓ Vấn đề bảo mật: Trong một số trường hợp, có thể xuất hiện vấn đề liên quan đến bảo mật và quyền riêng tư khi sử dụng các sản phẩm kết nối internet

Sự đánh giá ưu điểm và nhược điểm của các sản phẩm trên thị trường giúp xác định những điểm mạnh và điểm yếu của chúng, từ đó giúp người nghiên cứu và phát triển có cái nhìn tổng quan hơn về cơ hội và thách thức trong việc phát triển sản phẩm mới

1.4 Mô hình mẫu sản phẩm mong muốn

1.4.1 Mô hình mẫu

Hình 1.1 Mẫu xe điều khiển bằng Bluetooth sử dụng cảm biển siêu âm

Trang 10

1.4.2 Ưu điểm và điểm đặc biệt của sản phẩm mục tiêu

Sản phẩm mục tiêu sẽ có những ưu điểm và điểm đặc biệt sau:

✓ Điều khiển từ xa thuận tiện: Sản phẩm cho phép điều khiển từ xa thông qua kết nối Bluetooth, giúp người dùng tương tác và điều khiển xe một cách thuận tiện và linh hoạt

✓ Tích hợp cảm biến siêu âm: Sản phẩm sử dụng cảm biến siêu âm HC – SR04 để đo khoảng cách và tránh vật thể, giúp xe tự động tránh các chướng ngại vật trong quá trình di chuyển

✓ Sử dụng ứng dụng Bluetooth RC Controller: Sản phẩm tích hợp ứng dụng Bluetooth RC Controller, giúp người dùng dễ dàng điều khiển và tương tác với xe từ xa thông qua điện thoại di động

✓ Ứng dụng rộng rãi: Sản phẩm có thể áp dụng trong nhiều lĩnh vực như giải trí, giáo dục, nghiên cứu và ứng dụng công nghiệp

Mô hình mẫu này mang lại khả năng điều khiển từ xa thông qua Bluetooth và tích hợp các tính năng bảo vệ và tương tác, tạo ra một sản phẩm đa dạng và thú vị trong việc điều khiển xe từ xa sử dụng Arduino

1.5 Cơ sở phần cứng được sử dụng

Để thực hiện được báo cáo này nhóm đã sử dụng phần cứng là board Arduino Uno kết hợp với cảm biến siêu âm HC – SR04, cảm biến hồng ngoại và module điều khiển động cơ L293D Từ đó kết nối các linh kiện và sử dụng phần mềm Arduino IDE để viết chương trình điều khiển cho xe hoạt động như ý muốn

1 Arduino Uno R3 Đây là bộ não của hệ thống, nơi các tín hiệu điều khiển được xử lý và gửi tới các phần khác của xe

Là khung gầm của xe điều khiển từ xa Nó cung cấp cấu trúc và hỗ trợ cho các thành phần khác như động cơ, bánh xe và mạch điều khiển

3 Công tắc bập bênh Dùng để bật tắt động cơ

4 Module Bluetooth

HC05

Là thiết bị cho phép kết nối không dây giữa xe với ứng dụng di động Cho phép gửi lệnh từ điện thoại tới xe

5 Motor Shield L293D Mạch điều khiển động cơ tích hợp Cho phép điều khiển hướng và tốc độ quay của động cơ

6 Dây cáp Dùng để kết nối và truyền dữ liệu hoặc tín hiệu giữa các thành phần trong hệ thống xe điều khiển từ xa

7 Đế 2 pin 18650 Dùng để lắp đặt và giữ pin trong hệ thống

8 Pin Lithium 18650 Cung cấp nguồn năng lượng cho động cơ, mạch điều khiển

Trang 11

9 Module cảm biến siêu

âm HC – SR04

Là cảm biến khoảng cách sử dụng sóng siêu âm để đo khoảng cách đến vật thể Nó phát sóng siêu âm và đo thời

1.5.1.1 Giới thiệu tổng quan về Arduino Uno R3

Arduino board có rất nhiều phiên bản với hiệu năng và mục đích sử dụng khác nhau như: Arduino Mega, Arduino LilyPad,… Trong số đó, Arduino Uno R3 là một trong những phiên bản được sử dụng rộng rãi nhất bởi chi phí và tính linh động của nó

Do Arduino có tính mở về phần cứng, chính vì vậy bản thân Arduino Uno R3 cũng có những biến thể để phù hợp cho nhiều đối tượng khác nhau

Vì vậy, để có thể tận dụng tối đa sức mạnh của Arduino board, ta cần phải biết rõ được thông số kỹ thuật của từng loại, nắm được cái khác biệt giữa các phiên bản từ đó có giải pháp xử lý phù hợp

Điểm mạnh của Arduino Uno R3 không chỉ nằm ở việc nó là một bo mạch mở, mà còn ở khả năng mở rộng thông qua các chân I/O (Input/Output) và các giao tiếp như I2C, SPI, UART Điều này cho phép người dùng kết nối Arduino với nhiều loại cảm biến, màn hình, hoặc thiết bị ngoại vi khác một cách dễ dàng

Arduino Uno R3 hỗ trợ nhiều ngôn ngữ lập trình như C/C++ và Python thông qua các thư viện và IDE (Integrated Development Environment) đơn giản và dễ sử dụng Điều này giúp người dùng không chỉ học lập trình mà còn nắm vững về vi điều khiển nhúng

Với tính đơn giản trong cấu trúc và lập trình, Arduino Uno R3 là lựa chọn hàng đầu cho các khóa học và dự án giảng dạy về điện tử và lập trình, từ trình độ cơ bản đến nâng cao Arduino Uno R3 được hỗ trợ bởi một cộng đồng lớn và nhiều tài liệu trực tuyến Điều này mang lại sự thuận lợi cho việc học hỏi và giải quyết vấn đề khi gặp phải khó khăn

Ngoài việc được sử dụng rộng rãi trong giáo dục, Arduino Uno R3 cũng được áp dụng trong nhiều dự án thực tiễn như thiết kế đèn chiếu sáng tự động, hệ thống giám sát môi trường, và thiết bị đo lường thông minh

Arduino community luôn tiếp tục phát triển và cải tiến, đưa ra các phiên bản mới và hỗ trợ công nghệ mới như Internet of Things (IoT), đảm bảo rằng Arduino Uno R3 luôn ở vị thế tiên phong trong lĩnh vực điện tử và lập trình nhúng

Trang 12

Hình 1.2 Arduino Uno R3

1.5.1.2 Một vài thông số của Arduino Uno R3

Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168, ATmega328 Bộ não này có thể xử lý những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lý tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ – độ ẩm và hiển thị lên màn hình LCD,… hay những ứng dụng khác

Trang 13

Hình 1.3 Vi điều khiển

1.5.1.4 Nguồn

Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7 – 12V DC và giới hạn là 6 – 20V Thường thì cấp nguồn bằng pin vuông 9V là hợp lý nhất nếu bạn không có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, bạn sẽ làm hỏng Arduino Uno

Các chân nguồn:

✓ GND (Ground): Cực âm của nguồn điện cấp cho Arduino UNO Khi bạn dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau

✓ 5V: Cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA ✓ 3.3V: Cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA

✓ Vin (Voltage Input): Để cấp nguồn ngoài cho Arduino Uno, bạn nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND

✓ IOREF: Điện áp hoạt động của vi điều khiển trên Arduino Uno có thể được đo ở chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn

✓ RESET: Việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua một điện trở 10KΩ

Lưu ý:

Arduino UNO không có bảo vệ cắm ngược nguồn vào Do đó phải hết sức cẩn thận, kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino Uno Việc làm chập mạch nguồn vào của Arduino Uno sẽ biến nó thành một miếng nhựa chặn giấy

Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho các thiết bị khác, không phải là các chân cấp nguồn vào Việc cấp nguồn sai vị trí có thể làm hỏng board Điều này không được nhà sản xuất khuyến khích

Trang 14

Cấp nguồn ngoài không qua cổng USB cho Arduino Uno với điện áp dưới 6V có thể làm hỏng board

Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển ATmega328

Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino Uno nếu vượt quá 200mA sẽ làm hỏng vi điều khiển

Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino Uno sẽ làm hỏng vi điều khiển

Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của Arduino Uno vượt quá 40mA sẽ làm hỏng vi điều khiển Do đó nếu không dùng để truyền nhận dữ liệu, phải mắc

một điện trở hạn dòng

1.5.1.5 Bộ nhớ

Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:

✓ 32KB bộ nhớ Flash: Những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader nhưng hiếm khi nào cần quá 20KB bộ nhớ này

✓ 2KB cho SRAM (Static Random Access Memory): Giá trị các biến khai báo khi lập trình sẽ lưu ở đây Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ phải bận tâm Khi mất điện, dữ liệu trên SRAM sẽ bị mất

✓ 1KB cho EEPROM (Electrically Erasable Programmable Read Only Memory): Đây giống như một chiếc ổ cứng mini – nơi có thể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM

1.5.1.6 Các cổng vào ra

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 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 thì 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 như sau:

✓ Chân Serial (0 (RX) và 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ới thiết bị khác thông qua hai chân này Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng hai chân này nếu không cần thiết

Trang 15

✓ Chân PWM (~): 3, 5, 6, 9, 10, và 11: Cho phép bạn xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 28 – 1 tương ứng với 0V → 5V) bằng hà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 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ài các chức năng thông thường, bốn 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) Khi bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng

Arduino Uno có 6 chân Analog (A0 → A5) cung cấp độ phân giải tín hiệu 10 bit (0 → 210 – 1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân Analog Tức là nếu bạn cấp điện áp 2.5V vào chân này thì bạn 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à 10bit Đặc biệt, Arduino Uno có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác

Hình 1.4 Các cổng vào ra

1.5.2 Motor Shield L293D

Arduino Motor Shield là một phần board mở rộng cho các board arduino, dùng đểđiều khiển các loại động cơ DC, động cơ bước và động cơ servo Arduino Motor Shield được thiết kế gọn gàng, đẹp mắt và tương thích hoàn toàn với các board Arduino: Arduino Uno R3, Arduino Leonardo, Arduino Mega 2560, giúp bạn có thể sử dụng và điều khiển một cách dễ dàng và nhanh chóng.

Trang 16

Arduino Motor Shield sử dụng 2 IC cầu H hoàn chỉnh với các chế độ bảo vệ và 1 IC logic 74HC595 để điều khiển các động cơ.

Arduino Motor Shield có thể điều khiển nhiều loại motor khác nhau như step motor, servo motor, motor DC, với mức áp lên đến 36V, dòng tối đa 600mA cho mỗi kênh điều khiển.

Thông số:

✓ Điện áp đầu vào: 4.5V đến 36V

✓ Tương thích với các board Arduino Uno R3, Arduino Leonardo R3 và Arduino Mega 2560

✓ Có thể điều khiển động cơ DC (4 động cơ), động cơ servo (2 động cơ) và động cơ bước (2 động cơ) Hai cổng điều khiển servo motor được đánh dấu: Servo_1 và Servo_2 trên linh kiện Các cổng điều khiển động cơ DC được đánh dấu lần lượt là M1, M2, M, M4, chân giữa là chân GND

✓ Hai cổng điều khiển động cơ servo có điện áp vào 5V với timer có độ phân giải cao, phù hợp cho các ứng dụng điều khiển bằng Arduino có độ chính xác cao

✓ Có 2 IC Driver, do đó sẽ có 4 cầu H để điều khiển được 4 động cơ DC Mỗi cầu H có dòng ra tối đa 0.6A (dòng chịu đựng cực đại là 1.2A) ở mỗi kênh điều khiển ✓ Các cổng M dùng điều khiển động cơ DC được điều khiển bằng tín hiệu PWM ✓ Driver còn hỗ trợ điều khiển 2 động cơ bước, với 2 cổng dùng cho 2 động cơ servo

có thể được dùng cho động cơ bước Với Shield, động cơ bước có thể vận hành ở tất cả các chế độ: full step, half step và micro – step Động cơ bước dùng cho driver có thể là loại đơn cực (unipolar) hoặc lưỡng cực (bipolar)

✓ Có sẵn nút RESET để khởi động lại board Arduino

Hình 1.5 Motor Shield L293D

Trang 17

1.5.3 Module Bluetooth HC – 05

1.5.3.1 Giới thiệu về công nghệ Bluetooth Sơ lược về kết nối Bluetooth:

✓ Bluetooth được phát minh bởi công ty Ericsson vào năm 1994, nó có thể kết nối nhiều thiết bị và khắc phục các vấn đề về đồng bộ hóa Ngày nay hầu hết 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, laptop, tablet và thiết bị hỗ trợ cá nhân (Personal Digital

Assistant – PDA) khác 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

✓ Bluetooth sử dụng sóng Radio tần số 2.4GHz Tuy sử dụng cùng tần số với công

nghệ Wifi nhưng chúng không hề xung đột với nhau vì Bluetooth sử dụng tần số có bước sóng ngắn hơn

✓ Bluetooth là một chuẩn điện tử, điều đó có nghĩa là các hãng sản xuất muố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 Bluetooth cho sản phẩm của mình Những chỉ tiêu kỹ thuật này bảo đảm 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

Các chuẩn kết nối Bluetooth:

✓ Bluetooth 1.0: Phiên bản Bluetooth đầu tiên với tốc độ 1Mpbs, nhưng khả năng

tương thích chưa cao

✓ Bluetooth 2.0 + ERD: Ra mắt vào tháng 7/2007 với sự ổn định và tốc độ chia sẻ

nhanh hơn, tiết kiệm năng lượng hơn các phiên bản trước

✓ Bluetooth 3.0 + HS: Ra mắt vào năm 2009 với tốc độ lý thuyết lên đến 24 Mbps

Bluetooth 3.0 rất phổ biến trên các mẫu điện thoại lúc bấy giờ, phù hợp với việc truyền dữ liệu nhỏ như hình ảnh, file nhạc,…

✓ Bluetooth 4.0: Bluetooth 4.0 được ra đời vào ngày 30/6/2010 là một phiên bản tối

ưu hóa các chuẩn Bluetooth trước đó (Classic Bluetooth) cho phép truyền tải tốc

độ cao nhờ vào Bluetooth High Speed và tiêu tốn năng lượng thấp hơn nhờ vào

Bluetooth Low Energy

✓ Bluetooth 5.0: Là thế hệ mới nhất hiện tại được SIG trình làng vào ngày 16/6/2016 với nhiều cải tiến vượt bậc như tầm phủ sóng rộng gấp 4 lần, tốc độ nhanh hơn

gấp đôi và tiết kiệm điện hơn gấp 2.5 lần so với 4.0

Các tính năng của Bluetooth:

✓ Cho phép các thiết bị kết nối được với nhau để trao đổi thông tin giữa chúng Ví dụ như điện thoại di động với nhau, máy tính bảng, máy tính xách tay, máy in, các thiết bị dùng định vị GPS,…

Trang 18

✓ Giao tiếp và điều khiển giữa một thiết bị di động với tai nghe không dây như tai nghe bluetooth

✓ Trở thành đường truyền kết nối không dây giữa các thiết bị vào – ra của máy tính như: chuột, bàn phím không dây

✓ Ứng dụng trong các thiết bị điều khiển từ xa như bộ điều khiển đồ chơi, điều khiển tivi, điều hòa,…

✓ Kết nối internet cho máy tính bằng cách biến smartphone làm modem

Ưu điểm:

✓ Thay thế hoàn toàn dây nối

✓ Hoàn toàn không nguy hại đến sức khoẻ con người

✓ Các thiết bị có thể kết nối với nhau trong vòng 20m mà không cần trực diện (hiện nay có loại Bluetooth kết nối lên đến 100m)

✓ Kết nối điện thoại và tai nghe Bluetooth khiến cho việc nghe máy khi lái xe hoặc

✓ Thời gian thiết lập lâu

1.5.3.2 Giới thiệu về module Bluetooth HC – 05

Trang 19

Module thu phát Bluetooth HC – 05 dùng để thiết lập kết nối Serial giữa hai thiết bị bằng sóng bluetooth Điểm đặc biệt của module bluetooth HC – 05 là module có thể hoạt động được ở hai chế độ: MASTER hoặc SLAVE Trong khi đó, bluetooth module HC – 06 chỉ hoạt động ở chế độ SLAVE.

✓ Ở chế độ SLAVE: Bạn 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ổng serial từ xa hoạt động ở baud rate 9600

✓ Ở chế độ MASTER: Module sẽ tự động dò tìm thiết bị bluetooth khác (một module bluetooth HC – 06, USB bluetooth, bluetooth của laptop…) và tiến hành phải chủ động mà không cần thiết lập gì từ máy tính hoặc smartphone

Module Bluetooth thu phát HC – 05 được thiết kế nhỏ gọn ra chân tín hiệu giao tiếp cơ bản và nút bấm để vào chế độ AT COMMAND, mạch được thiết kế để có thể cấp nguồn và giao tiếp qua 3.3VDC hoặc 5VDC, thích hợp cho nhiều ứng dụng khác nhau: Robot Bluetooth, điều khiển thiết bị qua Bluetooth,…

Module này có 6 chân: VCC, GND, RX, TX, STATE, EN Trong đó, VCC và GND là hai chân cấp nguồn, đất cho module RX, TX dùng để nhận gửi dữ liệu với Arduino Chân STATE là chân trạng thái (chân này ko cần kết nối) EN là chân để chọn một trong hai chế độ hoạt động của con HC05, gồm chế độ AT Mode và Data Mode

Thông số kỹ thuật:

✓ Điện áp hoạt động: 3.3 – 5V

✓ Mức điện áp chân giao tiếp: TTL tương thích 3.3VDC và 5VDC ✓ Bluetooth protocol: Bluetooth specification v2.0 + EDR

✓ Frequency: 2.4 GHz ISM band

✓ Kích thước của module chính: 15.2 x 35.7 x 5.6mm

Chú ý: Module Bluetooth HC – 05 thường được sử dụng để thiết lập kết nối không dây giữa các thiết bị như Arduino và điện thoại di động hoặc máy tính thông qua Bluetooth Với các thông số kỹ thuật này, nó cho phép bạn xây dựng các ứng dụng điều khiển từ xa, truyền dữ liệu không dây, và thực hiện các dự án IoT (Internet of Things) đơn giản

Trang 20

1.5.4 Động cơ giảm tốc vàng

Hình 1.7 Động cơ giảm tốc vàng

Động cơ giảm tốc này là loại được lựa chọn và sử dụng nhiều nhất hiện nay cho các

thiết kế Robot đơn giản Động cơ DC giảm tốc V1 cải tiến khác với loại bình thường ở phần thiết kế trục bổ sung thêm những vòng đồng ở các chỗ tiếp xúc giúp đăng độ bền và giảm ma sát, quan sát kỹ khi mở phần đuôi của động cơ sẽ thấy sự khác nhau về cơ cấu chổi than, chổi than của động cơ bình thường chỉ là các tiếp xúc bằng đồng mỏng trong khi với động cơ V1 cải tiến là 2 khối chổi than lớn, điều này giúp động cơ V1 cải tiến có độ bền > 10 lần so với động cơ thường cùng với khả năng chịu được mức điện áp lên đến 12VDC

Thông số kỹ thuật của Động cơ giảm tốc Vàng:

Trang 21

Cảm biến HC – SR04 sử dụng sóng siêu âm và có thể đo khoảng cách trong khoảng từ 2 đến 300cm, với độ chính xác gần như chỉ phụ thuộc vào cách lập trình

Cảm biến HC – SR04 có 4 chân là: Vcc, Trig, Echo, GND

Trig Chân điều khiển phát Echo Chân nhận tín hiệu phản hồi

Bảng 1.3 Các chân cảm biến siêu âm

Cảm biến siêu âm HC – SR04 sử dụng nguyên lý phản xạ sóng siêu âm Cảm biến gồm hai module Một module phát ra sóng siêu âm và một module thu sóng siêu âm phản xạ về Đầu tiên cảm biến sẽ phát ra một sóng siêu âm với tần số 40khz Nếu có chướng ngại vật trên đường đi, sóng siêu âm sẽ phản xạ lại và tác động lên module nhận sóng Bằng cách đo thời gian từ lúc phát đến lúc nhận sóng ta sẽ tính được khoảng cách từ cảm biến đến chướng ngại vật Khoảng cách = (thời gian * vận tốc âm thanh (340 m/s) / 2

Khung xe robot 2 tầng 4 bánh sử dụng 4 động cơ giảm tốc DC chuyển hướng linh hoạt dựa trên xử lý tốc độ của động cơ Khung xe có kích thước lớn, rất dễ để mở rộng, lắp đặt các module, mạch điện hỗ trợ

Ứng dụng của xe robot 4 bánh: Tốt hơn loại khung xe robot 3 bánh, dễ dàng điều chỉnh hướng đi của xe, xoay xe dựa trên việc điều khiển tốc độ của bánh xe thích hợp cho những ứng dụng làm xe robot tự hành, tránh vật cản, lắp ghép với cánh cánh tay robot để điều khiển

Thông số kỹ thuật:

✓ 4 động cơ hộp giảm tốc, điện áp cung cấp cho động cơ 6-9V ✓ 4 bánh xe robot bằng nhựa, lốp chất liệu cao su

✓ 1 bộ ốc vít và ke để gắn động cơ vào khung xe ✓ 1 bộ cọc đồng để ghép 2 tấm đế mica

Trang 22

Thông số kỹ thuật pin cell 18650 2600mAh 5C: ✓ Loại pin: Pin sạc

✓ Loại cell Li – ion tròn 18650 màu tím ✓ Điện thế danh định: 3.6V

✓ Điện thế sạc đầy: 4.2V ✓ Nội trở: 15~30 Ohm ✓ Dung lượng thật: 2500mA

✓ Sạc pin: Sử dụng sạc Li-ion với thông số như bên dưới ✓ Điện thế sạc: 4.2V max

✓ Dòng sạc: 0.5A – 1A

Trang 23

Hình 1.10 Pin cell 18650 2600mAh 5C

Thông số kỹ thuật hộp đế pin 2 cell: ✓ Đế giữ pin 18650

✓ Số pin giữ:

➢ 1 cell: 1 pin ra điện áp 3.7 ~ 4.2V ➢ 2 cell: 2 pin nối tiếp 7.4 ~ 8.4V ➢ 3 cell: 3 pin nối tiếp: 11.1 ~ 12.6V ➢ 4 cell: 4 pin nối tiếp: 14.8 ~ 16.8V

Trang 24

1.5.6.3 Dây cáp

Thông số kỹ thuật dây cáp: ✓ Dây Test Board: 10 sợi

Thông số kỹ thuật như sau:

✓ Điện áp chịu đựng: 6A 250VAC/ 10A 125VAC ✓ Số chân: Loại 2 chân

✓ Chế độ: 2 chế độ on/off ✓ Chất liệu: Vỏ bằng nhựa

Trang 25

Hình 1.13 Công tắc bập bênh

1.6 Phần mềm và mã nguồn mở được sử dụng

Chương 1 đã cung cấp một cái nhìn tổng quan về cơ sở lý thuyết liên quan đến đề tài “Xe Điều Khiển Từ Xa Sử Dụng Arduino”

Phần mềm đóng vai trò quan trọng trong việc lập trình và điều khiển xe từ xa sử dụng Arduino Dưới đây là một số phần mềm và mã nguồn mở được sử dụng:

✓ Arduino IDE: Môi trường phát triển tích hợp (IDE) của Arduino, cho phép bạn viết, biên dịch và nạp chương trình lên Arduino Board

✓ Thư viện Arduino: Arduino có sẵn một loạt các thư viện dành riêng cho các loại cảm biến, mô – đun, và chức năng cụ thể, giúp đơn giản hóa quá trình lập trình

✓ Mã nguồn mở: Cộng đồng Arduino rộng lớn đã tạo ra nhiều dự án mã nguồn mở và thư viện cho việc điều khiển xe từ xa Các dự án như “OpenRC” và “Arduino Remote Control” có mã nguồn mở có sẵn cho việc tùy chỉnh và phát triển

✓ Bluetooth RC controller: Cho phép người dùng điểu khiển và tương tác với xe từ xa thông qua kết nối Bluetooth

Sử dụng các phần mềm và mã nguồn mở này cùng với cơ sở phần cứng thích hợp giúp người dùng tạo ra các hệ thống

1.6.1 Phần mềm Arduino IDE

Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn ngữ riêng Ngôn ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói chung Và Wiring lại là một biến thể của C/C++ Một số người gọi nó là Wiring, một số khác thì gọi là C hay C/C++ Riêng mình thì gọi nó là “ngôn ngữ Arduino”, và đội ngũ phát triển Arduino cũng gọi như vậy Ngôn ngữ Arduino bắt nguồn từ C/C++ phổ biến hiện nay do đó rất dễ học, dễ hiểu

Giao diện người dùng (GUI): Arduino IDE có một giao diện sáng sạch, dễ đọc và dễ sử dụng Các phần của giao diện được thiết kế một cách logic giúp người dùng dễ dàng truy cập và sử dụng các tính năng

Kiểm tra lỗi (Error Checking): IDE cung cấp chức năng kiểm tra lỗi tự động, giúp người dùng dễ dàng xác định và sửa lỗi trong mã nguồn của họ

Ngày đăng: 23/04/2024, 15:24

w