Báo cáo Đồ án môn học: Điều khiển xe robot dò line, tránh vật cản (ĐH Bách Khoa)

Đề tài điều khiển xe robot: Tìm hiểu các phương pháp, công nghệ điều khiển xe robot hiệu quả. Ứng dụng trong thực tế và tiềm năng phát triển.

Chuyên ngành

Ngành Tự Động Hóa

Người đăng

Ẩn danh

Thể loại

Báo cáo đồ án môn học

2014

42
3
0

Phí lưu trữ

30 Point

Tóm tắt

I. Hướng dẫn toàn tập đề tài điều khiển xe robot tự hành

Đề tài điều khiển xe robot là một lựa chọn phổ biến và hấp dẫn cho các đồ án tốt nghiệp và dự án nghiên cứu của sinh viên ngành kỹ thuật, tự động hóa và công nghệ thông tin. Việc phát triển một xe robot tự hành không chỉ là cơ hội để áp dụng kiến thức lý thuyết vào thực tiễn mà còn mở ra nhiều hướng phát triển tiềm năng. Một dự án như vậy thường bao gồm các chức năng cốt lõi như đi theo vạch (line following) và tránh vật cản (obstacle avoidance), đòi hỏi sự kết hợp nhuần nhuyễn giữa thiết kế cơ khí, lựa chọn linh kiện điện tử, và lập trình thuật toán điều khiển phức tạp. Mục tiêu chính của đề tài là xây dựng một mô hình robot có khả năng di chuyển tự động trong một môi trường xác định, dựa trên dữ liệu từ các cảm biến. Quá trình thực hiện bao gồm các bước cơ bản: thiết kế và lắp ráp khung xe, lựa chọn vi điều khiển trung tâm như Arduino Uno R3 hoặc Raspberry Pi, tích hợp các module cảm biến và cơ cấu chấp hành, và cuối cùng là phát triển phần mềm điều khiển. Tài liệu này sẽ cung cấp một cái nhìn tổng quan, từ việc xác định mục tiêu, các bước thực hiện chi tiết, đến việc phân tích các giải pháp công nghệ và thuật toán phổ biến, giúp người đọc có một lộ trình rõ ràng để hoàn thành báo cáo đề tài một cách hiệu quả và đạt kết quả cao.

1.1. Tầm quan trọng của xe robot tự hành trong thực tiễn

Mobile robot, hay xe robot tự hành, đang dần khẳng định vai trò không thể thiếu trong nhiều lĩnh vực của đời sống và sản xuất công nghiệp. Trong công nghiệp, chúng được ứng dụng để vận chuyển hàng hóa tự động trong nhà kho (AGV - Automated Guided Vehicle), kiểm tra và giám sát dây chuyền sản xuất. Trong đời sống, robot hút bụi tự động, robot giao hàng là những ví dụ điển hình. Việc nghiên cứu và phát triển các loại robot này, đặc biệt là các mô hình đơn giản như robot đi theo vạchtránh vật cản, mang lại giá trị thực tiễn to lớn. Chúng không chỉ giúp tự động hóa các công việc lặp đi lặp lại, nguy hiểm mà còn là nền tảng để phát triển các hệ thống tự hành phức tạp hơn trong tương lai, chẳng hạn như xe tự lái. Do đó, việc nắm vững nguyên lý hoạt động và công nghệ đằng sau chúng là một kỹ năng quan trọng.

1.2. Mục tiêu và phạm vi của đồ án tốt nghiệp xe robot

Một đồ án tốt nghiệp về điều khiển xe robot thường đặt ra các mục tiêu cụ thể và có phạm vi rõ ràng. Mục tiêu chính là thiết kế và chế tạo thành công một mô hình robot có khả năng thực hiện ít nhất hai chức năng: dò và đi theo một vạch đen trên nền trắng, và tự động phát hiện, tránh các vật cản phía trước. Phạm vi của đề tài tập trung vào việc: (1) Lựa chọn và tích hợp các linh kiện phần cứng phù hợp, bao gồm vi điều khiển, cảm biến, động cơ DC, và mạch cầu H L298N. (2) Xây dựng và gỡ lỗi các thuật toán điều khiển, đặc biệt là thuật toán PID để ổn định tốc độ và chuyển động. (3) Viết báo cáo đề tài chi tiết, trình bày rõ từ sơ đồ nguyên lý, lưu đồ giải thuật, đến kết quả thực nghiệm và đánh giá. Đề tài không yêu cầu các công nghệ quá phức tạp như xử lý ảnh thời gian thực hay học máy, mà tập trung vào các kiến thức nền tảng về hệ thống nhúng và lý thuyết điều khiển tự động.

1.3. Sơ lược các bước chính để thực hiện một dự án robot

Để thực hiện thành công dự án, cần tuân theo một quy trình có hệ thống. Bước đầu tiên là lên ý tưởng và thiết kế cơ khí, bao gồm việc chế tạo khung xe và bố trí các bánh xe, động cơ sao cho cân bằng và chắc chắn. Bước thứ hai là lựa chọn phần cứng điện tử. Đây là giai đoạn chọn bộ não cho robot, có thể là Arduino Uno R3, ESP32 hoặc STM32, cùng với các module cần thiết như cảm biến dò line, cảm biến siêu âm HC-SR04, module bluetooth HC-05 để điều khiển từ xa, và mạch lái động cơ. Bước ba là lắp ráp và kết nối các thành phần theo sơ đồ nguyên lý đã thiết kế. Bước cuối cùng và quan trọng nhất là lập trình. Giai đoạn này bao gồm việc viết code để đọc dữ liệu cảm biến, xử lý và áp dụng các thuật toán điều khiển để ra quyết định, sau đó xuất tín hiệu PWM để điều khiển tốc độ động cơ DC. Quá trình này đòi hỏi nhiều lần thử nghiệm và hiệu chỉnh để đạt được hiệu suất mong muốn.

