Đồ án vi điều khiển đề tài thiết kế xe điều khiển bằng tay và xe tự hành

Đồ án vi điều khiển: Thiết kế xe điều khiển bằng tay & xe tự hành. Tìm hiểu nguyên lý, sơ đồ mạch, code & ứng dụng thực tế. Tải đồ án miễn phí!

Chuyên ngành

Vi điều khiển

Người đăng

Ẩn danh

Thể loại

Đồ án

2024

45
4
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan đồ án vi điều khiển xe tự hành và điều khiển tay

Đồ án vi điều khiển về đề tài thiết kế xe điều khiển bằng tay và xe tự hành là một chủ đề phổ biến và mang tính ứng dụng cao trong lĩnh vực lập trình nhúng và robot. Sự phát triển của công nghệ không dây như Bluetooth và Wifi đã mở ra nhiều tiềm năng cho các hệ thống điều khiển từ xa thông minh. Đồ án này tập trung vào việc xây dựng hai mô hình xe robot: một mô hình có thể được điều khiển trực tiếp thông qua smartphone và một mô hình có khả năng tự động di chuyển theo một đường kẻ vạch sẵn (xe dò line). Việc nghiên cứu và chế tạo các sản phẩm này không chỉ giúp củng cố kiến thức về vi điều khiển Arduino, ESP32 hay STM32 mà còn góp phần tạo ra các sản phẩm công nghệ ứng dụng thực tiễn với chi phí hợp lý. Các robot tự hành ngày càng được ứng dụng rộng rãi trong nhiều lĩnh vực như vận chuyển hàng hóa tự động trong nhà kho, robot phục vụ, hay các thiết bị hỗ trợ người khuyết tật. Tuy nhiên, một trong những hạn chế lớn là khả năng thích ứng linh hoạt trong các môi trường khác nhau. Đề tài này giải quyết bài toán cơ bản nhất của xe tự hành là di chuyển theo quỹ đạo xác định và tạo nền tảng cho việc phát triển các thuật toán tránh vật cản phức tạp hơn trong tương lai. Qua việc thực hiện đồ án, các kiến thức về lập trình C/C++, thiết kế mạch điện tử, nguyên lý hoạt động của các loại cảm biến và cơ cấu chấp hành như động cơ DCđộng cơ servo sẽ được hệ thống hóa và áp dụng một cách trực quan.

1.1. Lý do và mục đích thực hiện đề tài xe tự hành Arduino

Lý do chính để lựa chọn đề tài này xuất phát từ sự phát triển mạnh mẽ của công nghệ không dây và nhu cầu ứng dụng robot tự hành trong đời sống. Hiện nay, các sản phẩm điều khiển từ xa và robot thông minh trên thị trường Việt Nam phần lớn là hàng nhập khẩu với giá thành cao. Việc tự nghiên cứu, thiết kế và chế tạo một mô hình xe điều khiển không chỉ giúp giảm chi phí mà còn làm chủ được công nghệ. Mục đích của đồ án là nghiên cứu và ứng dụng công nghệ Bluetooth, cụ thể là module Bluetooth HC-05, để xây dựng một hệ thống điều khiển không dây ổn định. Đồng thời, đồ án còn hướng đến việc xây dựng một xe tự hành Arduino có khả năng dò line, một bài toán nền tảng trong lĩnh vực robot di động. Qua đó, người thực hiện sẽ nắm vững quy trình thiết kế một sản phẩm điện tử hoàn chỉnh, từ lên ý tưởng, lựa chọn linh kiện, thiết kế phần cứng, lập trình nhúng cho đến khi hoàn thiện sản phẩm.

1.2. Phân tích cấu trúc và nhiệm vụ của báo cáo đồ án

Cấu trúc của một báo cáo đồ án loại này thường được chia thành các chương rõ ràng để trình bày quá trình nghiên cứu và kết quả. Phần mở đầu giới thiệu tổng quan, lý do chọn đề tài và mục tiêu cần đạt. Chương tiếp theo trình bày cơ sở lý thuyết về các linh kiện chính như vi điều khiển Arduino, module điều khiển động cơ L298N, và các loại cảm biến. Các chương chính của đồ án tập trung vào việc thiết kế chi tiết hai mô hình: xe điều khiển bằng tay và xe tự hành dò đường. Mỗi chương này sẽ bao gồm thiết kế phần cứng (sơ đồ khối, sơ đồ nguyên lý) và thiết kế phần mềm (sơ đồ thuật toán, giải thích code xe tự hành). Nhiệm vụ chính là chế tạo thành công phần cứng, đảm bảo khung xe robot chắc chắn, và lập trình để xe hoạt động đúng chức năng. Cuối cùng, phần kết luận sẽ tổng kết lại những kết quả đạt được, đánh giá ưu nhược điểm và đề xuất hướng phát triển trong tương lai.

