Trong dự án xBot này, chúng ta sẽ cùng tìm hiểu về động cơ servo và cách lập trình để điều khiển tay gắp sử dụng động cơ servo sg90 nhé!
Động cơ servo có thể thực hiện được lệnh xoay cánh tay động cơ đến vị trí được lập trình sẵn (từ 0 đến 180 độ) một cách tức thời hoặc theo một tốc độ cho trước.
Chiều xoay của động cơ servo là hướng khi chúng ta quan sát trực diện với mặt trục xoay. Theo quay ước, chiều xoay từ phải sang trái tức ngược chiều kim đồng hồ của động cơ servo sẽ tính từ góc 0 độ đến 180 độ.
Servo sg90 có 3 dây tín hiệu như sau:
Tay gắp thường được sử dụng trong các cấu trúc Robot, cánh tay máy để gắp hoặc di chuyển đồ vật.
Để lắp ráp tay gắp, vui lòng xem tại đây.
Góc servo quay để đóng tay gắp là 70 độ.
Góc servo quay để mở tay gắp là 0 độ.
Đầu tiên hãy lắp tay gắp vào xBot và kết nối dây servo vào như hình bên dưới.
Hình ảnh servo được gắn vào cổng S1 của mạch điều khiển
Ví dụ 1: Điều khiển đóng mở tay gắp nhanh
Trong ví dụ trên, ta sử dụng khối lệnh sau:
Điều khiển động cơ servo 180 độ quay tới một góc nào đó tức thời. Trong đó:
Ví dụ 2: Điều khiển đóng mở tay gắp từ từ
Trong ví dụ trên, ta sử dụng khối lệnh sau:
Điều khiển động cơ servo 180 độ quay tới một góc tới hạn degree với thời gian nghỉ sleep sau mỗi bước di chuyển change. Trong đó:
Ở bài trước, chúng ta đã tìm hiểu cách để lập trình cho robot đi theo vạch đen. Bây giờ chúng ta sẽ dựa vào chương trình đó và kết hợp thêm tay gắp, khi phát hiện có vật cản thì gắp vật, sau đó quay lại và tìm vạch đen gần nhất để thả vật. Sau đó là quay lại vị trí ban đầu để tìm thêm vật cản.
Và quá trình này lặp đi lặp lại tương tự như các dây chuyền trong quy trình sản xuất, và khi đó nhờ vào sự phát triển của những ứng dụng robot thế này mà chúng ta sẽ giảm đi rất nhiều nhân lực, sức lực và thời gian sản xuất.
Và đầu tiên, chúng ta sẽ giải quyết bài toán như sau:
Quá trình trên thực hiện mãi cho đến khi nào chúng ta dừng robot.
Chương trình mẫu:
Giải thích chương trình:
Ở chương trình này, ta sẽ sử dụng các hàm nhỏ để dễ dàng quản lý tác vụ cho robot. Chúng ta có 3 hàm chính như sau:
Hàm di_theo_vach_den()
Đối với hàm này, các bạn xem lại bài hướng dẫn về cách thực hiện robot đi theo line để tìm hiểu thêm nhé.
Hàm lay_vat()
Nếu cảm biến siêu âm của robot chưa phát hiện vật cản thì robot vẫn thực hiện hàm di_theo_vach_den()
Nếu phát hiện vật thì:
Hàm tha_vat()
Nếu robot chưa phát hiện vạch đen thì robot vẫn thực hiện hàm di_theo_vach_den()
Nếu robot phát hiện vạch đen thì
Và cuối cùng, trong vòng lặp chính, ta chỉ cần gọi hàm lay_vat() và tha_vat() là hoàn tất:
Các bạn có thể tải chương trình mẫu tại đây. Chúc các bạn thực hiện thành công!