II. Các thách thức chính khi điều khiển xe robot dò line

Việc thực hiện một đề tài điều khiển xe robot tuy thú vị nhưng cũng đi kèm với nhiều thách thức đáng kể. Một trong những khó khăn đầu tiên là việc lựa chọn linh kiện sao cho phù hợp với mục tiêu và ngân sách. Sinh viên thường phân vân giữa các nền tảng phổ biến như Arduino Uno R3 với sự đơn giản, cộng đồng lớn và Raspberry Pi với khả năng xử lý mạnh mẽ hơn. Thách thức thứ hai đến từ phần cơ khí. Một khung xe được thiết kế thiếu chính xác, không cân bằng hoặc có quán tính lớn sẽ ảnh hưởng trực tiếp đến khả năng di chuyển ổn định của robot. Theo tài liệu nghiên cứu, "quán tính lớn" là một trong những nguyên nhân chính gây ra "vọt lố lớn và rẽ không chuẩn". Thách thức lớn nhất nằm ở phần thuật toán. Việc hiệu chỉnh các tham số cho thuật toán PID là một công việc phức tạp, đòi hỏi sự kiên nhẫn và kiến thức sâu về lý thuyết điều khiển. Một bộ PID được tinh chỉnh không tốt có thể khiến xe dao động liên tục, phản ứng chậm hoặc không thể bám theo vạch ở tốc độ cao. Cuối cùng, việc tích hợp và gỡ lỗi toàn bộ hệ thống, từ phần cứng đến phần mềm, cũng là một công đoạn tốn nhiều thời gian và công sức.

2.1. Vấn đề lựa chọn linh kiện Arduino STM32 hay Raspberry Pi

Lựa chọn vi điều khiển là quyết định nền tảng cho cả dự án. Arduino Uno R3 là lựa chọn phổ biến nhất cho người mới bắt đầu nhờ thư viện hỗ trợ phong phú và môi trường lập trình đơn giản. Tuy nhiên, khả năng xử lý của nó có phần hạn chế. Nền tảng STM32, như được sử dụng trong tài liệu gốc, cung cấp hiệu năng cao hơn, nhiều ngoại vi và khả năng đáp ứng thời gian thực tốt hơn, phù hợp cho các ứng dụng đòi hỏi tính toán phức tạp như thuật toán PID ở tần số lấy mẫu cao. Trong khi đó, Raspberry Pi là một máy tính nhúng hoàn chỉnh chạy hệ điều hành Linux. Nó vượt trội khi dự án yêu cầu các tác vụ nặng như xử lý ảnh để nhận diện line hoặc vật cản, hoặc cần kết nối mạng qua module wifi ESP8266 tích hợp. Việc lựa chọn nền tảng nào phụ thuộc vào yêu cầu của đề tài, kinh nghiệm của người thực hiện và ngân sách.

2.2. Khó khăn trong việc cân bằng cơ khí và quán tính xe

Yếu tố cơ khí thường bị xem nhẹ nhưng lại có ảnh hưởng quyết định đến sự ổn định của robot. Báo cáo gốc đã chỉ ra rằng "về mặt cơ khí xe được thi công thiếu chính xác, tốc độ 2 bánh không đều do mang tải khác nhau" là nguyên nhân gây ra sai số. Một khung xe quá nặng hoặc phân bổ trọng lượng không đều sẽ tạo ra quán tính lớn, khiến robot khó dừng lại hoặc chuyển hướng đột ngột. Điều này dẫn đến hiện tượng vọt lố (overshoot) khi vào cua, tức là xe chạy ra ngoài vạch trước khi kịp điều chỉnh lại. Để khắc phục, cần thiết kế khung xe nhẹ, cứng vững, trọng tâm thấp và đảm bảo hai động cơ DC và bánh xe được lắp đặt đối xứng, chính xác. Việc sử dụng vật liệu phù hợp và thiết kế tối ưu là chìa khóa để giảm thiểu các vấn đề liên quan đến quán tính.

2.3. Lập trình và hiệu chỉnh thuật toán PID cho xe robot

Việc triển khai thuật toán PID là cốt lõi của việc điều khiển xe robot bám line một cách mượt mà. Thách thức không nằm ở việc viết code cho công thức PID, mà ở việc "tuning" – hiệu chỉnh ba hằng số Kp, Ki, và Kd. Kp (tỉ lệ) quyết định robot phản ứng nhanh hay chậm với sai số. Ki (tích phân) giúp triệt tiêu sai số xác lập, đảm bảo xe chạy đúng tâm vạch. Kd (vi phân) giúp giảm vọt lố và ổn định hệ thống. Việc tìm ra bộ ba thông số tối ưu là một quá trình thử và sai có hệ thống. Tài liệu gốc cũng đề cập đến việc "Các thông số Kp, Ki, Kd được lựa chọn sau nhiều lần thử nghiệm trong tình trạng mang tải". Một phương pháp hiệu chỉnh không đúng có thể khiến robot dao động mạnh quanh vạch, hoặc di chuyển rất chậm và ì ạch. Đây là phần đòi hỏi sự kiên trì và hiểu biết sâu sắc nhất trong toàn bộ luận văn.

III. Phương pháp xây dựng phần cứng điều khiển xe robot