II. Thách thức chính khi thiết kế xe điều khiển và xe tự hành

Việc thực hiện một đồ án thiết kế xe điều khiển bằng tay và xe tự hành đặt ra nhiều thách thức đáng kể, đòi hỏi sự kết hợp nhuần nhuyễn giữa kiến thức phần cứng và kỹ năng lập trình. Một trong những khó khăn ban đầu là lựa chọn linh kiện phù hợp, vừa đảm bảo hiệu năng hoạt động, vừa tối ưu chi phí. Ví dụ, việc lựa chọn giữa Arduino, ESP32 hay STM32 phụ thuộc vào yêu cầu về sức mạnh xử lý, khả năng kết nối và hệ sinh thái hỗ trợ. Thách thức tiếp theo nằm ở việc tích hợp các module khác nhau thành một hệ thống hoàn chỉnh. Việc kết nối sai dây, cấp nguồn không ổn định hoặc nhiễu tín hiệu giữa các thành phần có thể dẫn đến hệ thống hoạt động sai hoặc thậm chí gây hỏng hóc linh kiện. Đặc biệt, việc quản lý nguồn điện cho toàn bộ hệ thống là một bài toán quan trọng. Hệ thống bao gồm vi điều khiển, cảm biến, và đặc biệt là các động cơ DC tiêu thụ dòng lớn, đòi hỏi một mạch nguồn ổn định và pin Lipo có dung lượng đủ lớn. Về mặt phần mềm, thách thức nằm ở việc xây dựng một lưu đồ giải thuật logic và hiệu quả. Đối với xe điều khiển bằng tay, cần xây dựng một giao thức truyền nhận dữ liệu qua Bluetooth đáng tin cậy giữa smartphone và xe. Đối với xe dò line, việc tinh chỉnh thuật toán để xe di chuyển mượt mà, không bị chệch khỏi vạch đen ở các đoạn cua là một công việc đòi hỏi sự kiên nhẫn và nhiều lần thử nghiệm.

2.1. Lựa chọn và tích hợp linh kiện điện tử tương thích

Việc lựa chọn linh kiện là bước nền tảng quyết định sự thành công của dự án. Cần phải đảm bảo tất cả các thành phần như vi điều khiển, module điều khiển động cơ, cảm biến, và module truyền thông không dây phải tương thích với nhau về mức điện áp logic (3.3V hay 5V) và giao thức giao tiếp. Ví dụ, khi sử dụng Arduino Uno R3 (hoạt động ở mức 5V) với một cảm biến chỉ hỗ trợ 3.3V, cần phải có các mạch chuyển đổi mức logic để tránh làm hỏng cảm biến. Tương tự, mạch cầu H L298N cần được cấp một nguồn riêng đủ mạnh để vận hành động cơ, trong khi bo mạch vi điều khiển cần một nguồn 5V ổn định. Việc tích hợp không đúng cách có thể gây ra nhiễu điện, làm cho các cảm biến đọc sai giá trị và hệ thống hoạt động không ổn định.

2.2. Xây dựng giao thức điều khiển qua smartphone ổn định

Đối với xe điều khiển bằng tay, việc xây dựng một hệ thống điều khiển qua smartphone ổn định là một thách thức lớn. Giao thức truyền nhận dữ liệu qua module Bluetooth HC-05 cần được thiết kế rõ ràng. Dữ liệu gửi từ ứng dụng trên điện thoại (có thể được tạo bằng App Inventor) phải được định dạng thành các chuỗi lệnh đơn giản mà vi điều khiển Arduino có thể phân tích và thực thi. Các vấn đề như độ trễ (latency), mất gói tin, hoặc kết nối không ổn định có thể xảy ra. Cần phải có cơ chế xử lý lỗi trong code, ví dụ như thiết lập một trạng thái mặc định (dừng xe) khi không nhận được tín hiệu trong một khoảng thời gian nhất định để đảm bảo an toàn. Việc tối ưu hóa tốc độ truyền và xử lý dữ liệu là chìa khóa để xe phản ứng nhanh và chính xác theo mệnh lệnh của người dùng.

III. Hướng dẫn thiết kế xe điều khiển bằng tay với Arduino

