Tải bản đầy đủ (.pdf) (50 trang)

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)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.19 MB, 50 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>HỌC VIỆN KỸ THUẬT MẬT MÃ Khoa Cơng nghệ thơng tin </b>

<b>BÁO CÁO MƠN HỌC </b>

<b>CƠNG NGHỆ PHẦN MỀM NHÚNG </b>

<b>ĐỀ TÀI: XE ĐIỀU KHIỂN TỪ XA </b>

<b>Giảng viên hướng dẫn: </b>

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

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>1.2Tình hình phát triển hiện nay ... 2</b>

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

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

<b>1.4Mơ hình mẫu sản phẩm mong muốn ... 4</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="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

<b>TỔNG KẾT CHƯƠNG 2 ... 33</b>

<b>CHƯƠNG 3: THỰC NGHIỆM ... 34</b>

<b>3.1Yêu cầu cài đặt phần cứng và phần mềm ... 34</b>

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

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="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 tốn tổng thể ... 28

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

Hình 2.9 Sơ đồ thuật tố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 qt ... 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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>DANH MỤC CÁC BẢNG BIỂU </b>

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

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>MỞ ĐẦU </b>

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!

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

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

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.

<b>1.2 Tình hình phát triển hiện nay </b>

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

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.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="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.

<i><b>1.2.2 Các dự án và nghiên cứu đáng chú ý </b></i>

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.

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

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ó:

<i>Ưu Điểm: </i>

✓ 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.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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.

<i>Nhược Điểm: </i>

✓ 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.

<b>1.4 Mơ hình mẫu sản phẩm mong muốn </b>

<i><b>1.4.1 Mơ hình mẫu </b></i>

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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

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

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

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

Để 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.

<b>1 </b> 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.

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

<b>4 </b> <sup>Module Bluetooth </sup>

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.

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

<b>6 </b> 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.

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

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

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>9 </b> <sup>Module cảm biến siêu </sup>

â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

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

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.

Ngồ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.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>Hình 1.2 Arduino Uno R3 </b>

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

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.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>Hình 1.3 Vi điều khiển </b>

<i>1.5.1.4 Nguồn </i>

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ó ln 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Ω.

<b>Lưu ý: </b>

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.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Cấp nguồn ngồ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

<b>một điện trở hạn dòng. </b>

<i>1.5.1.5 Bộ nhớ </i>

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.

<i>1.5.1.6 Các cổng vào ra </i>

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.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="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). Ngồ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.

<b>Hình 1.4 Các cổng vào ra </b>

<i><b>1.5.2 Motor Shield L293D </b></i>

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 hồn tồ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.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="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.

<b>Hình 1.5 Motor Shield L293D </b>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<i><b>1.5.3 Module Bluetooth HC – 05 </b></i>

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

✓ 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

<b>Assistant – PDA) khác. Công nghệ này thường được sử dụng để truyền thông giữa </b>

hai loại thiết bị khác nhau.

<b>✓ 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 </b>

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.

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

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

tương thích chưa cao.

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

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

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

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,…

<b>✓ 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 </b>

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

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

Bluetooth Low Energy.

<b>✓ 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 </b>

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

<i>Các tính năng của Bluetooth: </i>

✓ 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,…

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="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.

<i>Ưu điểm: </i>

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

✓ Hồn tồ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.

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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<i><b>1.5.4 Động cơ giảm tốc vàng </b></i>

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

<b>Độ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 </b>

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:

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="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>Bảng 1.3 Các chân cảm biến siêu âm </b>

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

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<b>Hình 1.10 Pin cell 18650 2600mAh 5C </b>

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

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<i>1.5.6.3 Dây cáp </i>

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

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>Hình 1.13 Cơng tắc bập bênh </b>

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

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 q 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

<i><b>1.6.1 Phần mềm Arduino IDE </b></i>

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ọ.

</div>

×