Xây dựng phần cứng là bước hiện thực hóa thiết kế của một hệ thống điều khiển xe robot. Trái tim của hệ thống là khối vi điều khiển, nơi tiếp nhận dữ liệu từ cảm biến và đưa ra quyết định điều khiển. Các lựa chọn phổ biến bao gồm Arduino Uno R3, ESP32, hoặc các dòng vi điều khiển mạnh mẽ hơn như STM32. Xung quanh vi điều khiển là các module chức năng. Khối cảm biến có nhiệm vụ thu thập thông tin từ môi trường, điển hình là cụm cảm biến dò line sử dụng photodiode để phân biệt vạch đen/nền trắng và cảm biến siêu âm HC-SR04 để đo khoảng cách tới vật cản. Khối chấp hành thực thi các lệnh điều khiển, bao gồm hai động cơ DC được gắn vào bánh xe. Để vi điều khiển có thể điều khiển được động cơ, cần một mạch công suất trung gian, và mạch cầu H L298N là một lựa chọn kinh điển và hiệu quả. Toàn bộ các thành phần này được cấp nguồn từ pin và kết nối với nhau theo một sơ đồ nguyên lý được thiết kế cẩn thận, đảm bảo sự ổn định và an toàn trong quá trình vận hành.

3.1. Sơ đồ nguyên lý và vai trò vi điều khiển trung tâm

Sơ đồ nguyên lý là bản vẽ kỹ thuật chi tiết mô tả cách kết nối tất cả các linh kiện điện tử trong xe robot. Nó là kim chỉ nam cho quá trình lắp ráp và gỡ lỗi. Trung tâm của sơ đồ là vi điều khiển (MCU). MCU đóng vai trò là bộ não, thực hiện các nhiệm vụ: đọc tín hiệu analog từ cảm biến dò line qua chân ADC, nhận tín hiệu xung từ cảm biến siêu âm HC-SR04, tính toán sai số và áp dụng thuật toán PID, sau đó xuất tín hiệu PWM (Pulse Width Modulation) để điều khiển tốc độ và chiều quay của động cơ. Trong báo cáo đề tài gốc, vi điều khiển STM32F4xx được sử dụng nhờ hiệu năng cao và nhiều bộ định thời (timer) để xử lý đồng thời nhiều tác vụ. Việc thiết kế một sơ đồ rõ ràng, có chú thích đầy đủ là yếu tố tiên quyết cho một dự án thành công.

3.2. Lắp đặt cảm biến Cảm biến siêu âm và dò line

Cảm biến là giác quan của robot. Cụm cảm biến dò line thường bao gồm từ 3 đến 5 cặp LED hồng ngoại và photodiode (hoặc quang trở). LED phát ra tia hồng ngoại, tia này sẽ phản xạ lại từ bề mặt. Nền trắng phản xạ tốt, nền đen hấp thụ gần như hoàn toàn. Photodiode sẽ nhận lượng tia phản xạ này và chuyển thành tín hiệu điện áp, giúp vi điều khiển xác định vị trí của xe so với vạch. Cảm biến siêu âm HC-SR04 hoạt động dựa trên nguyên lý sóng âm. Nó phát ra một chùm sóng siêu âm và đo thời gian sóng phản xạ lại từ vật cản. Dựa vào thời gian này, vi điều khiển có thể tính toán chính xác khoảng cách, từ đó đưa ra quyết định rẽ hoặc dừng để tránh vật cản. Việc lắp đặt các cảm biến này ở vị trí phù hợp (cảm biến line ở phía trước và gần mặt đất, cảm biến siêu âm ở phía trước và hướng thẳng) là rất quan trọng để đảm bảo độ chính xác.

3.3. Thiết kế mạch công suất dùng động cơ DC và mạch cầu H L298N

Vi điều khiển hoạt động ở điện áp thấp (3.3V hoặc 5V) và dòng rất nhỏ, không thể cấp đủ năng lượng để chạy động cơ DC. Do đó, cần một mạch công suất trung gian, hay còn gọi là driver động cơ. Mạch cầu H L298N là một module tích hợp rất phổ biến cho mục đích này. Nó chứa IC L298N có khả năng điều khiển hai động cơ DC độc lập về cả tốc độ và chiều quay. Nguyên lý hoạt động của mạch cầu H là sử dụng 4 công tắc (transistor) để đảo chiều dòng điện qua động cơ, từ đó đảo chiều quay. Tốc độ động cơ được điều khiển bằng cách cấp tín hiệu PWM vào chân Enable của L298N. Độ rộng xung PWM càng lớn, điện áp trung bình cấp cho động cơ càng cao, và động cơ quay càng nhanh. Sử dụng L298N giúp đơn giản hóa thiết kế mạch và bảo vệ vi điều khiển khỏi các dòng điện lớn từ động cơ.

IV. Bí quyết lập trình điều khiển xe robot với thuật toán PID

Phần mềm là linh hồn của hệ thống điều khiển xe robot, quyết định cách robot hành xử và phản ứng với môi trường. Ngôn ngữ lập trình phổ biến cho các nền tảng nhúng như Arduino hay STM32 là lập trình C++, trong khi lập trình Python thường được sử dụng trên Raspberry Pi. Cấu trúc chương trình chính thường là một vòng lặp vô tận, trong đó robot liên tục thực hiện chu trình: Đọc dữ liệu cảm biến -> Xử lý dữ liệu và tính toán -> Ra quyết định điều khiển. Trọng tâm của phần mềm là việc triển khai các thuật toán thông minh. Đối với chức năng dò line, thuật toán PID là công cụ mạnh mẽ nhất để điều khiển tốc độ hai động cơ, giúp xe di chuyển mượt mà và bám sát vạch. Đối với chức năng tránh vật cản, thuật toán có thể đơn giản là dừng lại và rẽ khi phát hiện chướng ngại vật trong một khoảng cách nhất định. Ngoài ra, có thể tích hợp các module truyền thông không dây như module bluetooth HC-05 hoặc module wifi ESP8266 để cho phép điều khiển từ xa hoặc giám sát trạng thái robot thông qua điện thoại hoặc máy tính, mở ra nhiều tính năng và ứng dụng thú vị.

