RobotArm – Cánh tay robot in 3D (Arduino Mega + RAMPS 1.4)
RobotArm là cánh tay robot có thể in 3D, dùng stepper NEMA17, Arduino Mega + RAMPS 1.4 và driver A4988. Thiết kế dùng nhiều ball bearing, trọng tâm thấp, chạy nguồn 12V, hỗ trợ điều khiển kiểu GCODE và có phần mềm Windows.
Mô tả
Đây là một cánh tay robot có thể in 3D. Việc làm ra một bộ có thể sẽ tốn nhiều thời gian hơn một dự án cuối tuần bình thường. Nhưng chuyện lắp ráp là một phần, còn môi trường ứng dụng mới là phần còn lại. Và đó mới là điều quan trọng: học hỏi, kết hợp và phát triển các ứng dụng tùy biến. Nếu bạn làm bản biến thể (derivative), vui lòng chỉ upload những phần bạn đã thay đổi. Cảm ơn.
Community
Có một vài bản biến thể và dự án do cộng đồng thực hiện, bạn xem thử nhé!
- Một số bản biến thể hữu ích như end switches và belt drive có thể cải thiện bản RobotArm của bạn.
- 20sffactory đã tạo một nhóm hỗ trợ trên Facebook https://www.facebook.com/groups/828749637471209
- 20sffactory cũng có một dự án điều khiển bằng giọng nói bằng Python, xem trên Github https://github.com/20sffactory/voicebot_opensource
- Aaron Huang đã chỉ ra một số lỗi trong inverse kinematics: https://github.com/AaronHuang1228/Question-for-RobotArm Code và tài liệu đã được cập nhật tương ứng
Nếu bạn muốn thêm mục mới hoặc bổ sung vào danh sách này, cứ nhắn cho mình.
Hardware
Mục tiêu thiết kế của mình là làm một robot cứng cáp, chắc chắn, nhưng vẫn nhỏ gọn và dễ thao tác. Mình dùng các step motor NEMA17 phổ biến, đủ lực cho chuyển động nhanh và độ chính xác cao.
Hầu như mỗi khớp chuyển động đều có ít nhất một ball bearing để giảm ma sát, tăng độ ổn định tổng thể và độ chính xác. Robot được thiết kế có trọng tâm thấp.
Robot dùng nguồn Computer Power Supply (12V).
Gripper rất dễ thay và luôn được giữ theo phương ngang ở mọi vị trí, giúp lập trình đơn giản hơn và cũng giảm chi phí/độ phức tạp của các trục (axies) bổ sung.
Phần lớn chi tiết có vẻ ngoài kiểu công nghiệp giống các chi tiết gang đúc.
Software
Software hiện ở trên Github tại đây: https://github.com/ftobler/robotArm/
Hệ điều khiển dùng Arduino Mega với board RAMPS 1.4 và driver A4988. Mình cung cấp một nền tảng code Arduino chắc chắn và chạy ổn, xử lý nội suy (interpolation) cho stepper motors, thực hiện các phép tính hình học và tăng/giảm tốc mượt. Nó có thể giao tiếp kiểu GCODE qua Serial.
Bạn có thể dùng phần mềm trực tiếp mà không cần chỉnh sửa, hoặc có thể gắn thêm phần cứng như cảm biến.
Để bạn bắt đầu nhanh, mình có một giao diện đơn giản cho máy Windows, có sẵn sequencer và các tuỳ chọn điều khiển thủ công.
Bạn nên có kỹ năng lập trình khá ổn để chỉnh sửa và sử dụng Software. Mình khuyến nghị vậy vì theo mình, lập trình là phần then chốt khi dùng robot. Không có nó thì bạn chỉ mới chạm được phần “bề mặt” của những gì thật sự làm được.
Assembly
Có nhiều phiên bản cho các bánh răng lớn. Nếu cần, bạn có thể in nhiều lần để giảm độ rơ (gear slack) của trục quay xuống mức thấp nhất. Tùy theo stepper motor của bạn cao bao nhiêu, chọn chiều cao chân (leg height) phù hợp. Nếu cần thì dùng keo 502 (superglue) để cố định bearings. Mình không taro ren trực tiếp trên nhựa. Với PLA (có thể cả vật liệu khác) bạn có thể “tạo” ren bằng cách vặn cho nóng do ma sát, nhưng có thể bạn sẽ muốn khoan rộng lỗ ra một chút.
Đi dây cho robot không khác gì một máy in 3D dùng board RAMPS. Xem tài liệu chính thức: http://www.reprap.org/wiki/RAMPS_1.4
Chi tiết kích thước có trong file 'doc2.pdf'
Video
Mình làm một animation 3D giúp bạn có cái nhìn tổng quan về kỹ thuật, và có thêm một video khác mình demo một ứng dụng đơn giản.
Animation: https://youtu.be/-LztK9TKcZk
Robot thực tế: https://youtu.be/HLlylJr_Vs4
Print Settings
Printer:
RF1000
Rafts:
No
Supports:
No
Resolution:
0.2mm
Infill:
khoảng 15%
Notes:
In bằng PLA trong (clear).
Vui lòng chú ý độ khít của bánh răng; có nhiều phiên bản để bạn chọn.
How I Designed This
Turntable
Một trong những phần quan trọng nhất trong thiết kế của mình là turntable. Nó dùng nhiều steel bearings.
Một thrust bearing lớn được dùng để giảm độ uốn (flex) trong thiết kế. Vì chi tiết in 3D mềm hơn kim loại, bạn có thể cần diện tích tiếp xúc lớn hơn. Khi tay robot duỗi hết cỡ phía trên, mọi sai số dung sai của bánh răng và bearing đều bị “nhân lên”.
turntable là một trong những phần quan trọng nhất
Góc nhìn của thrust bearing lớn. Vì nó gồm các chi tiết rời nên có một bulông và thêm hai bearing nữa. (Thrust Bearing 25x42x11mm (51105))
Chi tiết góc nhìn base bearings.
Drawings
bản vẽ chi tiết của robot. RobotArm được hiển thị ở vị trí Endstop
Topology của một môi trường robot điển hình. Robot thường nằm ở trung tâm và mỗi trạm/máy được canh theo hướng xuyên tâm. Cách này hợp lý vì robot quay và có thể vươn tới mọi thứ khá dễ.
một số ball bearing nhỏ mình dùng. (Bearing 4x13x5mm (624zz) và Flanged Bearing 13x6x5mm (F686zz))
GCODE
Một lệnh gcode hợp lệ sẽ như: G1 X0 Y120 Z120
Giữa các phần phải có dấu cách.
- G0=G1: Di chuyển XYZ theo mm (cartesian), F theo mm/s. Luôn dùng tọa độ tuyệt đối (Absolute). Khác với máy in 3D, không có trục E. Mỗi lần di chuyển đều có tăng tốc và giảm tốc.
- G4: Dwell / Sleep T tính bằng milliseconds
- M3: Đóng gripper / Aux Motor T tính bằng Steps. Không thể chạy đồng thời với G
- M5: Mở gripper / Aux Motor T tính bằng Steps. Không thể chạy đồng thời với G
- M17: Enable Stepper Motors, đồng thời bật Fan
- M18: Disable Stepper Motors, đồng thời tắt Fan có độ trễ
- M106: Bật Fan
- M106: Tắt Fan
Desktop Software
Mình viết một ứng dụng desktop đơn giản để điều khiển robot. Rõ ràng là nó có thể mở rộng thành một dự án phần mềm rất lớn, nên hiện tại chỉ cung cấp các thao tác đơn giản.
RobotArm_Software_v2.zip có một số bugfix, bao gồm vài vấn đề kết nối.
Phần mềm được viết bằng Delphi
Softwareinterface
Nuts and Bolts
Đây là số lượng ước tính không bảo hành. Mình chỉ đếm những cái nằm trên robot. Vì vậy mình khuyên bạn mua dư hơn so với danh sách. Thêm washer tùy nhu cầu, có thể mua nhiều size khác nhau. Washer và vít tiếp xúc với bearing chỉ được phép chạm vào phần vòng trong (phần quay) của bearing.
- 16x M3x6
- 21x M3x8 (3x dùng làm set screws)
- 4x M3x10
- 2x M3 Washer (loại lớn cho gripper)
- 4x M3 Nut
- 6x M4x10
- 11x M4x16
- 2x M4x25
- 14x M4 Washer (đủ nhỏ cho Bearing)
- 8x M4 Nut
- 12x M6 Washer (đủ nhỏ cho Bearing)
- 3x M6 Nut
- 3x M6 Self Locking Nut
- 3x M6x45
- 1x thanh ren M6x80mm
Category: Robotics
Giấy phép
File mô hình
Chưa có bản in nào được khoe. Hãy là người đầu tiên!
Chưa có bình luận nào. Hãy là người đầu tiên!