Thiết kế một chiếc xe điều khiển bằng tay là một phần quan trọng của đồ án, tập trung vào khả năng tương tác thời gian thực giữa người dùng và robot. Nền tảng của mô hình này là sự kết hợp giữa vi điều khiển Arduino Uno R3, module truyền thông không dây, và các cơ cấu chấp hành. Arduino Uno R3 được chọn làm bộ não trung tâm nhờ sự phổ biến, cộng đồng hỗ trợ lớn và môi trường lập trình Arduino IDE thân thiện. Để điều khiển xe, tín hiệu từ smartphone được gửi qua Bluetooth đến module Bluetooth HC-05. Module này sau đó giao tiếp với Arduino qua giao thức UART (chân TX, RX). Arduino sẽ xử lý các lệnh nhận được (ví dụ: 'F' cho tiến, 'B' cho lùi) và xuất tín hiệu điều khiển tương ứng đến mạch cầu H L298N. Mạch L298N là thành phần không thể thiếu để điều khiển động cơ DC, cho phép đảo chiều quay và điều chỉnh tốc độ thông qua kỹ thuật PWM (Pulse Width Modulation). Ngoài ra, dự án còn tích hợp một cánh tay robot 4 bậc tự do, được điều khiển bởi các động cơ servo MG90S. Mỗi servo được kết nối với một chân PWM của vi điều khiển, cho phép điều khiển góc quay một cách chính xác. Toàn bộ hệ thống được cấp nguồn bởi pin Lipo qua một mạch nguồn hạ áp LM2596 để cung cấp các mức điện áp ổn định cho cả vi điều khiển và động cơ.

3.1. Sơ đồ nguyên lý và đấu nối phần cứng xe điều khiển

Phần cứng của xe được thiết kế dựa trên một sơ đồ nguyên lý rõ ràng. Trung tâm là Arduino Uno R3. Module Bluetooth HC-05 được kết nối với chân 0 (RX) và 1 (TX) của Arduino để giao tiếp nối tiếp. Module điều khiển động cơ L298N được cấp nguồn riêng (7-12V) từ pin Lipo. Các chân điều khiển của L298N (IN1, IN2, IN3, IN4) được nối với các chân digital của Arduino để điều khiển chiều quay của hai động cơ. Các chân ENA và ENB của L298N được nối với các chân PWM (ví dụ chân 5, 6) của Arduino để điều chỉnh tốc độ. Các động cơ servo của cánh tay robot cũng được kết nối với các chân PWM khác. Việc đấu nối cần được thực hiện cẩn thận, đặc biệt là phần nguồn, đảm bảo nối chung mass (GND) giữa tất cả các module và Arduino để hệ thống hoạt động ổn định.

3.2. Lập trình điều khiển động cơ DC và servo với Arduino

Phần mềm được phát triển trên Arduino IDE sử dụng ngôn ngữ lập trình C/C++. Chương trình chính bao gồm các hàm để đọc dữ liệu từ cổng Serial (đến từ module Bluetooth), phân tích lệnh và gọi các hàm chức năng tương ứng. Một hàm motorControl() sẽ nhận tham số về tốc độ và hướng để điều khiển động cơ DC thông qua việc cài đặt các chân INx là HIGH/LOW và xuất tín hiệu PWM qua analogWrite() tới chân ENA/ENB. Đối với động cơ servo, thư viện Servo.h được sử dụng để đơn giản hóa việc điều khiển. Sau khi khởi tạo đối tượng servo và gắn nó vào một chân pin cụ thể, chỉ cần dùng lệnh servo.write(angle) để di chuyển servo đến góc mong muốn. Lưu đồ giải thuật cho chương trình sẽ bắt đầu bằng việc khởi tạo các chân và cổng Serial, sau đó vào một vòng lặp vô tận để liên tục kiểm tra dữ liệu đến và cập nhật trạng thái của động cơ và servo.

IV. Bí quyết lập trình xe tự hành dò line từ A Z cho người mới

Xây dựng một xe tự hành Arduino dò line là một bài toán kinh điển cho người mới bắt đầu trong lĩnh vực robot. Nguyên lý cốt lõi của xe dò line là sử dụng các cảm biến để phân biệt giữa vạch kẻ (thường là màu đen) và nền (thường là màu trắng), từ đó điều chỉnh hướng di chuyển của xe để luôn bám theo vạch kẻ. Mô hình này thường sử dụng một mảng cảm biến hồng ngoại, chẳng hạn như module TCRT5000. Mỗi cảm biến bao gồm một LED phát hồng ngoại và một phototransistor thu. Khi xe ở trên nền trắng, ánh sáng hồng ngoại được phản xạ lại nhiều, phototransistor nhận được tín hiệu mạnh. Ngược lại, khi ở trên vạch đen, ánh sáng bị hấp thụ, tín hiệu nhận được yếu đi. Vi điều khiển Arduino sẽ đọc trạng thái từ các cảm biến này (dưới dạng tín hiệu analog hoặc digital) để xác định vị trí tương đối của xe so với vạch kẻ. Dựa trên thông tin này, thuật toán điều khiển sẽ ra quyết định: nếu xe đi thẳng, cả hai động cơ quay với tốc độ bằng nhau; nếu xe lệch sang trái, động cơ phải sẽ quay nhanh hơn (hoặc động cơ trái quay chậm lại) để xe rẽ phải và ngược lại. Quá trình này tạo thành một vòng lặp điều khiển phản hồi, giúp xe tự động điều chỉnh và bám theo đường line.