4.1. Nguyên lý hoạt động của giải thuật PID trong điều khiển

Thuật toán PID (Proportional - Integral - Derivative) là một cơ chế phản hồi vòng kín được sử dụng để giảm thiểu sai số giữa giá trị mong muốn (SP - Setpoint) và giá trị đo được (PV - Process Variable). Trong bài toán dò line, SP là vị trí trung tâm của vạch (sai số bằng 0), và PV là vị trí hiện tại của xe được tính toán từ dữ liệu cảm biến dò line. Thuật toán bao gồm ba thành phần: (1) Khâu tỉ lệ (P) tạo ra một tín hiệu điều khiển tỉ lệ với sai số hiện tại. (2) Khâu tích phân (I) tính tổng các sai số trong quá khứ, giúp loại bỏ sai số xác lập. (3) Khâu vi phân (D) dự đoán sai số trong tương lai dựa trên tốc độ thay đổi của sai số, giúp hệ thống ổn định và giảm vọt lố. Báo cáo gốc mô tả công thức tính toán: u(t) = Kp*e(t) + Ki*∫e(t)dt + Kd*de(t)/dt. Việc hiểu rõ vai trò của từng thành phần là chìa khóa để hiệu chỉnh thành công bộ điều khiển.

4.2. Lập trình C cho thuật toán dò line và tránh vật cản

Với lập trình C++, việc triển khai thuật toán cho robot dò line và tránh vật cản trở nên hiệu quả. Trong hàm loop() chính, chương trình sẽ đọc giá trị từ các photodiode của cảm biến dò line. Dựa trên tổ hợp giá trị này (ví dụ: 010 là đang ở giữa, 100 là lệch trái), chương trình tính toán một giá trị sai số. Sai số này sau đó được đưa vào hàm tính toán PID để cho ra một giá trị điều chỉnh. Giá trị này sẽ được cộng/trừ vào tốc độ cơ bản của hai động cơ DC để tạo ra sự chênh lệch tốc độ, giúp xe bẻ lái về phía vạch. Đối với thuật toán tránh vật cản, chương trình sẽ định kỳ đọc khoảng cách từ cảm biến siêu âm HC-SR04. Nếu khoảng cách nhỏ hơn một ngưỡng an toàn (ví dụ 20cm), chương trình sẽ ưu tiên thực hiện hành vi tránh né, chẳng hạn như dừng lại, lùi và xoay một góc 90 độ trước khi tiếp tục dò line. Cung cấp một code mẫu rõ ràng, có chú thích là một phần quan trọng của một luận văn chất lượng.

4.3. Tích hợp module Bluetooth HC 05 cho điều khiển từ xa

Việc tích hợp module Bluetooth HC-05 mở ra khả năng điều khiển từ xa cho xe robot. Module này giao tiếp với vi điều khiển qua giao thức nối tiếp UART (chân TX, RX). Một ứng dụng trên điện thoại thông minh (Android hoặc iOS) có thể được phát triển để gửi các lệnh điều khiển (tiến, lùi, trái, phải, dừng, chuyển chế độ tự hành/bằng tay) đến module Bluetooth. Vi điều khiển nhận các ký tự lệnh này và thực thi hành động tương ứng bằng cách điều khiển trực tiếp mạch cầu H L298N. Tính năng này rất hữu ích trong giai đoạn gỡ lỗi cơ khí và kiểm tra hoạt động của động cơ. Ngoài ra, nó cũng cho phép người dùng can thiệp khi chế độ tự hành gặp sự cố, tăng tính linh hoạt và an toàn cho robot. Tương tự, module wifi ESP8266 hoặc ESP32 cũng có thể được sử dụng để điều khiển qua mạng Wi-Fi, mở rộng phạm vi điều khiển và kết nối robot với hệ sinh thái IoT.

V. Ứng dụng thực tiễn và kết quả từ đề tài xe robot tự hành

Việc đánh giá kết quả là bước cuối cùng nhưng không kém phần quan trọng trong một đề tài điều khiển xe robot. Kết quả không chỉ là một sản phẩm hoạt động được mà còn là những số liệu, phân tích và bài học kinh nghiệm rút ra. Dựa trên tài liệu gốc, kết quả thực nghiệm cho thấy xe có thể hoạt động nhưng "vọt lố khá lớn" và "tốc độ xe chậm". Đây là những nhận định quan trọng, cho thấy hệ thống hoạt động ở mức cơ bản nhưng cần được cải thiện. Việc phân tích nguyên nhân, chẳng hạn như do "cơ khí thiếu chính xác" và "quán tính lớn", thể hiện sự hiểu biết sâu sắc của người thực hiện. Một trong những công cụ hữu ích để kiểm tra thuật toán trước khi triển khai thực tế là sử dụng phần mềm mô phỏng. Mô phỏng Proteus cho phép kiểm tra mạch điện tử và logic hoạt động của code trên một mô hình ảo, giúp phát hiện sớm các lỗi thiết kế. Cuối cùng, việc cung cấp một bộ tài liệu hoàn chỉnh, bao gồm báo cáo đề tài, sơ đồ nguyên lýcode mẫu, là kết quả giá trị nhất, có thể được tham khảo và phát triển bởi các nhóm nghiên cứu sau này.

5.1. Phân tích kết quả Độ chính xác và sai số vọt lố

