- Vật liệu thiết yếu:
- Khái niệm về người theo dòng
- Sơ đồ mạch và giải thích:
- Lập trình Vi điều khiển PIC:
- Người theo dõi dòng PIC đang hoạt động:
Robot theo dòng là một robot đơn giản nhưng hấp dẫn đối với hầu hết sinh viên / người có sở thích chế tạo. Trong hướng dẫn này, chúng ta sẽ tìm hiểu Cách hoạt động của Robot theo dòng và cách chúng ta có thể chế tạo một Robot bằng Vi điều khiển PIC PIC16F877A. PIC16F877A là một MCU đa năng 40 chân của Microchip, chúng tôi đã sử dụng vi mạch này trong loạt bài hướng dẫn PIC hoàn chỉnh của chúng tôi. Nếu bạn là người mới, ở đây bạn có thể muốn xem các hướng dẫn PIC này để tìm hiểu cơ bản về vi mạch này và cách tải các chương trình lên vi điều khiển. Vì chúng tôi đã đề cập đến thông tin này trong phần hướng dẫn của chúng tôi, chúng tôi sẽ bỏ qua chúng trong phần giải thích bên dưới.
Nếu bạn quan tâm đến người máy thì chắc hẳn bạn đã rất quen thuộc với cái tên “ Robot theo dòng ”. Robot này có khả năng đi theo một đường chỉ bằng cách sử dụng cặp cảm biến và động cơ. Robot này cung cấp cho bạn chỗ để phát triển vô hạn và các robot như Kiva (robot nhà kho của Amazon) là một ví dụ cho điều này. Bạn cũng có thể kiểm tra các Robot theo dòng khác của chúng tôi:
- Robot theo dòng sử dụng Vi điều khiển 8051
- Robot theo dòng sử dụng Arduino
- Robot theo dòng sử dụng Raspberry Pi
Vật liệu thiết yếu:
- PIC16F877A
- Cảm biến IR (2Nos)
- Động cơ bánh răng DC (2Nos)
- Trình điều khiển động cơ L293D
- Chaises (Bạn cũng có thể tự xây dựng bằng bìa cứng)
- Ngân hàng điện (Mọi nguồn điện khả dụng)
Khái niệm về người theo dòng
Robot theo dòng có thể theo dõi một đường với sự trợ giúp của cảm biến IR. Cảm biến này có Bộ phát hồng ngoại và Bộ thu hồng ngoại. Bộ phát hồng ngoại (IR LED) truyền ánh sáng và Bộ thu (Điốt quang) đợi ánh sáng truyền trở lại. Đèn hồng ngoại sẽ chỉ quay trở lại nếu nó bị phản xạ bởi một bề mặt. Trong khi đó, tất cả các bề mặt đều không phản xạ ánh sáng IR, chỉ có bề mặt màu trắng là có thể phản xạ hoàn toàn chúng và bề mặt màu đen sẽ hoàn toàn quan sát được chúng như trong hình bên dưới. Tìm hiểu thêm về mô-đun cảm biến hồng ngoại tại đây.
Bây giờ chúng tôi sẽ sử dụng hai cảm biến IR để kiểm tra xem rô bốt có đi đúng hướng hay không và hai động cơ để sửa rô bốt nếu nó di chuyển ra khỏi đường đua. Những động cơ này yêu cầu dòng điện cao và phải là hai chiều; do đó chúng tôi sử dụng mô-đun trình điều khiển động cơ như L293D. Chúng ta cũng sẽ cần một Bộ vi điều khiển như PIC để hướng dẫn động cơ dựa trên các giá trị từ cảm biến IR. Một sơ đồ khối đơn giản của cùng một được hiển thị bên dưới.
Hai cảm biến IR này sẽ được đặt ở hai bên của đường thẳng. Nếu không có cảm biến nào phát hiện ra vạch đen thì bộ vi điều khiển PIC sẽ hướng dẫn các động cơ di chuyển về phía trước như hình dưới đây
Nếu cảm biến bên trái có vạch đen thì bộ vi điều khiển sẽ hướng dẫn robot rẽ trái bằng cách xoay bánh xe bên phải.
Nếu cảm biến bên phải xuất hiện trên vạch đen thì bộ vi điều khiển sẽ hướng dẫn robot rẽ phải bằng cách xoay bánh xe bên trái một mình.
Nếu cả hai cảm biến trên vạch đen, robot sẽ dừng lại.
Bằng cách này, Robot sẽ có thể đi theo dòng mà không bị ra ngoài đường đua. Bây giờ chúng ta hãy xem mạch và Code trông như thế nào.
Sơ đồ mạch và giải thích:
Sơ đồ mạch hoàn chỉnh cho Robot theo dòng dựa trên PIC này được hiển thị bên dưới
Mạch sử dụng hai cảm biến IR và một cặp động cơ bánh răng DC cùng với mô-đun điều khiển động cơ như hình trên. Mô-đun trình điều khiển động cơ được sử dụng trong dự án này là L293D, chúng ta sẽ cần một trình điều khiển động cơ vì chân đầu ra của Vi điều khiển PIC không thể cung cấp đủ dòng điện cho động cơ để lái. Mô-đun này sẽ được cấp điện trực tiếp từ nguồn điện (5V) như hình vẽ trong mạch. Mô-đun có bốn chân (hai chân cho mỗi động cơ) được kết nối với PIC để điều khiển hướng của động cơ. Chúng tôi cũng có hai cảm biến IR hoạt động như một đầu vào cho bộ vi điều khiển PIC. Các cảm biến này sẽ tăng cao (1) nếu chúng ở trên bề mặt trắng và sẽ xuống thấp (0) khi ở trên bề mặt đen. Các kết nối chân hoàn chỉnh được minh họa trong bảng dưới đây.
S. không |
Được kết nối từ |
Kết nối với |
1 |
Cảm biến hồng ngoại Chân cắm trái |
RD2 (chân 21) |
2 |
Cảm biến hồng ngoại Chân ra phải |
RD3 (chân 22) |
4 |
Động cơ 1 kênh A pin |
RC4 (chân 23) |
5 |
Động cơ 1 kênh B chân |
RC5 (chân 25) |
6 |
Động cơ 2 kênh A pin |
RC6 (chân 26) |
7 |
Chân 2 kênh B của động cơ |
RC7 (chân 27) |
Trong phần cứng thực tế, tôi đã sử dụng một dự phòng điện sẽ cung cấp đầu ra + 5V trực tiếp thông qua cổng USB của nó; do đó tôi đã bỏ qua bộ điều chỉnh điện áp 7805 và cấp nguồn cho PIC, cảm biến và Động cơ sử dụng giống nhau. Bạn có thể làm tương tự như sử dụng pin 12V cùng với bộ điều chỉnh như trong mạch.
Lập trình Vi điều khiển PIC:
Khi bạn đã sẵn sàng với Phần cứng của mình, đã đến lúc bắt đầu lập trình. Các chương trình hoàn toàn của PIC Dòng Dự án Robot người theo dõi này được đưa ra vào cuối trang này. Tuy nhiên, các phần quan trọng được giải thích bên dưới.
Khởi tạo các chân I / O bằng các dòng sau. 2 chân cảm biến IR hoạt động như đầu vào và bốn chân động cơ hoạt động như chân đầu ra.
TRISD2 = 1; TRISD3 = 1; // Tắm các chân cảm biến IR được khai báo là đầu vào TRISC4 = 0; TRISC5 = 0; // Chân 1 động cơ khai báo là ngõ ra TRISC6 = 0; TRISC7 = 0; // Chân động cơ 2 được khai báo là đầu ra
Bây giờ, chúng ta phải đọc trạng thái của cả cảm biến IR và điều khiển động cơ cho phù hợp. Ví dụ, nếu cả hai cảm biến đều ở mức cao (không nằm dưới vạch đen) thì chúng tôi di chuyển cả hai động cơ về phía trước như thể hiện trong chương trình bên dưới.
if (RD2 == 1 && RD3 == 1) // Cả hai cảm biến không vượt qua dòng balck {RC4 = 0; RC5 = 1; // Động cơ 1 tiến RC6 = 1; RC7 = 0; // Động cơ 2 tiến}
Nếu cảm biến bên trái vượt qua vạch đen thì chúng ta rẽ phải bằng cách giữ yên Động cơ 1 và xoay Động cơ 2 theo hướng về phía trước. Kiểu quay này được gọi là quay vi sai.
else if (RD2 == 0 && RD3 == 1) // Cảm biến bên trái nằm trên vạch đen {RC4 = 1; RC5 = 1; // Động cơ 1 dừng RC6 = 1; RC7 = 0; // Động cơ 2 tiến}
Tương tự, nếu cảm biến bên phải vượt qua vạch đen thì bot được thực hiện rẽ trái bằng cách giữ yên động cơ thứ hai và quay một mình động cơ thứ nhất theo hướng về phía trước như hình dưới đây.
else if (RD2 == 1 && RD3 == 0) // Cảm biến bên phải vượt quá vạch đen {RC4 = 0; RC5 = 1; // Động cơ 1 tiến RC6 = 1; RC7 = 1; // Động cơ 2 dừng}
Cuối cùng, nếu cả hai cảm biến nằm dưới vạch đen thì đã đến lúc dừng bot. Điều này có thể được thực hiện bằng cách làm cao tất cả các chân của cả hai động cơ. Mã để làm điều tương tự được hiển thị bên dưới
else // Cả hai Cảm biến trên dòng đen {RC4 = 1; RC5 = 1; // Động cơ 1 dừng RC6 = 1; RC7 = 1; // Động cơ 2 dừng}
Đó là chương trình đã sẵn sàng và có thể được tải lên PIC bằng bất kỳ lập trình viên nào như PicKit.
Người theo dõi dòng PIC đang hoạt động:
Khi phần cứng và mã đã sẵn sàng, đã đến lúc cần thực hiện một số hành động. Như đã nói trước đó, tôi đã sử dụng Power bank để cấp nguồn cho bot, vì vậy tất cả những gì tôi phải làm chỉ đơn giản là kết nối pin dự phòng với bot đã được thiết lập phần cứng và mã đã được tải lên.
Bảng PIC Perf được tạo cho loạt bài hướng dẫn về PIC của chúng tôi, trong đó chúng tôi đã học cách sử dụng vi điều khiển PIC. Bạn có thể muốn quay lại các hướng dẫn về Vi điều khiển PIC sử dụng MPLABX và XC8 nếu bạn không biết cách ghi chương trình bằng Pickit 3, vì tôi sẽ bỏ qua tất cả các thông tin cơ bản đó.
Bây giờ, chỉ cần khởi chạy bot qua một đường màu đen và bạn nên xem nó theo dòng.
Bạn có thể gặp một số khó khăn khi bắt đầu trong trường hợp đó, hãy đọc thêm. Nếu các bánh xe quay ngược chiều chỉ cần hoán đổi cực của động cơ mà bánh xe của người đó đang quay theo hướng ngược lại. Nếu bot đi chệch khỏi đường thẳng, hãy hoán đổi cảm biến IR và tất cả đều tốt.
Hoạt động hoàn chỉnh của bot có thể được tìm thấy tại video dưới đây. Hy vọng bạn thích dự án và thích xây dựng một cái gì đó tương tự. Nếu bạn gặp vấn đề trong quá trình hoạt động, bạn có thể đăng chúng trong phần bình luận bên dưới để được giải quyết hoặc sử dụng diễn đàn của chúng tôi để thảo luận về các nội dung kỹ thuật.