4.1. Nguyên lý hoạt động của cảm biến hồng ngoại TCRT5000

Module cảm biến hồng ngoại TCRT5000 là thành phần quan trọng nhất của xe dò line. Module này hoạt động dựa trên nguyên lý phản xạ ánh sáng hồng ngoại. Nó bao gồm một diode phát hồng ngoại (IR LED) và một phototransistor. IR LED phát ra một chùm tia hồng ngoại xuống bề mặt. Nếu bề mặt là màu trắng hoặc sáng màu, tia hồng ngoại sẽ bị phản xạ lại và được phototransistor thu nhận. Khi đó, phototransistor sẽ cho dòng điện đi qua, và ngõ ra của cảm biến sẽ ở mức logic thấp (LOW). Ngược lại, nếu bề mặt là màu đen hoặc tối màu, tia hồng ngoại sẽ bị hấp thụ gần như hoàn toàn. Phototransistor không nhận được ánh sáng phản xạ, do đó không cho dòng điện đi qua, và ngõ ra sẽ ở mức logic cao (HIGH). Bằng cách đọc các giá trị logic này từ một dãy cảm biến, Arduino có thể xác định chính xác vị trí của vạch đen.

4.2. Xây dựng lưu đồ giải thuật cho thuật toán xe dò line

Một lưu đồ giải thuật hiệu quả là chìa khóa để lập trình thành công. Thuật toán bắt đầu bằng việc khởi tạo các chân pin cho cảm biến và bộ điều khiển động cơ. Trong vòng lặp chính (loop), chương trình sẽ thực hiện các bước sau: 1. Đọc trạng thái của tất cả các cảm biến hồng ngoại. 2. Dựa trên tổ hợp trạng thái của các cảm biến, xác định vị trí của xe (lệch trái, lệch phải, hay ở trung tâm). Ví dụ, nếu cảm biến trung tâm phát hiện vạch đen, xe sẽ đi thẳng. Nếu cảm biến bên phải phát hiện vạch đen, xe cần rẽ phải. 3. Dựa trên vị trí đã xác định, gọi hàm điều khiển động cơ DC tương ứng để điều chỉnh tốc độ của bánh trái và bánh phải. 4. Lặp lại quá trình. Thuật toán này có thể được cải tiến bằng cách sử dụng bộ điều khiển PID (Proportional-Integral-Derivative) để xe di chuyển mượt mà hơn, đặc biệt là ở các khúc cua gấp.

4.3. Phân tích code xe tự hành Arduino và các hàm điều khiển

Phân tích code xe tự hành Arduino giúp hiểu rõ cách thuật toán được triển khai. Đoạn mã thường được chia thành các hàm chức năng rõ ràng: readSensors(), moveForward(), turnLeft(), turnRight(), và stopMotors(). Trong hàm setup(), các chân pin được cấu hình là INPUT hoặc OUTPUT. Trong hàm loop(), hàm readSensors() được gọi đầu tiên để cập nhật trạng thái cảm biến vào một mảng hoặc biến. Sau đó, một chuỗi các câu lệnh if-else if được sử dụng để kiểm tra các trường hợp khác nhau dựa trên giá trị của cảm biến và gọi các hàm điều khiển chuyển động phù hợp. Ví dụ: if (sensor[2] == HIGH) thì gọi moveForward(). else if (sensor[0] == HIGH) thì gọi turnRight(). Đoạn code điều khiển động cơ bên trong các hàm này sẽ sử dụng digitalWrite() để set chiều và analogWrite() để set tốc độ cho mạch cầu H L298N.

V. Kết quả và ứng dụng thực tiễn của mô hình xe điều khiển

Sau quá trình nghiên cứu và triển khai, đồ án đã đạt được những kết quả cụ thể, minh chứng cho sự thành công của việc áp dụng lý thuyết vào thực tiễn. Sản phẩm hoàn thiện bao gồm hai mô hình chức năng riêng biệt nhưng được xây dựng trên cùng một nền tảng linh kiện cốt lõi. Mô hình thứ nhất là một chiếc xe điều khiển bằng tay, có khả năng di chuyển linh hoạt theo các hướng tiến, lùi, trái, phải thông qua giao diện ứng dụng trên smartphone. Kết nối Bluetooth qua module HC-05 được kiểm chứng là ổn định trong phạm vi khoảng 10 mét. Cánh tay robot 4 bậc tích hợp trên xe hoạt động chính xác, có khả năng gắp và di chuyển các vật thể nhỏ, được điều khiển thông qua một giao diện web riêng biệt sử dụng ESP32. Mô hình thứ hai là một robot tự hành dò line, có khả năng tự động bám theo một vạch kẻ màu đen trên nền trắng một cách ổn định. Hệ thống cảm biến hồng ngoại hoạt động hiệu quả, giúp xe tự điều chỉnh hướng đi ở cả đoạn thẳng và các khúc cua. Tốc độ di chuyển của xe có thể được điều chỉnh trong code để phù hợp với độ phức tạp của đường đi. Những kết quả này không chỉ là sản phẩm của một báo cáo đồ án mà còn mở ra nhiều hướng ứng dụng thực tiễn, từ các mô hình giáo dục STEM, robot tham gia các cuộc thi công nghệ, đến việc phát triển thành các robot vận chuyển tự động trong không gian nhỏ như văn phòng hoặc thư viện.