Đánh giá hiệu suất của xe robot tự hành cần dựa trên các tiêu chí định lượng. Độ chính xác có thể được đo bằng khả năng bám sát tâm vạch trên các đoạn đường thẳng và đường cong. Sai số vọt lố (overshoot) là chỉ số quan trọng, thể hiện khoảng cách tối đa mà xe lệch ra khỏi vạch khi vào một khúc cua gấp. Như tài liệu gốc đã kết luận, "Những điểm rẽ mạnh thì xe có sai số còn lớn". Nguyên nhân có thể do hằng số Kd của bộ thuật toán PID chưa đủ lớn để hãm lại xu hướng vọt lố, hoặc do tốc độ xử lý của vi điều khiển và tốc độ phản ứng của động cơ không đủ nhanh. Việc ghi lại video quá trình xe chạy và phân tích lại là một phương pháp hiệu quả để quan sát và đánh giá các hiện tượng này. Từ đó, có thể đưa ra các đề xuất khắc phục như "thiết kế lại cơ khí chính xác hơn" hoặc "tìm động cơ nhỏ hơn để giảm quán tính".

5.2. Hướng dẫn mô phỏng Proteus và kiểm thử thực tế

Trước khi hàn mạch và lắp ráp, việc mô phỏng Proteus có thể tiết kiệm rất nhiều thời gian và chi phí. Proteus cho phép người dùng vẽ sơ đồ nguyên lý, kết nối các linh kiện ảo như vi điều khiển (ví dụ: Arduino Uno R3), mạch cầu H L298N, và các cảm biến. Người dùng có thể nạp file hex (được biên dịch từ code) vào vi điều khiển ảo và quan sát dạng sóng tín hiệu, trạng thái logic tại các chân. Mặc dù mô phỏng không thể tái tạo chính xác các yếu tố cơ khí và nhiễu trong thế giới thực, nó là một công cụ vô giá để kiểm tra logic thuật toán và phát hiện các lỗi kết nối sai. Sau khi mô phỏng thành công, bước tiếp theo là kiểm thử trên mô hình thực tế. Quá trình này bao gồm việc hiệu chỉnh các thông số PID, kiểm tra khả năng tránh vật cản ở các khoảng cách khác nhau, và đo lường tốc độ tối đa mà xe vẫn có thể bám line ổn định.

5.3. Tham khảo code mẫu và báo cáo đề tài hoàn chỉnh

Đối với sinh viên, việc tham khảo các luận văn, báo cáo đề tàicode mẫu từ các dự án trước là một nguồn tài nguyên quý giá. Một báo cáo hoàn chỉnh cung cấp cái nhìn tổng quan về cấu trúc của một dự án nghiên cứu, từ phần đặt vấn đề, tổng quan lý thuyết, thiết kế, thi công, đến kết quả và kết luận. Các đoạn code mẫu được cung cấp trong tài liệu gốc là ví dụ thực tế về cách triển khai các hàm đọc ADC, tính toán PID, và điều khiển động cơ bằng lập trình C++ trên nền tảng STM32. Việc phân tích các tài liệu này giúp người đọc học hỏi từ kinh nghiệm của người đi trước, tránh được những sai lầm phổ biến và có được nền tảng vững chắc để phát triển các ý tưởng sáng tạo của riêng mình. Các tài liệu này thường được chia sẻ trên các diễn đàn học thuật hoặc thư viện của các trường đại học.

VI. Tương lai của đề tài điều khiển xe robot và hướng phát triển

Một đề tài điều khiển xe robot không chỉ dừng lại ở việc hoàn thành các chức năng cơ bản. Nó là một nền tảng vững chắc để mở ra nhiều hướng phát triển và nâng cấp thú vị, bắt kịp với xu hướng công nghệ hiện đại. Hướng phát triển đầu tiên và cơ bản nhất là cải tiến những gì đang có. Điều này bao gồm việc tối ưu hóa thiết kế cơ khí để giảm trọng lượng và quán tính, đồng thời tìm ra một bộ thông số thuật toán PID chính xác hơn để xe có thể chạy nhanh và ổn định hơn trên các địa hình phức tạp. Hướng thứ hai là nâng cấp năng lực tính toán và cảm biến của robot. Thay thế Arduino Uno R3 bằng Raspberry Pi cho phép triển khai các thuật toán cao cấp hơn như xử lý ảnh thời gian thực. Robot có thể sử dụng camera để nhận dạng đường đi, biển báo, hoặc thậm chí là đi theo một đối tượng cụ thể. Hướng thứ ba là tăng cường khả năng kết nối. Tích hợp các module wifi ESP8266 hoặc ESP32 không chỉ để điều khiển từ xa mà còn để kết nối robot với Internet (IoT), cho phép giám sát, thu thập dữ liệu và điều khiển từ bất kỳ đâu trên thế giới. Những cải tiến này biến một đồ án sinh viên thành một sản phẩm công nghệ tiềm năng.

6.1. Cải tiến cơ khí và tối ưu hóa thuật toán điều khiển PID

Hướng phát triển tự nhiên nhất là khắc phục các nhược điểm đã được chỉ ra trong báo cáo gốc. Về cơ khí, có thể sử dụng công nghệ in 3D để thiết kế một khung xe tùy chỉnh, nhẹ và tối ưu về mặt khí động học. Lựa chọn động cơ DC có hộp giảm tốc với tỷ số truyền phù hợp sẽ cải thiện mô-men xoắn và khả năng điều khiển ở tốc độ thấp. Về thuật toán, thay vì hiệu chỉnh PID thủ công, có thể nghiên cứu các phương pháp tự động dò thông số (PID auto-tuning). Ngoài ra, có thể áp dụng các thuật toán điều khiển nâng cao hơn như Fuzzy Logic Control hoặc Model Predictive Control để xử lý các tình huống phức tạp mà PID truyền thống khó đáp ứng, giúp xe thích ứng tốt hơn với sự thay đổi về ma sát hoặc tải trọng.

6.2. Nâng cấp với Raspberry Pi và công nghệ xử lý ảnh

