Thuật toán PID robot dò line

We’ve updated our privacy policy so that we are compliant with changing global privacy regulations and to provide you with insight into the limited ways in which we use your data.

You can read the details below. By accepting, you agree to the updated privacy policy.

Thank you!

View updated privacy policy

We've encountered a problem, please try again.

Ái chà chà, lâu rồi không viết blog, giờ chả biết bắt đầu thế nào @@

Gần đây có nhiều bạn hỏi mình về robot dò đường, tiếc là mình không có thời gian để hướng dẫn chi tiết, hôm nay up code mới + một số hướng dẫn coi như bù đắp lại vậy. Nhớ like fage và follow facebook mình nhé.

Theo dõi facebook của mình để nhận được ưu đãi khi mua sản phẩm từ Obit team và được cập nhật bài viết nhanh nhất: https://www.facebook.com/thinh.chutien

Tại sao lại dò line?

Robot dò line là một trong những phương tiện di chuyển tự động đầu tiên được con người chế tạo, vì môi trường nó yêu cầu khá đơn giản – một nền bằng phẳng và một vạch màu tương phản mạnh (hoặc có các đặc tính khác) khác biệt mạnh so với môi trường xung quanh. Ta sẽ dùng cảm biến để đo đạc, phát hiện sự khác biệt này, sau đó nhúng một thuật toán điều khiển nào đó vào để điều khiển xe bám theo vạch line đó.

Thuật toán PID robot dò line

Trên ảnh là một con robot dò line như vậy, và nhà xưởng của Tesla có rất nhiều robot như vậy để chở đồ khắp các khu vực trong nhà máy. Robot dò line rất được ưa chuộng trong nhà máy vì nó đơn giản, rẻ, ổn định. Chúng ta chỉ cần 1 vạch đen trên nền trắng, chứ không cần đường ray phức tạp, cồng kềnh như xe goòng, tàu hỏa.

Thuật toán PID robot dò line

Về cơ bản, ta chỉ cần 2 cảm biến để xác định vị trí của robot so với vạch line. Tuy nhiên, robot thường có quán tính, đi quá… nên ta sẽ dùng nhiều cảm biến hơn để tăng độ chính xác, độ mượt cho xe.

Thuật toán PID robot dò line

Ngoài ra, việc sử dụng 2 sensor 2 bên khiến cho robot liên tục lắc lư, di chuyển, vì nó không phân biệt được đâu là trạng thái còn ở trong vạch, đâu là ngoài vạch. Lúc này ta sẽ thêm 1 cảm biến ở chính giữa, cảm biến này luôn tiếp xúc vạch đen khi robot đi đúng đường, thuật toán của chúng ta sẽ phải điều khiển robot để cảm này luôn nằm trong vùng vạch đen.

PID thuật toán giải quyết vấn đề

PID các bạn tra google, mình không nói nhiều (vì mình nói không hay bằng google) nữa. Ở đây, mình mã hóa 5 cảm biến của mình thành các giá trị từ -4 đến 4. Trong đó giá trị ) xuất hiện khi cảm biến chính giữa nằm trong vùng vạch đen. Và thuật toán PID sẽ đặt setpoin = 0  để xe luôn bám theo vạch. Bằng 1 vài thủ thuật nhỏ trong code, mình đã tăng độ phân giải của cảm biến lên thành các giá trị -4 -3 -2 -1 0 1 2 3 4 thay vì -4 -2 0 2 4 như trên hình.

Cách hành xử của robot cũng rất đơn giản, khi cảm biến của một bên nào đó chạm vạch đen + nó càng xa cảm biến ở giữa thì bánh xe bên đối diện quay càng mạnh để đẩy xe về vị trí cân bằng.

Thuật toán PID robot dò line

Ở đây, chúng ta có sơ đồ thuật toán của xe, khá bất ngờ vì hình này mình mượn trên mạng, nhưng rất giống với thuật toán của mình

Thuật toán PID robot dò line

Về cách đấu nối, thì xe đấu nối khá đơn giản, các bạn có thể xem bên dưới, khung xe thì các bạn mua về rồi tự lắp nhé

Thuật toán PID robot dò line

Xe mình dùng 2 pin lithium 3.7v 18650 cho điện áp tối đa 8.4v, đủ để nuôi xe + arduino + cảm biến… Nguồn 5V được lấy từ module L298 đem đi nuôi arduino, cảm biến dò line.

Thuật toán PID robot dò line

Như các bạn thấy, xe khá đơn giản, cảm biến mình dùng loại cảm biến hồng ngoại đơn chiếc, vì nó dễ tinh chỉnh từng cái + ổn định. Tuy nhiên nó hơn tốn chỗ cắm nguồn, nên mình phải hàn 1 pcb cắm jum nối nguồn để lấy chỗ cắm nguồn cho sensor

Thuật toán PID robot dò line

Trên hình mình có đánh thứ tự sensor, các bạn nối chân out của sensor theo thứ tự vào chân của arduino như sơ đồ kết nối bên trên (cái sơ đồ trắng trắng vẽ tay ấy).

Vạch đen cho xe mình dùng băng dính điện thông thường, các bạn có thể mua ngoài hàng điện nước. Khi lắp xong nhớ đặt robot xuống căn chỉnh, vặn cái biến trở trên các module cảm biến ấy, sao cho khi để vào vạch đen rồi bỏ ra khỏi vạch thì led trên cảm biến cũng thay đổi theo. Cuối cùng nếu thấy hay thì nhớ share bài, like page, follow facebook mình để mình có thêm động lực viết bài mới nhé, vì mình còn nhiều, rất nhiều thứ hay mà chưa share.

Dưới đây là video test của các bạn học khóa Arduino One Day của mình

Theo dõi facebook của mình để nhận được ưu đãi khi mua sản phẩm từ Obit team và được cập nhật bài viết nhanh nhất: https://www.facebook.com/thinh.chutien

À quên, linh down load code và các tài liệu cần thiết đây nhé