Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh khoa học và công nghệ tự động hóa phát triển, các hệ thống robot tự hành ngày càng giữ vai trò thiết yếu trong dây chuyền sản xuất công nghiệp, kho vận logistics, nông nghiệp công nghệ cao và đời sống thường nhật. Trong cấu trúc của một hệ thống robot, cảm biến (nhận biết môi trường) và cơ cấu chấp hành (thực thi chuyển động) là hai thành phần cốt lõi, quyết định trực tiếp đến độ chính xác và tính ổn định của toàn bộ chu trình điều khiển.
Đồ án môn học "Cảm biến và cơ cấu chấp hành" với đề tài "Robot dò line ứng dụng bộ điều khiển PID" được thực hiện bởi nhóm sinh viên Đặng Lưu Nhật Duy (MSSV: 2286300008) và Nguyễn Đăng Anh (MSSV: 2286300001), thuộc lớp 22DRTA1, ngành Robot và Trí tuệ nhân tạo, Trường Đại học Công nghệ TP.HCM (HUTECH), dưới sự hướng dẫn của giảng viên Phạm Quốc Thiện (hoàn thành ngày 12 tháng 12 năm 2024).
Mục tiêu và nhiệm vụ nghiên cứu được xác định cụ thể trong văn bản bao gồm:
- Nghiên cứu lý thuyết về cảm biến quang học, cơ cấu chấp hành động cơ một chiều (DC) và thuật toán điều khiển PID (Proportional - Integral - Derivative).
- Thiết kế và chế tạo phần cứng hoàn chỉnh cho một robot tự hành bám đường (line follower) sử dụng 8 cảm biến quang trở, mạch cầu H công suất cao BTS7960 và vi điều khiển ATmega328P (Arduino Nano).
- Xây dựng giải thuật điều khiển số, lập trình đọc cảm biến theo thời gian thực qua ngắt Timer2, xử lý các trạng thái di chuyển (đi thẳng, rẽ các cấp độ, cua vuông 90°, xử lý mất vạch và điểm giao cắt).
- Thực nghiệm, đánh giá độ ổn định và khả năng bám quỹ đạo của robot ở các dải tốc độ khác nhau.
Ý nghĩa thực tiễn của đề tài được tác giả xác định ở 4 khía cạnh:
- Ứng dụng trong giao thông thông minh: Làm mô hình cơ sở cho các phương tiện tự hành (AGV - Automated Guided Vehicle) di chuyển an toàn, có định hướng.
- Hỗ trợ công nghiệp: Phục vụ các hệ thống vận chuyển nguyên vật liệu, hàng hóa tự động trong nhà máy, kho bãi theo lộ trình định sẵn.
- Giáo dục và nghiên cứu: Đóng vai trò là mô hình học cụ trực quan để thử nghiệm, tối ưu hóa các giải thuật điều khiển tự động và xử lý tín hiệu cảm biến.
- Nền tảng phát triển tương lai: Tạo tiền đề mở rộng sang các hệ thống tự hành thông minh phức tạp hơn trong logistics và quản lý môi trường.
Đối tượng nghiên cứu là hệ thống robot dò đường tự hành 2 bánh chủ động vi sai. Phạm vi nghiên cứu tập trung vào việc nhận diện đường vạch màu đen trên nền bề mặt màu trắng trong môi trường thực nghiệm, sử dụng vi điều khiển 8-bit và xử lý các tình huống hình học đường line cơ bản.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và mô hình điều khiển
- Khái niệm xe dò line (Line Follower): Là thiết bị robot tự hành di chuyển bám theo một đường dẫn định sẵn (vạch đen hoặc vạch trắng) trên bề mặt di chuyển nhờ hệ thống cảm biến quang hoặc hồng ngoại nhận diện độ tương phản phản xạ ánh sáng.
- Nguyên lý quang học: Dựa trên sự khác biệt về hệ số phản xạ ánh sáng giữa hai màu tương phản. Bề mặt màu trắng phản xạ phần lớn ánh sáng từ đèn LED phát ra, làm giảm điện trở của quang trở. Ngược lại, vạch màu đen hấp thụ ánh sáng, khiến lượng quang thông phản xạ yếu, làm tăng điện trở của quang trở. Sự biến thiên điện trở qua mạch phân áp tạo ra mức điện áp analog tương ứng đưa về bộ chuyển đổi ADC (Analog-to-Digital Converter) của vi điều khiển.
- Lý thuyết điều khiển PID: Bộ điều khiển vi tích phân tỉ lệ hoạt động dựa trên việc tính toán sai số $e(t)$ giữa vị trí thực tế của robot và tâm đường line:
- Thành phần tỉ lệ ($P = K_p \times e(t)$): Phản hồi tỉ lệ thuận với độ lệch tức thời, tạo lực điều chỉnh đưa robot về tâm đường.
- Thành phần tích phân ($I = K_i \times \int e(t)dt$): Triệt tiêu sai số xác lập kéo dài theo thời gian.
- Thành phần vi phân ($D = K_d \times \frac{de(t)}{dt}$): Dự đoán xu hướng thay đổi sai số, tạo lực hãm chống hiện tượng vọt lố (overshoot) và dao động.
Phương pháp nghiên cứu và thực nghiệm
- Phương pháp thiết kế kỹ thuật: Tính toán, lựa chọn linh kiện phần cứng (cảm biến, vi điều khiển, driver công suất, động cơ giảm tốc, pin nguồn) đáp ứng các yêu cầu về điện áp, dòng xả và tải trọng cơ khí.
- Phương pháp thực nghiệm và tinh chỉnh: Thiết kế sa bàn thực tế, xây dựng cơ chế tự hiệu chuẩn cảm biến (auto-calibration), ghi dữ liệu vào bộ nhớ không bay màu EEPROM và thử nghiệm điều chỉnh các hệ số điều khiển ($K_p, K_d$) trên đường chạy thực tế.
- Nguồn dữ liệu: Dữ liệu điện áp 10-bit từ 8 kênh ADC của cảm biến quang trở thu thập trực tiếp trong quá trình quét bề mặt sa bàn qua ngắt định thời.
Thiết kế và triển khai hệ thống kỹ thuật
Kiến trúc phần cứng
Hệ thống phần cứng của robot được tổ chức thành 4 khối chức năng chính liên kết chặt chẽ:
| Thành phần linh kiện | Thông số kỹ thuật chi tiết theo văn bản | Chức năng trong hệ thống |
|---|---|---|
| Vi điều khiển Arduino Nano | Vi điều khiển ATmega328P, 16 MHz, Flash 32 KB, SRAM 2 KB, EEPROM 1 KB, 14 chân Digital (6 chân PWM), 8 chân Analog Input (10-bit). | Khối xử lý trung tâm, tiếp nhận tín hiệu cảm biến, thực thi thuật toán PID và phát xung điều khiển động cơ. |
| Module cảm biến quang (8 mắt) | Dãy 8 quang trở tích hợp 8 đèn LED siêu sáng trợ sáng phía trước; xuất 8 kênh tín hiệu tương tự ra vi điều khiển. | Thu nhận độ phản xạ ánh sáng của mặt sàn để xác định vị trí lệch của robot so với tâm vạch đen. |
| Mạch công suất BTS7960 | Điện áp 6V - 27V, dòng tải liên tục 43A, tần số PWM tối đa 25 kHz, tích hợp bảo vệ ngắn mạch, quá dòng, quá nhiệt; cấu trúc cầu H kép. | Điều khiển chiều quay và tốc độ (qua PWM) cho 2 động cơ DC độc lập từ tín hiệu điều khiển logic. |
| Động cơ giảm tốc GA25-370 | Tỉ số truyền 4.4, tốc độ không tải 1360 vòng/phút, tốc độ có tải 1110 vòng/phút, mô-men xoắn 0.5 kg.cm, tải trọng định mức 0.17 kg.cm, hộp số dài 17 mm. | Cơ cấu chấp hành chuyển động vi sai, tạo lực kéo và điều hướng cho robot. |
| Nguồn Pin LiPo 3S | Dung lượng 2800 mAh, điện áp danh định 11.1V (3 cell x 3.7V), dòng xả 30C (dòng xả cực đại đạt 84A), công suất năng lượng 31.1 Wh. | Cung cấp nguồn độc lập công suất cao cho mạch động lực BTS7960 và mạch điều khiển logic. |
| Cơ cấu bánh xe và trục nối | Bánh xe cao su đệm mút đường kính 68 mm, rộng 27 mm, tải trọng 1-2 kg, khối lượng 100g; khớp nối lục giác bằng đồng 12 mm, dài 18 mm. | Truyền động trực tiếp từ trục động cơ xuống mặt sàn, đảm bảo độ bám. |
| Khối ngoại vi (Buzzer, LED, Nút bấm) | Còi báo 6V DC (âm lượng $\ge 85\text{ dB}$ tại 10 cm, tần số $2300 \pm 300\text{ Hz}$); LED báo trạng thái (công suất tiêu tán max 80 mW, dòng 20 mA); 3 nút nhấn điều khiển. | Giao tiếp người dùng, cấu hình chế độ, báo hiệu trạng thái hoạt động và cảnh báo sự cố mất đường line. |
Sơ đồ kết nối chân vi điều khiển
- Cảm biến analog (Sensor 1 đến 8): Nối tương ứng vào các chân từ
A0đếnA7. - Động cơ trái: Chân điều khiển nối với
D11vàD6(hỗ trợ PWM). - Động cơ phải: Chân điều khiển nối với
D9vàD5(hỗ trợ PWM). - Nút nhấn (Button 1, 2, 3): Nối lần lượt vào các chân
D7,D8,D12(cấu hìnhINPUT_PULLUP). - Còi báo (Buzzer): Nối vào chân
D4. - Hệ thống LED báo: Nối vào các chân
D2,D3,D13.
Kiến trúc phần mềm và thuật toán điều khiển
Hệ thống phần mềm được viết bằng ngôn ngữ C/C++ trên nền tảng Arduino IDE với các giải pháp kỹ thuật cụ thể:
- Lấy mẫu qua ngắt Timer2: Khởi tạo Timer/Counter 2 với thanh ghi
TCNT2 = 0xB2, kích hoạt cờ ngắt trànISR(TIMER2_OVF_vect). Mỗi khi ngắt xảy ra, hàmread_sensor()được gọi định kỳ để quét dữ liệu 8 cảm biến độc lập với vòng lặp chính, đảm bảo tính thời gian thực cho hệ thống. - Quy trình hiệu chỉnh (Auto-Calibration) và lưu EEPROM: Hàm
updateLine()đọc giá trị cực tiểu (vạch đen) và cực đại (nền trắng) khi kéo cảm biến qua lại trên vạch để tính ngưỡngcompare_value. Hàmread_Eeprom()kiểm tra và chỉ ghi dữ liệu mới khi có sự thay đổi giá trị nhằm giảm số lần ghi và bảo vệ tuổi thọ bộ nhớ EEPROM (1 KB). - Cơ chế điều khiển PID (trọng tâm khâu PD): Thuật toán tính toán sai số vị trí
i, độ biến thiên sai số(lastPos - i):- Thành phần tỉ lệ:
iP = kp * i - Thành phần vi phân:
iD = kd * (lastPos - i) - Tín hiệu điều khiển bù:
iRet = iP - iD(kèm điều kiện khóa giới hạn dướiif (iRet < -4000) iRet = 0để chống vọt lố quá mức).
- Thành phần tỉ lệ:
- Máy trạng thái (Finite State Machine - FSM): Chương trình điều hướng xe dựa trên biến trạng thái
pattern:pattern = 10: Khởi động mềm (soft-start) với tốc độ tăng dần đến khi biến đếmcnt >= 100.pattern = 11: Chế độ dò đường bình thường và giám sát các điều kiện đặc biệt.pattern = 12: Chế độ tìm lại vạch khi mất tín hiệu hoàn toàn (sensor == 0x00), kích hoạt quay dựa trên biến nhớ hướng trước đóRememberLine(giá trị $1$ hoặc $-1$).pattern = 21, 22: Điều khiển rẽ trái khi gặp ngã rẽ.pattern = 31, 32: Điều khiển rẽ phải khi gặp ngã rẽ.pattern = 100: Dừng động cơ và báo trạng thái.
Nội dung chính theo từng chương
Chương I: Mục tiêu và ý nghĩa đề tài
Chương này xác định lý do nghiên cứu, mục tiêu chế tạo robot dò line thông minh ứng dụng bộ điều khiển PID và 4 ý nghĩa thực tiễn trong công nghiệp, giáo dục và giao thông. Tác giả cũng khảo sát một số dòng xe dò line phổ biến hiện nay như robot sử dụng 2 cảm biến, 4 cảm biến và module 5 cảm biến hồng ngoại, làm cơ sở để nâng cấp lên cấu hình 8 cảm biến quang học nhằm nâng cao độ mịn của tín hiệu vị trí.
Chương II: Tổng quan lý thuyết
Nội dung chương tập trung giải thích định nghĩa xe dò line, nguyên lý phản xạ ánh sáng trên nền tương phản đen - trắng và cơ sở toán học của bộ điều khiển phản hồi PID gồm 3 thành phần P, I, D trong việc ổn định sai số bám đường.
Chương III: Thiết kế phần cứng
Chương III trình bày toàn diện thông số kỹ thuật, nguyên lý và cấu trúc cơ khí, mạch điện tử của robot. Tác giả phân tích chi tiết module 8 cảm biến quang trở, vi điều khiển Arduino Nano (ATmega328P), driver BTS7960 (43A), động cơ giảm tốc GA25-370 (tỉ số truyền 4.4, tốc độ có tải 1110 rpm), pin LiPo 3S 2800mAh 30C, cùng sơ đồ bố trí chân kết nối giữa vi điều khiển với khối cảm biến, khối chấp hành và khối hiển thị/ngoại vi.
Chương IV: Xây dựng giải thuật điều khiển
Chương IV phân tích chi tiết các trạng thái hình học của đường đi tương ứng với mẫu bit cảm biến nhị phân 8-bit và mức điều chế độ rộng xung (PWM) cấp cho động cơ trái và động cơ phải:
| Tình huống di chuyển | Mẫu bit cảm biến (S1 $\rightarrow$ S8) | PWM Động cơ Trái | PWM Động cơ Phải | Hành vi của robot |
|---|---|---|---|---|
| Đi thẳng | 00011000 |
150 | 150 | Hai bánh chạy đồng tốc về phía trước. |
| Rẽ trái nhẹ | 00110000 |
120 | 180 | Giảm tốc bánh trái, tăng tốc bánh phải. |
| Rẽ trái vừa | 01100000 |
90 | 200 | Tăng độ lệch tốc độ giữa hai bánh. |
| Rẽ trái mạnh | 11000000 |
60 | 240 | Bánh phải quay nhanh, bánh trái quay chậm. |
| Rẽ phải nhẹ | 00001100 |
180 | 60 | Giảm tốc bánh phải, tăng tốc bánh trái. |
| Rẽ phải vừa | 00000110 |
200 | 90 | Tăng độ lệch tốc độ sang phải. |
| Rẽ phải mạnh | 00000011 |
240 | 90 | Bánh trái quay nhanh, bánh phải quay chậm. |
| Cua vuông trái 90° | 11111000 |
0 | 255 | Bánh trái dừng hẳn, bánh phải chạy cực đại. |
| Cua vuông phải 90° | 00011111 |
255 | 0 | Bánh phải dừng hẳn, bánh trái chạy cực đại. |
| Mất line bên trái | Trước đó 10000000 $\rightarrow$ Hiện tại 00000000 |
-150 | 150 | Quay ngược chiều hai bánh để xoay xe tìm lại line bên trái. |
| Mất line bên phải | Trước đó 00000001 $\rightarrow$ Hiện tại 00000000 |
150 | -150 | Quay ngược chiều hai bánh để xoay xe tìm lại line bên phải. |
| Toàn bộ trên line | 11111111 |
0 | 0 | Dừng toàn bộ động cơ. |
Chương V: Thiết kế phần mềm
Mô tả lưu đồ giải thuật tổng thể, cấu trúc mã nguồn điều khiển, chi tiết các hàm chức năng (timer_init, ISR, loop, updateLine, SpeedSpectilize, read_sensor, read_Eeprom) và cơ chế phân chia trạng thái hoạt động dựa trên biến pattern.
Chương VI: Nạp chương trình và sử dụng xe
Trình bày quy trình 6 bước đưa robot vào vận hành thực tế:
- Nạp chương trình: Sử dụng phần mềm Arduino IDE mở file mã nguồn
LINE_BLACK.inovà nạp vào board Arduino Nano. - Cấp nguồn: Kết nối jack cắm của khối pin LiPo 3S với hệ thống nguồn trên xe.
- Kiểm tra nguồn pin: Đo kiểm tra điện áp bảo đảm pin đủ dung lượng hoạt động.
- Khởi động xe: Bật công tắc nguồn trên bo mạch chính; hệ thống phát tín hiệu bằng toàn bộ đèn LED sáng và còi buzzer kêu.
- Hiệu chỉnh cảm biến (Calibration): Đặt xe vào giữa vạch, kéo cảm biến lần lượt sang mép trái và mép phải để hệ thống ghi nhận ngưỡng sáng tối, sau đó đưa xe về lại vị trí trung tâm.
- Chọn chế độ di chuyển: Bấm 1 trong 3 nút nhấn để kích hoạt xe chạy theo 3 mức tốc độ cấu hình sẵn:
- Nút
BUTTON1: Tốc độ chạyspeed_run_forward = 50. - Nút
BUTTON2: Tốc độ chạyspeed_run_forward = 106. - Nút
BUTTON3: Tốc độ chạyspeed_run_forward = 150.
- Nút
Chương VII: Kết quả đạt được
Tổng hợp các kết quả thực nghiệm về khả năng bám line, tốc độ đáp ứng của động cơ và các hiện tượng vật lý phát sinh trong quá trình vận hành thực tế.
Chương VIII: Tài liệu tham khảo và Phụ lục
Liệt kê các nguồn tài liệu học thuật, dự án mã nguồn mở liên quan trên ProjectHub, ResearchGate, DIYables và cung cấp toàn văn mã nguồn chương trình điều khiển LINE_BLACK.ino.
Kết quả và đóng góp
Kết quả thực nghiệm chính
- Robot bám đường ổn định trên các đoạn đường thẳng ở cả dải tốc độ thấp và dải tốc độ cao (PWM 150).
- Hệ thống 8 cảm biến quang trở kết hợp LED trợ sáng nhận diện chính xác độ tương phản của đường kẻ vạch đen trên nền trắng trong các điều kiện ánh sáng khác nhau.
- Động cơ GA25-370 kết hợp driver BTS7960 đáp ứng công suất tốt, cung cấp tốc độ di chuyển nhanh và lực kéo mạnh mẽ.
- Ở dải tốc độ thấp và trung bình (
speed = 50và106), xe phản hồi tốt, xử lý mượt mà các góc cua thường và góc vuông 90°.
Giải pháp và đóng góp kỹ thuật của đề tài
- Thiết kế phần cứng tối ưu công suất: Sử dụng mạch cầu H công suất cao BTS7960 (dòng tải 43A) kết hợp nguồn pin LiPo 3S (dòng xả 30C, tức thời 84A), giải quyết triệt để vấn đề sụt áp hoặc quá nhiệt khi động cơ đảo chiều đột ngột ở các khúc cua gắt.
- Kỹ thuật ngắt thời gian thực: Ứng dụng ngắt tràn Timer2 trên ATmega328P để đọc cảm biến với chu kỳ cố định, loại bỏ hoàn toàn độ trễ tích lũy từ hàm
delay()trong vòng lặp chính. - Cơ chế tự hiệu chuẩn và bảo vệ bộ nhớ: Thiết kế quy trình học màu thực địa ghi vào EEPROM có đối sánh thay đổi, giúp robot thích nghi với sự thay đổi của độ phản xạ mặt sàn mà không làm giảm tuổi thọ ô nhớ của vi điều khiển.
- Giải thuật ghi nhớ hướng khi mất vạch: Xây dựng biến trạng thái
RememberLinecho phép robot tự động xoay ngược chiều hai bánh để quét tìm lại vạch line theo hướng đã ghi nhận trước đó thay vì bị mất phương hướng hoàn toàn.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế được ghi nhận trong văn bản
- Hiện tượng trượt bánh ở tốc độ cao: Khi vận hành ở dải tốc độ cao (
speed_run_forward = 150), lực quán tính lớn khiến bánh xe bị trượt ra khỏi đường line tại các khúc cua gấp và góc vuông 90°, do tốc độ phản hồi cơ khí và ma sát bánh xe chưa triệt tiêu kịp quán tính thân xe. - Chưa hoàn thiện khâu tích phân (I): Trong mã nguồn thực tế, hệ thống chủ yếu khai thác hai khâu P và D (hệ số
kp,kd) để tránh hiện tượng tích lũy sai số quá mức dẫn đến vọt lố.
Hướng nghiên cứu và mở rộng
- Cải tiến giải thuật điều khiển vận tốc thích nghi (Adaptive Speed Control): Tự động giảm tốc độ khi phát hiện cụm cảm biến biên nhận diện góc cua và tăng tốc trên các đoạn đường thẳng.
- Nâng cấp phần cứng cơ khí: Cải thiện vật liệu lốp cao su tăng hệ số ma sát bám đường, hạ thấp trọng tâm xe để hạn chế hiện tượng trượt văng bánh khi vào cua ở vận tốc lớn.
- Bổ sung bộ lọc tín hiệu số và hoàn thiện thuật toán PID đầy đủ 3 thành phần có chống bão hòa tích phân (Anti-windup).
Giá trị tham khảo
Báo cáo đồ án là tài liệu kỹ thuật có giá trị thực tiễn cao cho:
- Sinh viên các ngành Kỹ thuật: Robot và Trí tuệ nhân tạo, Kỹ thuật Điều khiển và Tự động hóa, Cơ điện tử, Kỹ thuật Điện - Điện tử đang thực hiện đồ án môn học hoặc nghiên cứu chế tạo xe tự hành AGV.
- Nội dung đáng tham khảo nhất:
- Thiết kế sơ đồ mạch động lực và điều khiển kết hợp vi điều khiển 8-bit với mạch cầu H công suất cao BTS7960.
- Kỹ thuật lập trình thanh ghi Timer2 trên kiến trúc vi điều khiển AVR ATmega328P để phục vụ ngắt thời gian thực.
- Cấu trúc máy trạng thái (FSM) và bảng phân bổ xung PWM điều khiển chuyển động vi sai theo mẫu bit cảm biến.
- Mã nguồn chương trình xử lý hiệu chuẩn cảm biến tự động lưu EEPROM.
Câu hỏi thường gặp
1. Dãy 8 cảm biến quang học trên robot hoạt động theo nguyên lý nào để nhận diện vạch đen?
Hệ thống sử dụng 8 quang trở kết hợp với 8 đèn LED siêu sáng trợ sáng phía trước. Đèn LED chiếu sáng xuống mặt đường; bề mặt trắng phản xạ ánh sáng mạnh làm điện trở quang trở giảm, trong khi vạch đen hấp thụ ánh sáng làm điện trở quang trở tăng cao. Sự thay đổi điện trở này tạo ra sự biến thiên điện áp analog (0-1023 trên thang 10-bit) đưa về 8 chân từ A0 đến A7 của Arduino Nano để vi điều khiển phân biệt trạng thái bit 0 (nền trắng) và bit 1 (vạch đen).
2. Tại sao đồ án sử dụng ngắt Timer2 thay vì đọc cảm biến trực tiếp trong hàm loop()?
Việc sử dụng ngắt tràn ISR(TIMER2_OVF_vect) với giá trị khởi tạo thanh ghi TCNT2 = 0xB2 giúp việc đọc cảm biến diễn ra theo chu kỳ thời gian thực hoàn toàn cố định và độc lập. Cơ chế này loại bỏ sự phụ thuộc vào thời gian thực thi của các khối lệnh điều kiện trong hàm loop(), tránh trễ tín hiệu và tăng độ ổn định cho giải thuật điều khiển bám đường.
3. Khi robot mất hoàn toàn đường line (trạng thái cảm biến 00000000), giải thuật xử lý như thế nào?
Khi toàn bộ 8 cảm biến đều đọc giá trị 0, hệ thống chuyển sang trạng thái pattern = 12 và kiểm tra biến RememberLine. Nếu trước đó vạch lệch về bên phải (RememberLine = 1), robot điều khiển bánh trái tiến, bánh phải lùi (PWM trái 150, PWM phải -150) để xoay tại chỗ sang phải tìm lại line. Ngược lại, nếu trước đó vạch ở bên trái (RememberLine = -1), robot sẽ xoay tại chỗ sang trái để bắt lại đường line.
4. Vai trò của bộ nhớ EEPROM trong quy trình hiệu chỉnh xe là gì?
Hàm updateLine() và read_Eeprom() được dùng để ghi nhận các giá trị sáng/tối chuẩn của từng cảm biến tại hiện trường và lưu vào bộ nhớ EEPROM (1 KB của ATmega328P). Việc này giúp hệ thống lưu giữ ngưỡng so sánh sau khi tắt nguồn hoặc reset mà không cần phải lập trình lại vi điều khiển, đồng thời code có bước kiểm tra đối sánh để chỉ ghi khi giá trị thay đổi nhằm bảo vệ độ bền của ô nhớ.
5. Robot cung cấp các cấp tốc độ nào và người dùng chọn chế độ bằng cách nào?
Sau khi khởi động và hiệu chuẩn, người dùng bấm 1 trong 3 nút nhấn trên thân xe để chọn tốc độ: nút 1 (chân D7) kích hoạt tốc độ chậm speed = 50, nút 2 (chân D8) kích hoạt tốc độ trung bình speed = 106, và nút 3 (chân D12) kích hoạt tốc độ cao speed = 150.
Kết luận
Đồ án "Robot dò line ứng dụng bộ điều khiển PID" của nhóm tác giả Đặng Lưu Nhật Duy và Nguyễn Đăng Anh đã hoàn thành trọn vẹn mục tiêu thiết kế và chế tạo mô hình robot tự hành bám vạch sử dụng 8 cảm biến quang học và vi điều khiển Arduino Nano. Công trình đã hiện thực hóa thành công giải thuật điều khiển số vi sai kết hợp ngắt định thời Timer2 và mạch công suất BTS7960, đảm bảo khả năng vận hành ổn định trên đường thẳng và xử lý chính xác các góc cua ở dải tốc độ thiết kế. Mặc dù còn hạn chế về hiện tượng trượt quán tính ở tốc độ tối đa, đồ án là tài liệu tham khảo hoàn chỉnh, giàu tính ứng dụng cho việc nghiên cứu và phát triển các hệ thống xe tự hành AGV trong tự động hóa công nghiệp.