Sử dụng Raspberry Pi và một module camera sẽ nâng tầm dự án lên một bậc. Với sức mạnh của lập trình Python và các thư viện xử lý ảnh mã nguồn mở như OpenCV, robot không còn phụ thuộc vào vạch kẻ vật lý. Nó có thể được lập trình để nhận diện làn đường trong môi trường thực, đọc biển báo giao thông đơn giản, hoặc thậm chí là đi theo một vật thể có màu sắc nhất định. Hướng đi này gần hơn với công nghệ xe tự lái thực tế, mở ra vô số đề tài nghiên cứu thú vị như xây dựng bản đồ, định vị (SLAM - Simultaneous Localization and Mapping), và học tăng cường (Reinforcement Learning) để robot tự học cách di chuyển tối ưu trong một môi trường mới.

6.3. Tích hợp Module Wifi ESP8266 ESP32 cho kết nối IoT

Kết nối robot với Internet of Things (IoT) là một xu hướng phát triển mạnh mẽ. Bằng cách tích hợp module wifi ESP8266 hoặc ESP32, robot có thể gửi dữ liệu hoạt động (vị trí, tốc độ, trạng thái cảm biến) lên một nền tảng đám mây (cloud server) theo thời gian thực. Người dùng có thể giám sát toàn bộ đội xe robot từ một giao diện web, ra lệnh hoặc cập nhật phần mềm từ xa. Hơn nữa, robot có thể nhận thông tin từ các nguồn khác trên Internet, ví dụ như nhận lệnh di chuyển đến một vị trí được chỉ định trên bản đồ trực tuyến. Điều này biến robot từ một thiết bị hoạt động độc lập thành một phần của một hệ thống thông minh, phối hợp lớn hơn, phù hợp cho các ứng dụng trong nhà kho thông minh hoặc nông nghiệp chính xác.

11/09/2025

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

MỞ ĐẦU. re 6 TL tê na na. 6 IV Mue dich chon Q6tai ooo. Sor lurore cae bur6re thurc 8n.

6 Phần II: GIỚI THIỆU VI XỬ LÍ VÀ THÀNH PHẦN CỦA MẠCH. ene re eee be tae te eene ea TOO Đặc trưng của STM324xx. LH TH SH HH TH kh ng nhà nà hà cà 8 ID nu a8aadđiiiaidia'i'iiảẢẨỔỎitiŸiẢẳẦ. cọ ST TK HH TH TH HT nà Ki th vn hi ng 1.5 Reset and clock control.6 General purpose IOs (GPIO).

cece cence cece eect eee ene ce eae eae eae tae tees 15 I2 Những modul của STMLILTIHTTIxx được sử dụng trong bài toán .1 TIM2, TIM3, TIM4, TÌMS. HH HH HS TH TH Hà nh kh ke ra 16 l&xzaẬẦẬAẦlẦẳẦẦaẳaẳẳiiiiiiiảdddddiddiddddiii.- I3 Những modul đi ât khiển.---cQ Q Qn SH HS TH TH ng ng Tà tk tà tư nh ty và 18 11.cQQQQQQQ nee tener nerd en HH HH tk nh nh xen 18 IV i00 0n). haađađaẳầđaiiiiiiiiilẳddddiiiii.3 Mạch chốt tín hiệu để giao tiếp với vi đi 'âi khiển STM32E4xx.4 Mạch xác định line dùng phofodliode. cà vn vn se 24 BÁO CÁO ĐỒ ÁN MÔN HỌC 2 11.5 Module cam bién siéu 4m đo khoảng cách HC-SR04:.5 Tich horp cdc module trén lén chung mét mach để có thể gắn trực ¡1138 s00 6⁄25 2.

