- Vật liệu thiết yếu:
- Khái niệm về người theo dòng
- Sơ đồ và giải thích mạch cho robot theo dòng Raspberry Pi:
- Lập trình Raspberry PI của bạn:
- Người theo dõi dòng Raspberry Pi đang hoạt động:
Như chúng ta đã biết Raspberry Pi là một nền tảng Phát triển tuyệt vời dựa trên bộ vi xử lý ARM. Với sức mạnh tính toán cao và các tùy chọn phát triển, nó có thể tạo ra những điều kỳ diệu trong tay của những người yêu thích điện tử hoặc sinh viên. Để tìm hiểu thêm về Raspberry Pi và cách hoạt động của nó, chúng ta hãy thử xây dựng Robot theo dòng bằng Raspberry Pi.
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ơ. Nghe có vẻ không hiệu quả nếu sử dụng một bộ vi xử lý mạnh mẽ như Raspberry Pi để chế tạo một robot đơn giản. Nhưng, robot này cho bạn chỗ để phát triển vô hạn và những 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
Vật liệu thiết yếu:
- Raspberry Pi 3 (bất kỳ mô hình nào cũng nên hoạt động)
- 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 tôi cũng sẽ cần một thiết bị tính toán như Raspberry Pi để 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 vạch đen thì chúng PI sẽ hướng dẫn động cơ chuyển động 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ì PI sẽ hướng dẫn robot rẽ trái bằng cách xoay bánh xe bên phải một mình.
Nếu cảm biến bên phải xuất hiện trên vạch đen thì PI 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ơ đồ và giải thích mạch cho robot theo dòng Raspberry Pi:
Sơ đồ mạch hoàn chỉnh cho Robot theo dõi dòng Raspberry Pi này được hiển thị bên dưới
Như bạn có thể thấy, mạch liên quan đến hai cảm biến IR và một cặp động cơ được kết nối với Raspberry pi. Mạch hoàn chỉnh được cung cấp bởi nguồn điện di động (đại diện là pin AAA trong mạch trên).
Vì chi tiết chân không được đề cập trên Raspberry Pi, chúng tôi cần xác minh các chân bằng cách sử dụng hình ảnh bên dưới
Như trong hình, chân trên cùng bên trái của PI là chân + 5V, chúng ta sử dụng chân + 5V này để cấp nguồn cho các cảm biến IR như trong sơ đồ mạch (có dây màu đỏ). Sau đó, chúng tôi kết nối các chân nối đất với mặt đất của cảm biến IR và mô-đun Trình điều khiển động cơ bằng dây đen. Các dây vàng được sử dụng để kết nối các pin đầu ra của cảm biến 1 và 2 để các chân GPIO và 3 tương ứng.
Để điều khiển Động cơ, chúng ta cần bốn chân (A, B, A, B). Bốn chân này được kết nối từ GPIO14,4,17 và 18 tương ứng. Dây màu cam và màu trắng cùng nhau tạo thành kết nối cho một động cơ. Vì vậy, chúng tôi có hai cặp như vậy cho hai động cơ.
Các động cơ được kết nối với mô-đun Trình điều khiển động cơ L293D như trong hình và mô-đun trình điều khiển được cung cấp năng lượng bởi nguồn điện. Đảm bảo rằng mặt đất của pin dự phòng được kết nối với mặt đất của Raspberry Pi, chỉ khi đó kết nối của bạn mới hoạt động.
Lập trình Raspberry PI của bạn:
Sau khi bạn hoàn thành việc lắp ráp và kết nối, robot của bạn sẽ trông giống như thế này.
Các bác sĩ cho biết thêm:Bây giờ, đã đến lúc lập trình bot của chúng tôi và làm cho nó chạy. Bạn có thể tìm thấy mã hoàn chỉnh cho bot này ở cuối hướng dẫn này. Tìm hiểu thêm về Chương trình và chạy mã trong Raspberry Pi tại đây. Những dòng quan trọng được giải thích bên dưới
Chúng tôi sẽ nhập tệp GPIO từ thư viện, chức năng bên dưới cho phép chúng tôi lập trình các chân GPIO của PI. Chúng tôi cũng đang đổi tên “GPIO” thành “IO”, vì vậy trong chương trình bất cứ khi nào chúng tôi muốn đề cập đến các chân GPIO, chúng tôi sẽ sử dụng từ 'IO'.
nhập RPi.GPIO dưới dạng IO
Đôi khi, khi các chân GPIO, mà chúng tôi đang cố gắng sử dụng, có thể đang thực hiện một số chức năng khác. Trong trường hợp đó, chúng tôi sẽ nhận được cảnh báo trong khi thực hiện chương trình. Lệnh dưới đây yêu cầu PI bỏ qua các cảnh báo và tiếp tục với chương trình.
IO.setwarnings (Sai)
Chúng ta có thể tham khảo các chân GPIO của PI, theo số chân trên bo mạch hoặc theo số chức năng của chúng. Giống như 'PIN 29' trên bảng là 'GPIO5'. Vì vậy, chúng tôi nói ở đây hoặc chúng tôi sẽ đại diện cho chốt ở đây bằng '29' hoặc '5'.
IO.setmode (IO.BCM)
Chúng tôi đang đặt 6 chân làm chân đầu vào / đầu ra. Hai chân đầu tiên là chân đầu vào để đọc cảm biến IR. Bốn chân tiếp theo là chân đầu ra trong đó hai chân đầu tiên được sử dụng để điều khiển động cơ bên phải và hai chân tiếp theo cho động cơ trái.
IO.setup (2, IO.IN) #GPIO 2 -> Left IR out IO.setup (3, IO.IN) #GPIO 3 -> Right IR out IO.OUT (4, IO.OUT) #GPIO 4 - > Mô tơ 1 đầu cuối A IO.setup (14, IO.OUT) #GPIO 14 -> Mô tơ 1 đầu cuối B IO.setup (17, IO.OUT) #GPIO 17 -> Mô tơ Đầu cuối bên trái A IO.setup (18, IO.OUT) #GPIO 18 -> Động cơ Ngõ bên trái B
Cảm biến IR cho kết quả "Đúng" nếu nó ở trên bề mặt trắng. Vì vậy, miễn là cả hai cảm biến đều nói Đúng, chúng ta có thể tiến lên phía trước.
if (IO.input (2) == True và IO.input (3) == True): #both màu trắng tiến về phía trước IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, Đúng) # 2A + IO.output (18, Sai) # 2B-
Chúng ta phải rẽ phải nếu cảm biến IR đầu tiên vượt qua vạch đen. Điều này được thực hiện bằng cách đọc cảm biến IR của anh ta và nếu điều kiện được thỏa mãn, chúng tôi dừng động cơ bên phải và quay động cơ bên trái một mình như được hiển thị trong mã bên dưới
elif (IO.input (2) == False và IO.input (3) == True): #turn right IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, Đúng) # 2A + IO.output (18, Sai) # 2B-
Chúng ta phải rẽ trái nếu cảm biến IR thứ hai vượt qua vạch đen. Điều này được thực hiện bằng cách đọc cảm biến IR và nếu điều kiện được thỏa mãn, chúng tôi dừng động cơ bên trái và quay động cơ bên phải một mình như được hiển thị trong mã bên dưới
elif (IO.input (2) == True và IO.input (3) == False): #turn left IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, Đúng) # 2A + IO.output (18, Đúng) # 2B-
Nếu cả hai cảm biến đều vượt qua vạch đen, điều đó có nghĩa là rô bốt phải dừng lại. Điều này có thể được thực hiện bằng cách làm cho cả hai đầu cuối của động cơ là đúng như thể hiện trên mã bên dưới
khác: #stay vẫn IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Người theo dõi dòng Raspberry Pi đang hoạt động:
Tải mã python cho người theo dõi dòng lên Raspberry Pi của bạn và chạy nó. Chúng tôi cần một nguồn điện di động, một pin dự phòng trong trường hợp này trở nên tiện dụng nên tôi đã sử dụng như vậy. Cái mà tôi đang sử dụng đi kèm với hai cổng USB nên tôi đã sử dụng để cấp nguồn cho PI và cổng khác cho Power Motor Driver như trong hình bên dưới.
Bây giờ tất cả những gì bạn phải làm là thiết lập bản nhạc màu đen của riêng bạn và thả bot của bạn lên đó. Tôi đã sử dụng băng cách nhiệt màu đen để tạo đường chạy, bạn có thể sử dụng bất kỳ vật liệu màu đen nào, nhưng hãy đảm bảo rằng màu nền của bạn không tối.
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 hiểu dự án và thích xây dựng một. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng vào phần bình luận bên dưới.