5.1. Mô tả sản phẩm hoàn thiện xe điều khiển và robot tự hành

Sản phẩm hoàn thiện là một chiếc xe được lắp ráp trên một khung xe robot 3 bánh chắc chắn. Phần xe điều khiển bằng tay được trang bị Arduino Uno R3, module L298N để điều khiển hai động cơ DC giảm tốc và một cánh tay robot điều khiển bởi 4 động cơ servo. Nguồn điện được cung cấp bởi pin Lion (hoặc pin Lipo) đảm bảo thời gian hoạt động đủ dài. Giao diện điều khiển trực quan trên smartphone cho phép người dùng dễ dàng thao tác. Phần xe dò line sử dụng một cấu hình tương tự nhưng thay thế module Bluetooth bằng một dãy 5 cảm biến hồng ngoại TCRT5000 gắn phía trước gầm xe. Cả hai mô hình đều được lập trình bằng Arduino IDE với mã nguồn được tổ chức rõ ràng, dễ dàng sửa đổi và nâng cấp.

5.2. Đánh giá khả năng vận hành và độ chính xác của hệ thống

Khả năng vận hành của hệ thống được đánh giá qua nhiều bài kiểm tra thực tế. Xe điều khiển bằng tay cho thấy độ trễ thấp, phản ứng nhanh với lệnh từ người dùng. Cánh tay robot có thể thực hiện các thao tác gắp thả với độ chính xác tương đối. Đối với xe tự hành Arduino, xe có thể hoàn thành một vòng đua dò line với các khúc cua có bán kính khác nhau. Độ chính xác của việc bám line phụ thuộc vào tốc độ của xe và thuật toán điều khiển. Với thuật toán on-off đơn giản, xe có thể hơi "lắc" ở tốc độ cao. Tuy nhiên, ở tốc độ vừa phải, xe di chuyển rất ổn định. Nhìn chung, hệ thống đáp ứng tốt các mục tiêu đề ra trong đồ án, là một nền tảng vững chắc cho các nghiên cứu và phát triển sâu hơn.

VI. Hướng phát triển tương lai cho đồ án xe robot tự hành này

Mặc dù đồ án đã hoàn thành các mục tiêu cơ bản, vẫn còn rất nhiều tiềm năng để cải tiến và phát triển trong tương lai. Hướng phát triển trước mắt là hoàn thiện các chức năng hiện có và khắc phục những hạn chế còn tồn tại. Ví dụ, có thể tối ưu hóa code xe tự hành bằng cách áp dụng thuật toán điều khiển PID (Proportional-Integral-Derivative) thay vì thuật toán on-off đơn giản. Điều này sẽ giúp xe di chuyển mượt mà hơn, giảm thiểu dao động khi bám theo line và có thể vận hành ở tốc độ cao hơn. Một hướng đi quan trọng khác là nâng cấp khả năng tự hành của robot. Thay vì chỉ dò line, xe có thể được trang bị thêm các cảm biến khác để thực hiện các nhiệm vụ phức tạp hơn. Việc tích hợp cảm biến siêu âm HC-SR04 sẽ cho phép robot có khả năng phát hiện và xây dựng thuật toán tránh vật cản, giúp xe hoạt động an toàn trong môi trường có nhiều chướng ngại vật. Xa hơn, có thể nâng cấp bộ vi điều khiển trung tâm từ Arduino Uno lên các bo mạch mạnh mẽ hơn như ESP32 hoặc Raspberry Pi. Việc sử dụng ESP32 sẽ cho phép robot kết nối vào mạng Wi-Fi, mở ra khả năng điều khiển qua Internet và tích hợp vào các hệ sinh thái IoT (Internet of Things).

6.1. Nâng cấp thuật toán tránh vật cản với cảm biến siêu âm