2 Phần II: GIẢI THUẬT VÀ C(ƯƠNG TRÌN(Ð)ỀU KHIỂN.1 Giải thuật tính góc và hướ ng r. co cà SH nh ky 28 IH.2 Giải thuật P)D đi ` khiển tốc độ L] động cơ xe.3 Giải thuật đi`âi khiển xe tránh vật cản:.-ccc cà 35 ))ïMÍ@0).01-ð13):)ì 0:1 0-ì84,)1-addađađaaiaiiiaảäảäảẢ4Ả. ennes 36 Phần IV: KẾT LUẬN VÀ (ƯỚNG PHÁT TRIỂN. 2 222 ESnnS SE SE kE TK ày 41 Phần V: TÀI LIỆU THAM KHẢO.

c1 2c 211 1192112 E191 HH ng Tnhh nà 42 BÁO CÁO ĐỒ ÁN MÔN HỌC 2 Phil: Mo da I.1 Giới thiệu đ Êtài: Ngày nay, robotic đã đạt được những thành tựu to lớn trong sản xuất công nghiệp cũng như tron ø đời sống. Sản xuất robot là nghành công nghiệp trị gid hang ti USD và ngày càng phát triển mạnh, trong các họ robot chúng ta không thể không nhắc tới mobile robot với những đặc thù riêng mà các loại robot khác không có. Mobile robot có thể di chuyển một cách rất linh hoạt, do đó tạo nên không gian hoạt động lớn và cho đ ến nay nó đã dần khẳng định vai trò quan trọng không thể thiếu trong nhỉ ầi lĩnh vực, thu hút được rất nhi `âi sự đ ân tư và nghiên cứu. Mobile robot cũng được chia ra làm nhi âu loại: robot học đương đi, robot dò đường line, robot tránh vật cản, robot tìm đườn g cho mê cung,.trong số đó robot dò đương line, tránh vật cản dễ dàng ứng dụng nhi ầu trong cuộc sống.

Việc phát triển loại robot này sẽ phục vụ rất đắc lực cho con người. L2 Mục đích chọn đ tài: Robot dò line và tránh vật cản vừa có nhi âi ứng dụng trong thực tế vừa dễ dàng để sinh viên vận dụng những kiến thức tiếp thu được trên giảng đường vào nó. Với những kết cấu cơ khí đơn giản nhưng lại có thể kết hợp được với khá nhi ân thành phần điện tử Llencoder, sensor xác định đường line, sensor đo khoảng cách.LT nên những Robot này rất phù hợp để sinh viên học tập và nghiên cứu thêm v ngành Tự động hóa một cách cụ thể. L3 Sơ lược các bước thực hiện: Trước tiên ta phải chế tạo được khung xe của robot.

Khung xe phải đảm bảo bền chắc và đạt độ chính xác nhất định v`ềviệc bố trí các bánh xe và động cơ. Sau khi đã có xong mô hình thì việc tiếp theo là chọn vi xử lí, khối óc của mobile robot, cũng như các mạch điện tử cần thiết cho việc đi `âi khiển xe. Và cuối cùng là công đoạn lập trình dựa trên những kiến thức đã học được. BÁO CÁO ĐỒ ÁN MÔN HỌC 2 Ph%n II: GIO] THIEU VI XU Lf VA THANH PHAN CUA MACH II.1 So lworc v€STM32F4xx: STM32 là chip của ST, dựa trên nền lối ARM Cortex-M.

D òng ARM Cortex?M -M là thế hệ mới, thiết lập các tiêu chuẩn mới v êhiệu suất, chi phí, ứng dụng cho các thiết bị cân tiêu thụ năng lượng thấp, và đáp ứng yêu cân thời gian thực khắc khe. CCôffEX:|| 'f001209L C0/t0:MÙ FPGA Low Cost MCU Hịh O Uu diém STM32F4xx : - _ Tiêu thụ điện năng thấp so với các vi đi âi khiển khác - _ Hiệu suất khá cao - _ Dễ dàng tiếp cận và xử lý - Mt gid pho hop cho sinh vién ( kit STM32F4 discovery tan 15%) BÁO CÁO ĐỒ ÁN MÔN HỌC 2 IILI.1 Đặc trưng của STM32F4xx: - - IMB Flash, 192KB SRAM - ARM 32-bit Cortex™-M4F CPU với FPU, tần số đến 168 MHz - _ Hỗ trợ USB 2.0 tốc độ cao - Ethernet LAN 10/100Mb - OxADCOOL-bit,ho tro to i100 channel ADC - 2xDAC 12-bit - DMA:ho tro OO ke nh DMA vo'i F)FOs - (o tro toi OO chua n giao tie p Oo Obo )OCOSM US PM USO 4 USART OooOod 3 SPIS (37.5 Mbit/S) 2 CAN interfaces SDIO interface ÁO CÁO ĐỒ ÁN MÔN HỌC 2 Sơ đ ồph cứng: CLK, NE [3:0], A[23:0] [31:0], OEN, WEN, JTAG & SW NOR Flash, NBL[3:01, NL, NREG NWAITAORDY, CD NIORO, IOWR, INT[23| NIIS16 as AF TDES, AES256 168 MHz FPU AHB bus-matrix 8S7M HASH ANG Ethemet MAC HSYNC, VSYNC interface PIXCLK, D[19:0] oP. USB ULPI: CK, D(7:0}, DIA, STP, OTG HS USB oe SCLISDA, INTN, ID, VBUS, OTG SOL SDA, INTN, ID, VBUS, SOF DMA2 AHBI 168 MHZ DMA1 pp = 1810 36V Vss Voart, Voar2 PAL15:q) GPIO PORT A PB(15:0 GPIO PORT B D0A, VaS4, NRST PC[15:0| GPIO PORT C ĐD[15:C| GPIO PORT D _IN _OUT PRLS GPIO PORTE prsg GPIO PORTF Veat = 1.6 V reat GPIO PORT G OS0% |N PHỊ15:€] GPIO PORTH OSC32_OUT RTC PII1:0] GPIO PORT I AWU |E&# RTC_AFI 4 KE BKPSRAM. TIM2 4 channels, ETR as AF TIM3 4 channels, ETR as AF TIMa 4 cannels.

ETR as AF AHB/APBI TIMs 320 4 channels, ETR as AF 140 AF EXT IT. WKUP TIM12 2 chennels as AF 0:0] 4 chennel as AF CMD, CK as AF SDIO/ MMC scrote i oa. annels (TIM1_ CHỊ: tan TIM1 /PWM 1 channel as AF RX, TX, CK, 4 SparmoleI erat TIMa/ PWM CTS, RTS as AF BKIN a3 AF RX, TX, CK 2 channels ae AF TIM9 USART3 CTS, ATS as AF 4 channel as AF UART4 RX, TX as AF 1 channelasAF TIM11 UARTS RX, TX as AF RX, TX, OK, ART 1 MOSVSD, MISO!SD_ ext, SCK/CK CTS, ATS as AF USART Spi2i2s2 NSSIWS, MCK as AF MOSISD, MISO/SD_ext, SCK/CK X, TX, CK, USART6 SPI3/1233 CTS, ATS ao AF NSS/WS, MCK as AF MOSI, MISO l2C 1/SMBUS SCL, SDA, SMBA as AF SCK, NSS as AF SPI1 I2C2/SMBUS SCL, SDA, SMBA as AF YppEEF_epC l2C3/SMBUS SCL, SDA, SMBA as AF 8 analog inpute eemmen to the 3 ADCs 8 analog inputs common bxCAN1 TX PK to the ADC1 & 2 8 analog inputeto ADC3 bxCAN2 TX PX DAC! OUT DAC2 OUT ae AF as AF ai18511Đ BÁO CÁO ĐỒ ÁN MÔN HỌC 2 II.2 Memory map: Memory map: 0xA000 1000 - 0xBFFF FFFF 0xA000 0FFF 0x6000 0000 0x5006 0C00 - 0x5FFF FFFF 0x5006 OBFF 0x5006 0000 0x5005 0400 - 5005 FFFF 0x5005 03FF 0xFFFF 5 0x5005 0000 0x5004 0000 - 0x5004 FFFF block 7 0x5003 FFF Cortex-M4's 0x5000 0000 Reserved 0x4002 9400 - Ox4 FFF FFFF internal 0x4004 0000 - 04007 FFFF OxE000 OxDFFF 512-Mbyte block 6 Not used 0xC000 OxBFFF 0x4002 3000 512-Mbyte 0x4002 3300 - 0x4002 3BFF 0x4002 3400 - 04002 37FF 0x4002 3000 - 044002 33FF 0xA000 0x4002 2400 - 4002 2FFF 0x9FFF 512-Mbyte 0x4002 23FF block 4 0x4002 000 FSMC bank 3 0x4001 4C00 - 0x4001 FFFF & bank4 0x4001 48FF 0x8000 0x7FFF 0x4001 4000 512-Mbyte 0x4001 3C00 - 0x4001 3FFF block 3 0x4001 3800 - 044001 3BFF FSMC bank1 0X4001 340G - 4001 37FF & bank2 0x6000 0x4001 33FF 0x5FFF 512-Mbyte block 2 Peripherals 0x4900 Ox3FFF 512-Mbyte block 1 SRAM 0000- 0x3FFF FFFF 0x4001 0000 0x2000 0x4000 7800 - 0x4000 FFFF Ox1FFF €000 - 0x2001 FFFF 0x4000 77FF 512-Mbyte block 0 0000 - 0x2001 BFFF Code 0x0000 FFF C008 - Ox1FFF FFFF FFF C000 - 0x1FFF C007 FFF 7A10- 0x1FFF 7FFF FFF 0000- Ox1FFF 7AOF 0x†ồQ1 0000 - œ1FFE FFFF (64 KB data SRAM) - 0x1000 FFFF 0000 ` FFFF 0000 - FFFF 0x4000 2300 0x4000 2400 - 044000 27FF 0x0010 0000 - 0x4000 23FF memory or SRAM 0000 - Ox000F 0x4000 0900 ai1851%c BÁO CÁO ĐỒ ÁN MÔN HỌC 2 Multi-AHB Matrix: GP GP MAC SB OT. com tee RAM Corton M4F | |DMA1 DMA2 | Ethernet}} Hs M USB_HS_M I-bus DMA_PI DMA_MEM2 D-bus S-bus DMA_P2 DMA_MEM1 ETHERNET Flash memory Bus matrix-S ai18490 S0: I-bus: được sử dụng bởi các nhân để lấy hướng dẫn.

