1 CHƯƠNG 1: TỔNG QUAN ROBOT DÒ ĐƯỜNG 1.1 Tổng quan về ứng dụng vi điều khiển - Với sự phát triển không ngừng của khoa học kỹ thuật, đặc biệt là sự phát triển trong ngành điện tử đã đ
TỔNG QUAN ROBOT DÒ ĐƯỜNG
Tổng quan về ứng dụng vi điều khiển
Nhờ sự tiến bộ không ngừng của khoa học kỹ thuật, đặc biệt là sự phát triển nhanh của ngành điện tử, hàng loạt ứng dụng công nghệ mới đã xuất hiện trong công nghiệp và đời sống gia đình Những tiến bộ này giúp tăng năng suất, tối ưu hóa quy trình sản xuất và mang lại tiện ích, an toàn cho người dùng thông qua các thiết bị điện tử hiện đại và hệ thống tự động hóa.
Kể từ khi công nghệ chế tạo vi mạch lập trình phát triển, các phương thức điều khiển kỹ thuật hiện đại đã xuất hiện và mang nhiều ưu điểm so với mạch điều khiển lắp ráp từ các linh kiện rời Vi mạch lập trình cho phép thiết kế gọn nhẹ, có giá thành rẻ, độ tin cậy cao và công suất tiêu thụ thấp, nhờ tối ưu hóa chức năng và tích hợp phần cứng với phần mềm Nhờ đó, các hệ thống điều khiển hiện đại hoạt động hiệu quả hơn với kích thước nhỏ gọn, chi phí vận hành thấp và hiệu suất ổn định.
Trong các ứng dụng dân dụng và công nghiệp, bộ vi điều khiển và vi mạch được sử dụng rộng rãi nhờ nhiều ưu điểm vượt trội như kích thước nhỏ, tiêu thụ năng lượng thấp và khả năng tự động hóa cao; nhờ đó, công nghệ này ngày càng phát huy tính ưu việt và mở rộng phạm vi ứng dụng trong hệ thống nhúng, thiết bị điện tử và các giải pháp tự động hóa.
Việc ứng dụng bộ vi điều khiển để điều khiển các công việc mang tính lặp lại có chu kỳ là một giải pháp thiết yếu, giúp thay thế sự giám sát của con người và tối ưu hóa quy trình sản xuất Nhờ tự động hóa bằng vi điều khiển, số lượng nhân công trực tiếp trên dây chuyền có thể được giảm thiểu, từ đó giảm chi phí lao động và tăng hiệu quả vận hành Đồng thời, các nhiệm vụ mang tính nguy hiểm và độc hại có thể được chuyển sang hệ thống tự động, nâng cao an toàn cho người lao động Việc kiểm soát chu trình một cách chính xác và liên tục giảm thiểu sai sót do con người, đồng thời cải thiện chất lượng sản phẩm và độ đồng nhất của quy trình Đầu tư vào công nghệ vi điều khiển là lựa chọn chiến lược để tăng năng suất, giảm rủi ro và duy trì sự cạnh tranh trên thị trường.
Giới thiệu về robot dò đường
Ngày nay, khoa học kỹ thuật ngày càng phát triển và lan rộng ra toàn cầu, không còn bị giới hạn ở một nhóm nước châu Âu như trước đây Một bước tiến đáng kể của khoa học là sự xuất hiện và ra đời của robot—những máy móc thông minh được ứng dụng rộng rãi trong nhiều lĩnh vực.
Robot là những máy móc do con người chế tạo từ nhiều vật liệu khác nhau, trong đó chủ yếu là các vật liệu dẫn điện Chúng được coi là máy móc thông minh vì có thể thực hiện các công việc thay thế con người, từ những nhiệm vụ đơn giản nhất cho đến những công việc phức tạp.
Có thể hiểu cấu trúc robot như sau:
Robot gồm có hai phần:
+ Phần cứng: là phần cấu tạo nên cấu trúc hoạt động của robot (có thể xem là phần ta có thể thấy bằng mắt thường)
Phần mềm là phần chương trình được lập trình viên viết và nạp vào robot nhằm điều khiển robot hoạt động độc lập, tức là hệ thống có thể tự động thực hiện các tác vụ mà không có sự can thiệp liên tục của con người Đây được xem như phần mềm nằm sâu trong hệ thống, không thể nhìn thấy bằng mắt thường và là yếu tố cốt lõi giúp robot thực thi các lệnh một cách hiệu quả và ổn định.
Nhận thức được tầm quan trọng của robot đối với đời sống ngày nay chúng em đã mạnh dạn chế tạo robot dò đường một dạng của robot
Robot dò đường là một loại xe được thiết kế như một chiếc ô tô, có khả năng tự động nhận diện và chạy theo một đường đi đã được lập sẵn và tự tính toán lộ trình đến đích mà không cần người điều khiển, nhờ chương trình được nạp sẵn do một lập trình viên viết lên Robot sẽ dò theo các vạch đường, và ở ví dụ này là vạch đen trên nền trắng, giúp nó định vị và đi đúng tuyến đường đã được lập trình.
Trong hệ thống này, các đường thẳng đen đóng vai trò là vạch dẫn đường cho robot dò đường, còn phần sân màu trắng được bố trí để tạo sự đối lập với vạch đen nhằm giảm nhiễu cho cảm biến khi dò đường Nguyên nhân là cảm biến trên robot được thiết kế để nhận diện và phát hiện vạch đen, từ đó điều khiển hành trình của robot một cách chính xác.
Đây là một chiếc xe tự động được thiết kế để tự di chuyển đến điểm mong muốn trên sân, mang lại sự linh hoạt và tiện ích cho người dùng Sản phẩm vận hành với nhiều chế độ di chuyển, như chế độ 1, chế độ 2 và các chế độ mở rộng trong tương lai, cho phép xe thực hiện đa dạng thao tác trên sân và thích nghi với nhiều điều kiện khác nhau Với tiềm năng phát triển thêm các hướng nâng cấp, xe có thể mở rộng chức năng để tối ưu hiệu suất, cải thiện độ chính xác và mở rộng ứng dụng trong các môi trường sân chơi khác nhau.
Khi có ánh sáng, điện trở của quang trở giảm và ngược lại; nó dao động từ khoảng 5 kΩ khi có ánh sáng đến khoảng 100 kΩ khi không có ánh sáng Ta dùng hai LED làm nguồn sáng cho nó Khi gặp vạch trắng, ánh sáng phản xạ lên quang trở khiến điện trở giảm xuống, còn khi gặp nền đen, ánh sáng khó phản xạ nên quang trở nhận ít sáng hơn và điện trở tăng lên.
Từ đó dựa vào 8 quang trở, robot có thể phân biệt được vạch trắng (dưới sự hỗ trợ của opamp so sánh)
Hình 1.3 Nguyên lý hoạt động của quang trở
Qua op-amp, tín hiệu nhận được được gửi về mạch xử lý trung tâm; ở đây Arduino Uno R3 sẽ xử lý tín hiệu và phát ra các lệnh điều khiển dựa trên chương trình mà người thiết kế đã viết.
Hình 1.4 Cách bố trí cảm biến
Dựa vào nững nhận biết vạch của cảm biến mà từ đó xe có thể rẽ trái, rẽ phải
• Để rẽ trái: cảm biến 5,6 có tính hiệu hoặc cảm biến 5,6,7 có tính hiệu
Khi r trái động cơ trái chạy chậm lại động cơ phải chạy nhanh hơn Khi r trái ở ngã tư động cơ phải quay thuận,động cơ trái quay ngược
• Để rẽ phải: cảm biến 3,4 có tính hiệu hoặc cảm biến 2,3,4 có tính hiệu
Khi r phải động cơ phải chạy chậm, động cơ trái chạy nhanh hơn Khi r phải ở ngã tư động cơ trái quay thuận, động cơ phải quay ngược
• Để chạy thẳng: hai cảm biến 4,5 có tính hiệu Hai động cơ trái phải chạy cùng tốc độ
• Nhận biết số ngã tư 1 hoặc 8 cảm biến đồng thời có tính hiệu.
Ứng dụng robot dò đường
Trong cuộc sống hàng ngày, ta có thể chế tạo máy hút bụi tự động bằng cách gắn một máy hút bụi nhỏ lên trên một robot mini Robot sẽ tự động di chuyển khắp ngôi nhà, và đồng thời máy hút bụi hoạt động để làm sạch bụi bẩn trên mặt sàn.
- Ứng dụng trong công nghiệp: chế tạo một robot vận chuyển hàng hóa trên tuyến đường cố định, dựa vào khả năng di chuyển theo vạch của robot ta vạch một đường đi từ xưởng sản xuất A sang xưởng sản xuất B từ đó robot co thể chở hàng hóa đi theo đường đã vật từ xưởng sản xuất A sang xưởng sản xuất
B và ngược lại Ứng dụng trong quân sự: chế tạo những robot dò mìn, hiện nay khoa học đã phát triển hơn nhiều robot có khả năng di chuyển dựa vào việc xử lý ảnh do robot chụp lại, từ đó robot có thể tìm được đường đi và phát hiện ra mìn,vật cần tìm…
KẾ VÀ TÌM HIỂU LINH KIỆN CỦA HỆ Thống
Yêu cầu đề tài
Ứng dụng thuật toán PID cho khối điều khiển Arduino UNO R3 thông qua cảm biến dò đường giúp nhận tín hiệu từ vạch đường và tính sai lệch so với mục tiêu Tín hiệu điều khiển được xuất sang Module L298 để điều khiển 2 bánh xe, đảm bảo xe đi đúng vạch đường với độ ổn định cao và phản hồi nhanh Việc tích hợp PID với cảm biến dò đường và L298 tăng cường độ chính xác của hệ thống điều khiển xe tự động theo vạch, đồng thời tối ưu hóa hiệu suất và dễ dàng điều chỉnh tham số cho các bài toán theo dõi đường.
Giải pháp thiết kế
2.2.1 Sơ đồ khối và lưu đồ giải thuật Để thực hiện được thiết kế và chế tạo robot dò đường sử dụng thuật toán PID em đưa ra sơ đồ thiết kế như sau:
Hình 2.1 Sơ đồ khối robot dò đường
Dò Line, Tránh vật cản
Bắt Đầu Đọc giá trị cảm biến dò line
Kết Thúc Hình 2.2 Lưu Đồ Giải Thuật
2.2.2 Phân tích chức năng các khối
- Khối cấp nguồn: Khối cấp nguồn 5VDC có chức năng cấp nguồn 5V cho các khối có thể hoạt động được
Khối cấp nguồn 12VDC có chức năng cấp nguồn 12V cho khối điều khiển động cơ có thể hoạt động được
- Khối cảm biến: Sử dụng module cảm biến dò đường để nhận tín hiệu từ bên ngoài xong chuyển tín hiệu sang khối so sánh
Khối so sánh nhận tín hiệu từ khối cảm biến, tiến hành so sánh và khuếch đại tín hiệu để xác định mức logic 0 ứng với trạng thái có vạch và mức logic 1 ứng với trạng thái không vạch Sau đó, tín hiệu được chuyển tới khối điều khiển trung tâm xử lý để xử lý và điều khiển các bước tiếp theo của hệ thống.
Khối điều khiển trung tâm sử dụng Arduino Uno R3 làm não bộ của hệ thống, nhận tín hiệu từ khối so sánh và thực hiện tính toán để xác định trạng thái robot đang di chuyển Dựa trên kết quả tính toán, nó xuất ra tín hiệu xung điều khiển qua khối điều khiển động cơ để điều chỉnh vận tốc và hướng đi phù hợp.
Khối điều khiển động cơ sử dụng module L298 để nhận tín hiệu từ khối điều khiển trung tâm và xử lý tín hiệu này thành các tín hiệu điều khiển động cơ, từ đó điều hướng xe di chuyển đúng hướng Việc tích hợp module L298 tối ưu hóa khả năng điều khiển động cơ, đảm bảo vận hành ổn định và hiệu suất cao cho hệ thống di chuyển.
2.2.3 Nguyên lý hoạt động của hệ thống
Cảm biến đầu vào được đưa qua mạch so sánh và khếch đại tín hiệu để tạo ra mức logic 0 khi có vạch và mức logic 1 khi không có vạch; dữ liệu từ khối cảm biến được khối điều khiển trung tâm phân tích để xác định trạng thái di chuyển của robot và xuất tín hiệu PWM điều khiển các động cơ qua mạch điều khiển động cơ dùng IC L298 Thiết lập này cho phép robot tự động di chuyển theo quỹ đạo đã xác định trước và có thể dò đường một cách chính xác và hiệu quả.
Hiện nay trên thị trường có rất nhiều loại cảm biến khác nhau giúp robot dò đường một cách chính xác và hiệu quả, như cảm biến la bàn điện từ, cảm biến tiếp xúc, cảm biến quang, bộ giải mã encoder, hệ thống định vị GPS và camera quan sát kết hợp xử lý ảnh Trong phạm vi bài viết này, tác giả tập trung vào các cặp cảm biến quang được đặt cạnh nhau theo hàng ngang dưới thân robot nhằm nhận diện biên đường và định hướng di chuyển Robot thực nghiệm di chuyển trên một vạch màu đen trên nền màu trắng, nên cảm biến quang thể hiện hiệu quả cao trong việc theo dõi đường và kiểm soát hành trình Việc kết hợp cảm biến quang với xử lý ảnh và các hệ thống định vị có thể tăng cường độ ổn định và độ chính xác của quá trình dò đường trong các môi trường khác nhau.
Nguyên lý hoạt động của mạch cảm biến thu phát quang dựa trên sự hấp thụ và phản xạ ánh sáng của nền và đường đi Vạch màu trắng có khả năng phản xạ ánh sáng tốt hơn vạch màu đen, nên quang trở nhận được nguồn sáng phản xạ có cường độ lớn làm điện trở của quang trở giảm đáng kể và điện áp tại nút đo trên quang trở ở mức Vmin thấp Ngược lại, vạch màu đen phản xạ ánh sáng kém hơn, quang trở nhận được ánh sáng phản xạ yếu khiến điện trở của quang trở không giảm đáng kể và điện áp tại nút đo sẽ ở mức Vmax cao.
Hình 3.b mô tả sơ đồ mạch nguyên lý của cảm biến quang, trong đó điện áp trên biến trở Vref được tính theo công thức (1) và dùng để so sánh với tín hiệu điện áp từ quang trở; kết quả so sánh này chuyển đổi thành các mức logic 0 và 1, tương ứng với 0 Vdc và 5 Vdc mà vi điều khiển có thể đọc được Nguyên lý hoạt động và sơ đồ mạch nguyên lý được thể hiện lần lượt ở phần (a) và (b).
Hình 2.3 Mạch cảm biến LED quang trở
Khối điều khiển động cơ có chức năng chuyển đổi tín hiệu điều khiển từ hệ thống trung tâm thành tín hiệu điện áp để điều chỉnh tốc độ và hướng quay của động cơ Có thể dùng nhiều loại mạch điều khiển như mạch cầu H với BJT hoặc FET, mạch 1 FET + 1 relay, IC298 hoặc IC TD18200 tùy ứng dụng và yêu cầu dòng-áp Trong bài viết này, tác giả chọn IC L298 để thiết kế và chế tạo mạch điều khiển động cơ IC L298 tích hợp hai mạch cầu H, làm việc ở điện áp tối đa 46VDC và có tổng dòng định mức lên tới 5A; đồng thời hỗ trợ đảo chiều quay và điều chỉnh tốc độ thông qua PWM Sơ đồ mạch nguyên lý của khối điều khiển động cơ được trình bày ở hình 2.3.
Hình 2.4 Mạch điều khiển motor sử dụng L298
Lựa chọn linh kiện
Arduino đã và đang được sử dụng rộng rãi trên toàn cầu và ngày càng khẳng định sức mạnh của mình thông qua vô số ứng dụng độc đáo do cộng đồng người dùng phát triển trên nền tảng nguồn mở (open source) Từ giáo dục, nghiên cứu sáng tạo đến các dự án IoT và sản xuất đơn giản, Arduino thể hiện sự linh hoạt và thân thiện với người mới bắt đầu Tuy nhiên tại Việt Nam, cộng đồng maker vẫn đang phát triển nhanh nhưng cần thêm nguồn tài liệu tiếng Việt, sự hỗ trợ của cộng đồng và các chương trình giáo dục để lan tỏa và tăng tốc sự sáng tạo.
Arduino vẫn còn chưa được biết đến nhiều
Arduino is an open-source electronics prototyping platform composed of both hardware and software Technically, it can be regarded as a flexible microcontroller development environment that combines openly designed hardware boards with an accessible software ecosystem—the Arduino IDE and a simplified C/C++-based language—enabling hobbyists and professionals to build interactive projects using sensors, actuators, and other peripherals.
Arduino là một bộ điều khiển logic có thể lập trình được, cho phép bạn tương tác với môi trường thông qua các cảm biến và hành vi được lập trình sẵn Với Arduino, việc lắp ráp và điều khiển các thiết bị điện tử trở nên dễ dàng hơn bao giờ hết, nhờ thiết kế giúp đơn giản hóa việc thiết kế, lắp ráp linh kiện điện tử và lập trình trên vi xử lý Arduino được phát triển nhằm giúp mọi người tiếp cận công nghệ điện tử một cách nhanh chóng và không đòi hỏi nhiều kiến thức hay thời gian học Đây là nền tảng vi điều khiển phổ biến, với ưu thế nổi bật như tính dễ tiếp cận, cộng đồng hỗ trợ rộng và kho tài nguyên phong phú để phát triển các dự án điện tử.
Việc lập trình Arduino được hỗ trợ đa nền tảng, cho phép chạy trên Windows, macOS hoặc Linux trên máy tính để bàn và cả trên Android ở thiết bị di động, mang lại sự linh hoạt tối ưu cho mọi dự án và cho phép người dùng phát triển, kiểm thử và triển khai mã Arduino ở nhiều môi trường khác nhau.
- Ngôn ngữ lập trình đơn giản dễ hiểu
Arduino là một nền tảng mở dựa trên nguồn mở, cho phép phần mềm chạy trên Arduino được chia sẻ và tái sử dụng dễ dàng bởi cộng đồng Với tính mở và khả năng tương thích cao, các giải pháp phần mềm trên Arduino có thể tích hợp vào nhiều nền tảng khác nhau, giúp triển khai nhanh chóng các dự án điện tử và IoT.
- Mở rộng phần cứng: Arduino được thiết kế và sử dụng theo dạng module nên việc mở rộng phần cứng cũng dễ dàng hơn
- Đơn giản và nhanh: Rất dễ dàng lắp ráp, lập trình và sử dụng thiết bị
- Dễ dàng chia s : Mọi người dễ dàng chia s mã nguồn với nhau mà không lo lắng về ngôn ngữ hay hệ điều hành mình đang sử dụng
Arduino có rất nhiều module, mỗi module được phát triển cho một ứng dụng cụ thể Về mặt chức năng, bo mạch Arduino được chia thành hai loại: bo mạch chính có chip Atmega và các bo mạch mở rộng bổ sung chức năng cho bo mạch chính Các bo mạch chính về cơ bản giống nhau về chức năng, nhưng khác nhau về cấu hình như số lượng I/O, dung lượng bộ nhớ và kích thước Một số bo mạch còn được trang bị thêm các tính năng kết nối như Ethernet và Bluetooth Các bo mạch mở rộng chủ yếu mở rộng thêm các tính năng cho bo mạch chính, ví dụ như tính năng kết nối Ethernet, Wireless và điều khiển động cơ.
Sử dụng chip AVR Atmega328 của Atmel Mạch arduino được lắp ráp từ các linh kiện dễ tìm và hướng đến đối tượng người dùng đa dạng
Arduino UNO có thể sử dụng 3 vi điều khiển họ 8-bit AVR là Atmega8, Atmega168 và Atmega328 Các vi điều khiển này đóng vai trò như bộ não của mạch, cho phép xử lý các tác vụ từ điều khiển đèn LED nhấp nháy cho các dự án căn bản đến xử lý tín hiệu cho xe điều khiển từ xa, và xây dựng các trạm đo nhiệt độ, độ ẩm hiển thị kết quả lên màn hình LCD, cũng như thực hiện nhiều ứng dụng khác. -**Support Pollinations.AI:**🌸 **Quảng cáo** 🌸 Dành cho người mê Arduino UNO: [Ủng hộ Pollinations.AI](https://pollinations.ai/redirect/kofi) để AI giúp bạn phát triển dự án công nghệ sáng tạo!
Arduino UNO có thể được cấp nguồn qua cổng USB hoặc nguồn ngoài Với nguồn ngoài, điện áp khuyên dùng là 7–12 V DC và ngưỡng giới hạn là 6–20 V; khi USB không có sẵn nguồn thì pin vuông 9 V là lựa chọn hợp lý Cấp nguồn vượt quá ngưỡng giới hạn có thể làm hỏng Arduino UNO.
Hình 2.5 Arduino UNO R3 Bảng 2 1 Đặc điểm kỹ thuật Arduino Uno R3
Vi điều khiển Atmega328 (họ 8bit) Điện áp hoạt động 5V – DC (chỉ được cấp qua cổng USB)
Tần số hoạt động 16 MHz
Dòng tiêu thụ 30mA Điện áp vào khuyên dùng 712V – DC Điện áp vào giới hạn 620V – DC
Số chân Digital I/O 14 (6 chân PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (Atmega328) với bootloader
GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi
14 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 là chân trên Arduino UNO cho phép xác định điện áp hoạt động của vi điều khiển và thường là 5V Tuy nhiên, IOREF không phải là nguồn cấp và không nên lấy nguồn 5V từ chân này để cấp nguồn cho các linh kiện khác; chức năng của nó là tham chiếu điện áp cho các shield để tương thích với các mức điện áp khác.
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 1 điện trở 10KΩ
Các cổng vào/ra: Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu
Vi điều khiển Atmega328 làm việc với hai mức điện áp 0V và 5V, và giới hạn dòng vào/ra tối đa trên mỗi chân là 40mA Trên mỗi chân digital có thể có điện trở pull-up nội được tích hợp sẵn, nhưng mặc định các pull-up này không được kích hoạt Các chân digital của Atmega328 còn có một số chức năng đặc biệt cho một số ứng dụng Hiểu đúng các đặc tính này giúp thiết kế mạch và lập trình hiệu quả hơn.
2 chân Serial trên Arduino Uno là pin 0 (RX) và pin 1 (TX), dùng để gửi (TX) và nhận (RX) dữ liệu TTL Serial, cho phép Arduino Uno giao tiếp với thiết bị khác qua hai chân này Kết nối Bluetooth thường được hiểu là một kết nối Serial không dây, cho phép truyền dữ liệu giữa Arduino và các thiết bị như điện thoại hoặc máy tính thông qua giao thức UART Nếu không có nhu cầu giao tiếp Serial, nên tránh sử dụng hai chân RX và TX để giảm nhiễu và tiết kiệm nguồn.
Chân PWM trên các số 3, 5, 6, 9, 10 và 11 cho phép xuất tín hiệu PWM với độ phân giải 8-bit, với giá trị từ 0 đến 281 tương ứng với 0V đến 5V, thông qua hàm analogWrite() Nói một cách đơn giản, các chân này cho phép điều chỉnh điện áp đầu ra từ 0V đến 5V thay vì chỉ ở mức cố định 0V hoặc 5V như ở các chân khác.
Chân giao tiếp SPI gồm bốn dòng chính: 10 (SS - Slave Select), 11 (MOSI - Master Out Slave In), 12 (MISO - Master In Slave Out) và 13 (SCK - Clock) Ngoài các chức năng cơ bản, bốn chân này còn được dùng để truyền phát dữ liệu giữa vi điều khiển và các thiết bị ngoại vi thông qua giao thức SPI Hiểu rõ vai trò của từng chân SPI và cách chúng tương tác sẽ giúp tối ưu kết nối và hiệu suất truyền dữ liệu giữa các thiết bị với nhau.
LED 13: trên Arduino UNO có 1 đèn led màu cam (k hiệu chữ L) Khi bấm nút Reset, 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 10bit (0 →
PHÂN TÍCH THUẬT TOÁN PID VÀ ỨNG DỤNG TRONG ROBOT DÒ ĐƯỜNG
Giới thiệu
Thuật toán dò đường thường được triển khai bằng cách đặt một dãy cảm biến được sắp xếp đều nhau phía trước robot Trong quá trình di chuyển, robot sẽ phát hiện lệch hướng thông qua trạng thái của các cảm biến: nếu hai cảm biến ở giữa cảm nhận được đường đi thì robot đang tiến thẳng về phía trước; nếu các cảm biến ở bên phải cảm nhận được đường đi thì robot lệch về bên trái, và ngược lại nếu các cảm biến ở bên trái cảm nhận được đường đi thì robot lệch về phía bên phải Thuật toán này được ứng dụng thành công trong thiết kế robot dò đường.
Định nghĩa thuật toán PID
Bộ điều khiển vi tích phân tỉ lệ (PID – Proportional Integral Derivative) là một cơ chế phản hồi vòng kín được sử dụng rộng rãi trong các hệ thống điều khiển công nghiệp Đây là loại điều khiển được dùng nhiều nhất trong các hệ thống điều khiển phản hồi nhờ khả năng phối hợp tối ưu ba thành phần P, I và D để đạt được đáp ứng nhanh, ổn định và giảm sai số theo thời gian PID điều khiển hoạt động bằng cách so sánh giá trị mong muốn với giá trị thực tế và điều chỉnh tín hiệu điều khiển dựa trên lỗi, tích phân của lỗi và sự thay đổi của lỗi, từ đó cải thiện chất lượng quá trình và hiệu suất của hệ thống.
Bộ điều khiển PID tính toán sai số bằng hiệu giữa giá trị đo được của thông số biến đổi và giá trị đặt mong muốn Từ sai số này, bộ điều khiển sẽ điều chỉnh tín hiệu điều khiển đầu vào nhằm giảm thiểu sai lệch và đưa hệ thống trở về trạng thái mong muốn Quá trình này diễn ra liên tục, giúp cân bằng và ổn định hiệu suất vận hành bằng cách tối ưu hóa đáp ứng của hệ thống.
Trong trường hợp không có kiến thức cơ bản về mô hình toán học của hệ thống điều khiển, bộ điều khiển PID là sự lựa chọn tối ưu Tuy nhiên, để đạt được hiệu suất tốt nhất, các tham số PID được sử dụng trong tính toán phải được điều chỉnh theo tính chất của từng hệ thống; dù kiểu điều khiển là giống nhau, các tham số PID phụ thuộc vào đặc thù của hệ thống và quá trình đang được điều khiển.
Thuật toán tính toán của bộ điều khiển PID gồm ba tham số riêng biệt, vì vậy nó còn được gọi là điều khiển ba khâu Các tham số này là tỉ lệ (P), tích phân (I) và đạo hàm (D), viết tắt lần lượt là P, I và D P điều chỉnh đáp ứng ngắn hạn và độ nhạy của hệ thống, I giảm sai lệch tích lũy theo thời gian, còn D dự đoán xu hướng lỗi để làm mượt tín hiệu và giảm dao động.
D Giá trị tỉ lệ xác định tác động của sai số hiện tại, giá trị tích phân xác định tác động của tổng các sai số quá khứ, và giá trị vi phân xác định tác động của tốc độ biến đổi sai số
Ba tác động điều khiển P, I và D được kết hợp với nhau để điều chỉnh quá trình thông qua một phần tử điều khiển như vị trí van hoặc nguồn cấp của bộ gia nhiệt Nhờ sự phối hợp này, các giá trị điều khiển phản ánh mối quan hệ thời gian của hệ thống: P phụ thuộc vào sai số hiện tại, I phụ thuộc vào tích lũy sai số theo thời gian, và D phụ thuộc vào tốc độ thay đổi của sai số, từ đó giúp dự báo và cải thiện đáp ứng cũng như ổn định của hệ thống.
26 thuộc vào t ch lũy các sai số quá khứ, và (D) dự đoán các sai số tương lai, dựa vào tốc độ thay đổi hiện tại.
Phương pháp điều chế độ rộng xung (PWM)
Động cơ một chiều có tốc độ quay tỉ lệ thuận với điện áp đầu vào, nên cách đơn giản nhất để điều khiển tốc độ quay của rotor là thay đổi mức điện áp áp dụng vào động cơ Việc tăng hoặc giảm điện áp đầu vào cho phép kiểm soát tốc độ quay một cách trực tiếp và linh hoạt, phù hợp với các yêu cầu về tải trọng và điều kiện làm việc, đồng thời giúp tối ưu hiệu suất và độ ổn định của hệ thống.
Nguyên tắc cơ bản để thay đổi tốc độ quay của động cơ bằng phương pháp PWM là giữ nguyên giá trị điện áp cấp vào động cơ và thay đổi thời gian đặt điện áp vào động cơ Cụ thể, thời gian mức cao Ton trong một chu kỳ xung PWM càng lớn thì điện áp trung bình đặt vào động cơ càng cao, ngược lại khi thời gian mức thấp Toff càng lớn thì điện áp trung bình càng thấp Đại lượng mô tả mối quan hệ giữa Ton và Toff được gọi là độ rộng xung (duty cycle), được tính theo công thức: duty_cycle = Ton / (Ton + Toff).
(a) Giản đồ độ rộng xung (b) Giản đồ xung với theo duty_cycle Hình 3.1 Giản đồ thời gian của xung PWM
Trong hình 3.1 (b), với chu kỳ xung 1 kHz và thời gian xung mức cao Ton = 0.3 ms, thời gian xung mức thấp Toff = 0.7 ms, biên độ xung là 12 Vdc Theo PWM, duty cycle đạt 30%, do đó điện áp trung bình đặt lên động cơ là 12 × 30% = 3.6 Vdc Tốc độ quay của rotor tương ứng là 1500 × 30% = 450 vòng/phút.
Giải thuật điều khiển vi tích phân tỉ lệ (PID)
Thuật toán điều khiển PI (Proportional-Integral) nhằm hiệu chỉnh nhanh sai số giữa giá trị biến đo được và giá trị mong muốn đạt đến bằng cách tính toán và xuất ra một hành động điều chỉnh phù hợp Hệ thống liên tục so sánh giá trị đo được với tham chiếu, kết hợp thành phần tỉ lệ để đáp ứng tức thì và thành phần tích phân để bù đắp sai số tích lũy theo thời gian, từ đó tạo ra tín hiệu điều khiển nhanh và ổn định Việc áp dụng PI giúp cải thiện đáp ứng động, giảm quá độ và tăng độ chính xác của quá trình điều khiển trong các điều kiện làm việc biến động.
Điều khiển PID được thiết kế nhằm giảm thiểu sai số và duy trì lỗi ở mức thấp nhất có thể Bộ điều khiển này gồm ba tham số chính là Proportional (P), Integral (I) và Derivative (D) Các tham số P, I và D được thể hiện qua sơ đồ khối và phương trình tổng quát, như hình 3.2 trình bày.
Hình 3.2 Sơ đồ khối giải thuật PID Phương trình PID tổng quát:
Hàm lỗi e(t) tại thời điểm t: độ lệch giữa giá trị mong muốn và giá trị đo được: e(t) = Vset Vmo(t) Trong đó:
Vset : Setpoint Value (giá trị điện áp mong muốn)
Vmo(t) là giá trị điện áp đầu ra đo được tại thời điểm t (Measurable Output Value) P(t) là hàm điều khiển tỉ lệ (proportional) phản ứng với sai số hiện tại e(t) P(t) được xác định bằng công thức P(t) = Kp · e(t), trong đó Kp là hệ số tỉ lệ và e(t) là giá trị lỗi giữa giá trị mong muốn và giá trị đo được tại thời điểm t Nhờ sự kết hợp giữa Vmo(t) và P(t), hệ thống có thể điều chỉnh tín hiệu điều khiển nhằm giảm sai lệch và đạt được đáp ứng mong muốn.
Kp: hằng số tỉ lệ, tham số dùng để tinh chỉnh
Integral I(t) (hàm t ch phân): điều khiển tương ứng với mức lỗi được t ch lũy theo thời gian
Ki: hằng số điều chỉnh hàm t ch phân
Derivative D(t) (hàm vi phân): điều khiển tương ứng với tốc độ thay đổi của lỗi, hay độ dốc lỗi theo thời gian
Kd: hằng số điều chỉnh hàm vi phân.
Ứng dụng giải thuật trên robot dò đường
3.5.1 Mô hình PID áp dụng cho robot dò đường
Giải thuật PID được tích hợp vào trong giải thuật điều khiển robot dò đường để tính toán và xuất ra các giá trị PWM điều khiển 2 động cơ gắn với 2 bánh sau của robot dựa vào độ sai lệch giữa giá trị đo đạc ngõ vào và giá trị mong muốn Độ sai lệch, hay còn gọi là giá trị lỗi, được tính toán trong giải thuật PID là độ lệch giữa trạng thái hiện tại của robot so với đường đi Có nghĩa là, độ sai lệch giữa giá trị hiện tại của bộ cảm biến so với giá trị của cảm biến trong trường hợp robot chạy thẳng về ph a trước Việc áp dụng giải thuật PID trên robot dò đường sử dụng cảm biến quang được trình bày bằng một sơ đồ khối như hình 3.3
Hình 3.3 Sơ đồ khối ứng dụng giải thuật PID vào robot dò đường
Trước khi đề cập ứng dụng giải thuật PID vào robot dò đường, tác giả đưa ra các định nghĩa của các thuật ngữ liên quan
Vị trí mục tiêu Vset: trung tâm của đường đi, vị trí mà ta muốn robot hướng đến
Vị trí thực tại Vmo(t): vị trí thực của robot, có thể lệch bên trái hoặc lệch bên phải so với đường đi của robot
Lỗi e(t): độ sai lệch giữa vị trí mục tiêu và vị trí thực của robot, có thể là
29 giá trị âm hoặc dương hoặc bằng 0, được tính theo công thức
Hệ số Kp, Ki, Kd là các hằng số tương ứng được sử dụng để điều chỉnh ảnh hưởng của các khâu tỉ lệ, khâu tích phân và khâu vi phân
Thuật toán PID là một chuỗi các phép toán nhằm xác định các giá trị của các khâu điều khiển tỉ lệ (P), vi phân (D) và tích phân (I) Sau khi tính toán, các giá trị này được kết hợp lại và xuất ra tín hiệu PWM để điều khiển hai động cơ bánh sau của robot Khâu điều khiển tỉ lệ đo độ lệch e(n) giữa vận tốc mong đợi và vận tốc hiện tại, nhận diện robot lệch trái hay lệch phải, và xuất ra các tín hiệu PWM nhằm điều khiển hai động cơ giúp robot quay về vị trí mục tiêu Độ lệch: e(n) = Vmo(n) – Vset Đáp ứng khâu tỉ lệ: P(n) = Kp · e(n).
Trong đó : n là số lần lấy mẫu
Hằng số Kp càng lớn thì sự điều chỉnh càng lớn khi lỗi càng lớn
Ngược lại, Kp càng nhỏ thì sẽ đáp ứng điều chỉnh nhỏ đối với lỗi
Khâu điều khiển tích phân dựa trên sai số tích lũy theo thời gian giúp hệ thống robot điều chỉnh hành trình một cách mượt mà và chính xác khi theo đường Khi robot lệch khỏi đường càng nhiều, sai số tích lũy tích tụ càng lớn và ảnh hưởng trực tiếp đến hiệu suất điều khiển Khâu này cho biết quá khứ robot có bám đường tốt hay không bằng cách đánh giá xu hướng tích lũy sai số theo thời gian, từ đó quyết định mức độ điều chỉnh cần thiết để cải thiện khả năng theo dõi đường.
E(n) e(n) n 1 Đáp ứng khâu t ch phân: I(n)= Ki E(n) (11)
Trong đó : n là số lần lấy mẫu
Khâu vi phân tính toán dựa trên sai số hiện tại Khâu này cho biết tốc độ robot dao động qua lại của đường đi
Tốc độ dao động: ∆e(n) = e(n) – e(n1) (12) Đáp ứng khâu vi phân: D(n) = Kd ∆e(n) (13)
Cuối cùng, giá trị PWM để xuất ra điều khiển cho các động cơ điều khiển hoạt động của robot sẽ là
PWM = Kp [Vmo(n) – Vset] + Ki e(n)+ Kd [e(n) – e(n1)] n 1
3.5.3 Hiệu chỉnh thuật toán PID
Khi sử dụng thuật toán PID để điều khiển robot dò đường, kết quả ban đầu cho thấy robot hoạt động không như mong đợi Nguyên nhân là các hệ số Kp, Ki và Kd chưa phù hợp với đặc tính vật lý của từng robot, nên cần điều chỉnh để phù hợp với mỗi trường hợp Mỗi robot có đặc điểm khác nhau, do đó các tham số PID này phải được tối ưu hóa tương ứng Phần tiếp theo đề xuất các bước thực nghiệm đơn giản để xác định một cách có hệ thống các tham số Kp, Ki và Kd, nhằm cải thiện hiệu suất điều khiển của robot dò đường.
Giới thiệu phần mềm Arduino IDE
Hình 3.4 Giao diện phần mềm Arduino IDE 3.6.2 Vùng lệnh
Đoạn mô tả nêu lên các nút lệnh menu chính của IDE gồm File, Edit, Sketch, Tools và Help, đồng thời ở phía dưới là các icon cho phép truy cập nhanh các chức năng thông dụng của IDE và được mô tả chi tiết như sau.
Hình 3.5 Các nút lệnh trong Arduino IDE
Hình 3.6 Vùng thông báo trong Arduino IDE
Những thông báo từ IDE sẽ hiển thị ở đây Lưu ý góc dưới bên phải hiển thị loại board Arduino đang được chọn và cổng COM đang sử dụng Hãy luôn kiểm tra mục này, vì nếu chọn sai loại board hoặc cổng COM, bạn sẽ không thể upload code lên board Arduino của mình.
Chúng ta có thể tìm thấy một số hướng dẫn khắc phục các lỗi phổ biến khi lập trình Arduino và nhận diện các lỗi của Arduino một cách nhanh chóng Bài viết tổng hợp các lỗi thường gặp khi lập trình Arduino và các biện pháp khắc phục hiệu quả, từ lỗi kết nối và lỗi biên dịch đến sai cấu hình board và lệch thư viện Để khắc phục lỗi Arduino nhanh chóng, hãy kiểm tra cổng kết nối, chọn đúng board và driver, cập nhật thư viện, và xem log lỗi để xác định nguyên nhân Các lỗi phổ biến gồm cú pháp sai, thiếu thư viện, không tương thích giữa IDE hoặc core với phiên bản, lỗi cấp nguồn, và sai cấu hình clock hoặc cổng Việc áp dụng các bước chuẩn như kiểm tra cáp USB, chọn đúng board trong Arduino IDE, cài đặt đầy đủ thư viện cần thiết và cập nhật phần mềm sẽ giúp giảm thời gian xử lý lỗi và tăng hiệu quả lập trình Arduino.
Khi lập trình với Arduino, ta cần chọn đúng cổng kết nối (port) và đúng tên board đang dùng Ví dụ với mạch Arduino Uno, khi gắn vào máy tính bằng cáp USB, thiết bị sẽ được nhận là một cổng serial nhất định (ví dụ COM4); sau đó hãy cấu hình cổng và tên board trong Arduino IDE để có thể lập trình được.
Hình 3.7 Chọn cổng kết nối cho Arduino Uno R3
THIẾT KẾ VÀ CHẾ TẠO ROBOT DÒ ĐƯỜNG
Thiết kế đường đi cho robot
Từ ý tưởng có sẵn sử dụng phần nềm Panit 3D để mô phỏng đường đi giúp cho việc chế tạo đường đi của robot dò đường được dễ dàng hơn
Hình 4.1 Mô phỏng đường đi trên phần nềm Paint 3D 4.2.2 Hệ thống đường line cho robot
Để làm đường line cho robot, bạn có thể dùng băng keo cách nhiệt bởi độ bám dính tốt và tính đàn hồi cao của băng giúp đường line bền và dễ nhận diện trong quá trình vận hành Lựa chọn loại băng có kích thước phù hợp với phạm vi di chuyển và yêu cầu của hệ thống để tránh bong tróc hoặc lệch đường khi robot di chuyển.
Hình 4.2 Băng keo dùng làm đường line
Hình 4.3 Sân đi sau khi chế tạo
Kết quả thực nghiệm trên mô hình robot
Việc thiết kế và chế tạo robot dò đường bằng thuật toán PID đã hoàn thiện và đi vào sử dụng, cho phép robot tự động nhận biết đường line và di chuyển với độ chính xác cao Nhờ điều khiển PID, hệ thống có phản hồi nhanh và quỹ đạo được duy trì ổn định, tối ưu hóa hiệu suất dò đường và vận hành liên tục trong các tình huống thực tế.
Hình 4.5 Hoàn thiện robot dò đường
Phần tiếp theo trình bày việc áp dụng phương pháp PWM vòng kín kết hợp với giải thuật PID vào thực nghiệm trên mô hình robot thật Robot được thiết kế và chế tạo để sử dụng dãy 5 cặp cảm biến thu phát quang nhằm dò đường, mỗi cặp cách nhau 25 mm, nhằm tối ưu hóa điều khiển đường đi thông qua PWM và PID và đảm bảo hoạt động ổn định của hệ thống.
Vì, đường đi là vạch đen được k trên nền trắng và có bề rộng 30mm
Hình 4.6 Cảm biến hồng ngoại
PHẦN KẾT LUẬN KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Sau thời gian làm đề tài với sự hướng dẫn tận tình của cô ThS Trần Thị
Trà Vinh, trong đề tài này em đã thực hiện được những vấn đề sau:
- Tổng quan về robot dò đường
- Thuật toán PID sử dụng trong robot dò đường
- Thiết kế và chế tạo robot dò đường sử dụng thuật toán PID
- Cơ cấu truyền động, bánh xe áp dụng cho Robot dò line và tránh vật cản
- Chế tạo mô hình xe theo kích thước thực với linh kiện
- Thực hiện kết nối và trao đổi dữ liệu giữa thiết
- Tìm hiểu về các linh kiện cũng như cách thiết kế và làm mạch thủ công
- Đi sâu tìm hiểu một số thuật toán điều khiển
- Đề tài này rất phổ biến và có ứng dụng rất cao vào đời sống thực tiễn
- Ứng dụng công nghệ dò line tránh vật cản vào các hệ thống khác
-Thiết kế mạch điều khiển trung tâm, mạch công suất điều khiển động cơ.
- Mạch nhỏ gọn, các linh kiện rẻ
- Mạch hoạt động tốt, không gặp vấn đề trong quá trình chạy
- Bộ điều khiển hoạt động đúng với yêu cầu đặt ra, đạt giá trị tiệm cận với giá trị đặt (setpoint)
- Mạch còn thô sơ, dễ bị hư hỏng
- Bám line chưa ổn định
- Tiếp tục nghiên cứu về xe dò line và tránh vật cản một cách ổn định và chính xác nhất có thể
- Cải tiến xa nhanh hơn, bằng sừ dung động cơ có Encoder
- Xây dựng thuật toán hoàn chỉnh
Đồ án tốt nghiệp được thực hiện dựa trên sự nỗ lực cá nhân và sự hướng dẫn tận tâm của giáo viên hướng dẫn; tuy nhiên, những thiếu sót và khiếm khuyết là không thể tránh khỏi Em rất mong nhận được ý kiến đóng góp của các thầy cô trong hội đồng, cùng toàn thể các bạn để đồ án được hoàn thiện hơn Các phản hồi xây dựng sẽ giúp em khắc phục các điểm còn thiếu, cải thiện cấu trúc, nội dung và phương pháp nghiên cứu, từ đó nâng cao chất lượng khoa học và tính khả thi của đề tài.
Việc thiết kế robot dò đường sử dụng thuật toán PID đã hoàn thành và đi vào hoạt động, cho phép robot tự động dò theo vạch nhưng vẫn chưa phát huy hết tiềm năng Trong quá trình làm đồ án, em đã nghiên cứu thêm chức năng quét mã vạch trên các sản phẩm, nhưng do điều kiện hiện tại chưa cho phép nên chưa thể áp dụng vào đồ án này Nếu có điều kiện, em sẽ tiếp tục phát triển hệ thống để đáp ứng nhu cầu ngày càng cao của con người Em hy vọng robot dò đường này có thể được ứng dụng ngay trong đời sống hàng ngày, chứ không chỉ dừng lại ở mô hình nghiên cứu.