Một trong những nâng cấp giá trị nhất là trang bị cho robot tự hành khả năng tránh vật cản. Điều này có thể được thực hiện bằng cách lắp thêm một hoặc nhiều cảm biến siêu âm HC-SR04. Cảm biến này đo khoảng cách đến vật thể phía trước bằng cách phát một sóng siêu âm và đo thời gian sóng phản xạ trở lại. Vi điều khiển sẽ liên tục đọc dữ liệu từ cảm biến. Khi khoảng cách đến vật cản nhỏ hơn một ngưỡng an toàn định trước, thuật toán tránh vật cản sẽ được kích hoạt. Thuật toán này có thể bao gồm các hành động đơn giản như: dừng lại, lùi lại một đoạn, sau đó quay sang một hướng khác để tìm đường đi mới. Việc kết hợp chức năng dò line và tránh vật cản sẽ tạo ra một robot thông minh hơn, có khả năng tự tìm đường trong môi trường phức tạp.

6.2. Tích hợp ESP32 cho kết nối Wifi và các ứng dụng IoT

Để đưa dự án lên một tầm cao mới, việc thay thế Arduino Uno bằng ESP32 là một lựa chọn hợp lý. ESP32 là một vi điều khiển mạnh mẽ với bộ xử lý lõi kép, tích hợp sẵn cả Wi-Fi và Bluetooth. Việc chuyển đổi này không chỉ tăng cường sức mạnh xử lý mà còn mở ra vô số ứng dụng IoT. Robot có thể kết nối với một máy chủ đám mây để gửi dữ liệu trạng thái (vị trí, tình trạng pin) và nhận lệnh điều khiển từ bất kỳ đâu trên thế giới có Internet. Người dùng có thể giám sát và điều khiển robot thông qua một trang web hoặc ứng dụng di động mà không bị giới hạn bởi phạm vi của Bluetooth. Hơn nữa, robot có thể tương tác với các thiết bị thông minh khác trong nhà, trở thành một phần của hệ thống tự động hóa lớn hơn, thể hiện đúng tinh thần của ngành lập trình nhúng hiện đại.

11/09/2025

Trích đoạn nội dung tài liệu

Mở đầu —_ Chương l: Tổng quan — Chương 2: Thiết kế xe điều khiên bằng tay — Chương 3: Thiết kế xe tự hành - Két Luan — Mã nguôn CHUONG 2: XE DIEU KHIEN BANG TAY 2.1 Giới thiệu các thành phần của xe điều khiển bằng tay 2.1 Adruino uno r3 Arduino UNO R3 là một bo mạch vi điều khiên dựa trên ATmega328P. Nó có 14 chân vào/ra số (trong đó 6 chân có thể được sử dụng như đầu ra PWM), 6 dau vao tương tự, một dao động gốm 16MHz, một kết nối USB, một jack nguồn, một tiêu đề ICSP và một nút đặt lại. Nó chứa tất cả những gi cần thiết để hỗ trợ vi điều khiến; chỉ cần kết nối nó với máy tính bằng cáp USB hoặc cấp nguồn cho nó băng bộ chuyển đôi AC sang DC hoặc pin để bắt dau. Arduino UNO R3 la mét phiên bản mới nhất của dòng sản phẩm Arduino UNO, được thiết kế để đáp ứng nhu cầu của các chuyên gia và nhà phát triển trong lĩnh vực điện tử và lập trình.

Arduino UNO R3 được trang bị vĩ điều khiến ATmesga328P, có tốc độ xử lý nhanh hơn và bộ nhớ lưu trữ lớn hơn so với các phiên bản trước đó. Arduino UNO R3 duoc tích hợp với các công giao tiếp như USB, UART, I2C và SPI, cho phép người dùng kết nối với các thiết bị khác như máy tính, cảm biến, màn hình và các module khác. Arduino UNO R3 cũng có thé được lập trinh bằng các ngôn ngữ khác nhau nhự C, C++, Python và Java, giúp người dùng có thê linh hoạt trong việc lập trình và phát triển ứng dụng. Hinh 1: Arduino uno r3 2.2 Mach LM2596 3A LM2596 là một bộ điều chỉnh điện áp giảm bước (buck converter) hiệu quả với độ chính xac cao trong việc điều chỉnh điện áp đầu ra.

Nó được thiết kế để chuyền đổi điện áp đầu vào có thể dao động từ 4.5V đến 40V thành điện áp đầu ra có thể điều chỉnh được từ 1. Điều này cho phép người dùng sử dụng LM2596 cho nhiều ứng dụng khác nhau, từ cung cấp nguồn cho mạch điện tử đơn giản đến các ứng dụng phức tạp hơn như mạch điều khiển động cơ và đèn LED. LM2596 có khả năng điều chỉnh tuyệt vời về đường và tải, với dòng tải đầu ra lên đến 3A. Điều này giúp người dùng có thê cung cấp nguồn cho các thiết bị điện tử có nhu cầu cao về đòng điện.