S1: D-bus được sử dụng bởi các nhân cho tải và truy cập gỡ lỗi. Oo S2: S-bus được sử dụng để truy cập dữ liệu nằm trong một thiết bị ngoại vi hoặc trong SRAM. S3, S4: bus DMA bộ nhớ được sử dụng bởi DM A để thực hiện chuyển giao bộ nhớ. S35: DMA bus ngoại vi được sử dụng bởi DMA để truy cập vào thiết bị ngoại vỉ AHB hoặc để thực hiện bộ nhớ đến bộ nhớ chuyển.

SH: bus Ethernet DMA. được sử dụng bởi DMA Ethernet đểtải lưu trữ dữ liệu SH: busUS OTG (SDMA được sử dụng bởi OTG DMA US đểtải lưu trữ dữ liệu BÁO CÁO ĐỒ ÁN MÔN HỌC 2 LH AHB/APB c3i (APB): 2 c3i AHEB / APB,APBI và APB2, cung cấp các kết nối đồng bộ đề đủ giữa AHB và hai bus APB, cho phép lựa chọn linh hoạt của tần số thiết bị ngoại vI.3 Pinouts: © 1141141111114: Nr Ow OAơœœœO- co to + @€I mm ma yoo nono VBAT LÝ, 4 69 62 61 60 59 68 57 56 55 4 63 62 61 60 HVDD PC13 O12 11 VCAP_2 PC14 rịa [I PA13 PC15 14 LI PA12 PHO rị s LI PA11 PH1 6 rT PA10 NRST 17 LỊ PA9 PCO ls ‘1 PA8& PC1 Oo LQFP64 H PC9 PC2 F|Ị 1o LỊ PC8 PC3 rỊ 1 LỊ PC7 VSSA 12 LI PC6 VDDA L| 1a 36 LI PB15 PAO L| 14 35 L PB14 PA1 1115 34 LH PB13 PA2 (116 33 HH PB12 é\17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ⁄ TTTTTTTTITTLTTTITLTTTTTTLTTTTLTTTTI SOC SesEREE ER G8 ©Sœn #12 ch tỌ Or — = BÁO CÁO ĐỒ ÁN MÔN HỌC 2 II.4 Power Control: VBAT Š Backup circuitry VBAT = ~A_ Power switch (OSC32K,RTC, 1.6V Wakeup logic Backup registers, = backup RAM) " PT ly =] 10 GP IOsL -| Logic ' > IN § Kernel logic Vc p (CPU, Ị a 2 CAP Ị ' digital ' ' 2x 2.2 uF “TT ' & RAM) VoD mm ' Voltage ' ' >I regulator ” ' 15 x 100 ne +1x4. | ' : I BYPASS_REG Flash memory | | ' I Reset l---------------- === === - : PDR_ON |_| controller Analog: —p}RCs, PLL, MS19911V1 [1 Thiết bị này đòi hỏi một ngu n cung cấp điện áp hoa t động LIT] đến 3,6 V (VDD). Một đi âi chỉnh điệ n áp tuyến tính nhúng được sử dụng để cung cấp OO V điện kỹ thuật số nội bộ.

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