Đồng thời, LM2596 cũng có khả năng bảo vệ quá tải, quá áp, quá nhiệt, và ngắn mạch, giúp tăng tính ôn định và độ tin cậy của nguồn điện. LM2596 hoạt động ở tần số chuyên mạch 150kHz, giúp giảm kích thước các thành phan lọc và tăng độ hiệu quả của bộ điều chỉnh. Nó cũng hỗ trợ tính năng điều chỉnh đầu ra bằng cách sử dụng một điện trở hoặc một điện áp điều khiên. Hình 2: Mạch LM2596 3A 2.3 Module điều khiển động cơ L298N L298 là một mạch tích hợp đơn trong một gói 15 chân Multiwatt hoặc PowerSO20, được sử đụng như một trình điều khiến cầu H kép có điện áp cao và dòng điện cao.

Nó được thiết kế để chấp nhan cac mirc logic TTL tiêu chuẩn và điều khiến các tải ttr tinh nhu role, solenoid, động cơ DC và bước. L298 có khả năng điều khiển 2 động cơ DC với dòng tối đa lên đến 2A cho mỗi động cơ. Điều này cho phép người dùng dễ đàng điều khiến các động cơ có dòng điện cao, giup tang tính linh hoạt và hiệu quả trong các ứng dụng điện tử. L298 cũng có tính năng bảo vệ, bao gồm bảo vệ quá nhiệt, quá dòng, và quá áp.

Điều này giup tang độ tin cậy và độ én định của mạch điều khiến và bảo vệ các linh kiện khỏi các vấn đề hư hỏng có thể xảy ra trong quá trình sử dụng. L298 là một các mạch điều khiển cầu H kép phổ biến được sử dụng trong các ứng dụng điện tử, đặc biệt là trong lĩnh vực điều khiến động cơ. Nó được sử dụng rộng rãi trong các dự án robot, các thiết bị tự động hóa và các ứng dụng khác có liên quan đến việc điều khiến động cơ. Thông số kỹ thuật: ® Driver: L298N tích hợp hai mach cau H.

® Điện áp điều khiển: +5V ~ +12V. ¢ Dong toi đa cho mỗi cầu H lả: 2A (=>2A cho mỗi motor). © Dién áp của tín hiệu điều khiển: +5 V ~ +7 V. ® - Dòng của tín hiệu điều khiến: 0 ~ 36mA.

e©_ Công suất hao phí: 20W (khi nhiệt độ T = 75 °C) Nhiệt độ bảo quan: -25 °C ~ +130 °C. Hinh 3: Module diéu khién động cơ L298N 2.4 Động cơ JGB37 12V Động cơ DC JGB37 12V là một loại động cơ DC nhỏ, thường được sử dụng trong các ứng dụng điện tử và cơ khí nhỏ. Nó thường được sử dụng để làm chuyên động cho các robot nhỏ, các thiết bị tự động hóa và các dự án DIY khác. Động cơ DC JGB37 12V có thể được sử dụng với các bo mạch Arduino và các nên tảng phát triển khác có điện áp 12V ma không cần phải lo lắng về việc tăng hoặc giảm điện áp để phù hợp với động cơ.

Điều này giúp tăng tính linh hoạt và đơn giản hóa quá trình thiết kế và phát triển các ứng dụng điện tử. Động cơ DC JGB37 12V thường được điều khiến bằng các mạch điều khiển đơn giản, chắng hạn như mạch điều khiển L293D hoặc L298N. Các mạch điều khiến nảy có thể được sử dụng để điều khiển động cơ DC JGB37 12V với dòng tối đa khoảng 1A, tùy thuộc vào mạch điều khiến cụ thẻ. Hình 4: Động cơ JGB37 12V 2.5 ESP 32 38pin ESP32 là một bộ vi điều khién thuéc danh muc vi diéu khién trén chip công suất thấp và tiết kiệm chi phí.

Hầu hết tất cả các biến thế ESP32 đều tích hop Bluetooth va W1-Fi chế độ kép, làm cho nó có tính linh hoạt cao, mạnh mẽ và đáng tin cậy cho nhiều ứng dụng. Nó là sự kế thừa của vi điều khiển NodeMCU ESP8266 phô biến và cung cấp hiệu suất và tính năng tốt hơn. Bộ vi điều khiển ESP32 được sản xuất bởi Espressif Systems và được sử dụng rộng rãi trong nhiều ứng dụng khác nhau như loT, robot và tự động hóa. ESP32 cũng được thiết kế để tiêu thụ điện năng thấp, lý tưởng cho các ứng dụng chạy bằng pin.

Nó có hệ thống quản lý năng lượng cho phép nó hoạt động ở chế độ ngủ và chỉ thức dậy khi cần thiết, điều này có thê kéo dài tuổi thọ pin rất nhiều. Hình 5: ESP32 38pin 2.6 Servo mg90s MG90S là một loại động cơ servo vi m6 voi banh răng kim loại. Động cơ servo MG90S được thiết kế nhỏ sọn và nhẹ, với công suất đầu ra cao, được sử dụng rộng rãi trong các ứng dụng máy bay điều khiển từ xa, máy bay lên thẳng, cánh tay robot và các ứng dụng khác. Dong co servo MG90S co thể điều khiển được vị trí của trục đầu ra với độ chính xác cao, thông qua một tín hiệu điều khiển PWM (Pulse Width Modulation) từ một vi điều khiển hoặc một bộ điều khiển động cơ servo.

Điều nảy cho phép người dùng có thé điều khiến chính xác vị trí của động cơ servo MG90S và sử dụng nó trong các ứng dụng cần độ chính xác cao. Dong co servo MG908S co kich thước nhỏ gon và trong lượng nhẹ, giup nó được sử dụng rộng rãi trong các ứng dụng yêu cầu động cơ nhỏ gọn và nhẹ, đặc biệt là trong các ứng dụng máy bay điều khiển từ xa và robot di động. Động cơ servo MG90S cũng có độ bền cao và tuổi thọ dài, giúp nó trở thành một lựa chọn phổ biến trong các đự án DIY và ứng dụng thương mại. Hinh 6: Servo mg90s 2.7 Module bluetooth HC-05 Module thu phat Bluetooth HC-05 ding dé thiết lập kết nối Serial giữa 2 thiét bi bang song bluetooth.

Điểm đặc biệt của module bluetooth HC-05 là module có thể hoạt động được ở 2 chế độ: MASTER hoac SLAVE. Trong khi do, bluetooth module HC-06 chi hoạt động ở ché d6 SLAVE. Ở chế độ SLAVE: bạn cần thiết lập kết nối từ smartphone, laptop, usb bluetooth dé dò tim module sau d6 pair voi ma PIN là 1234. Sau khi pair thành công, bạn đã có | céng serial tir xa hoạt động ở baud rate 9600.

Ở chế độ MASTER: module sẽ tự động dò tìm thiết bị bluetooth khác ( module bluetooth HC-06, usb bluetooth, bluetooth của laptop.) 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. Module Bluetooth thu phát HC-05 được thiết kế nhỏ gon ra chan 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ế dé 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,. Hinh 7: Module bluetooth HC-05 2.8 Canh tay robot 4 bac - Dang: canh tay 4 bac (4DoF) - Chưa lắp ráp - Chất liệu: mica đen (bên ngoài là lớp giây xi măng phủ bảo vệ) - Tương thích: động cơ SG90/ Mp90s - Kích thước đề arm: 14cm x 9.5cm - Kích thước cánh tay (bán kính quay): 18-25cm; - Góc quay servo đế: 180 độ Hình 8: Cánh tay robot 4 bậc 2.9 Dau phat laser - Dién ap: 3-5V DC - Công suất: 5mW - Bước sóng: 650nm - Ảnh sáng: màu đỏ Hình 9: Đầu phát laser 2.2 Sơ đề khối Hình 10: Sơ đồ các khối của hệ thống xe điều khiển 2.3 Nguyên lí hoạt động Nguyên lý hoạt động của xe điều khiển bằng tay bao gồm hai phan chính: bộ điều khiến và chiếc xe. Bộ điều khiển: Bộ điều khiến là thiết bị dùng để điều khiển các chức nang cua xe, gdm các nút bấm, cần gạt và bộ điều khiến tần số.

Khi người sử dụng nhắn các nút bấm hoặc cần gat trên bộ điều khiến, tín hiệu điều khiển sẽ được gửi tới chiếc xe thông qua sóng radio hoặc tín hiệu hồng ngoại. Bộ điều khiên cùng cân được câp nguôn băng pin hoặc bộ sạc. Chiéc xe: Chiéc xe la phan chủ động, được trang bị động cơ, hệ thông lái và hệ thống phanh. Khi nhận được tín hiệu điều khiến từ bộ điều khiến, chiếc xe sẽ thực hiện các chức năng tương ứng, chẳng hạn như tăng tốc, giảm tốc, lái xe và phanh.

Ngoài ra, chiếc xe cũng cần được cấp nguồn băng pin hoặc bộ sạc. Khi người sử dụng điều khiển xe bằng tay, tín hiệu điều khiển sẽ được gửi từ bộ điều khiến tới chiếc xe thông qua sóng radio hoặc tín hiệu hồng ngoại. Chiếc xe sẽ nhận và xử lý tín hiệu này để thực hiện các chức năng tương ứng.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