Mục lục:

Cánh tay robot Arduino: 5 bước
Cánh tay robot Arduino: 5 bước

Video: Cánh tay robot Arduino: 5 bước

Video: Cánh tay robot Arduino: 5 bước
Video: Arduino | Cánh Tay Robot 5-DOF Stepper | Tính Năng Tắt Điều Khiển 2024, Tháng mười một
Anonim
Image
Image
Cánh tay robot Arduino
Cánh tay robot Arduino
Cánh tay robot Arduino
Cánh tay robot Arduino

Vì đây là dự án đầu tiên của tôi sau 15 hướng dẫn của bộ khởi động Arduino, nên mục đích thực sự của nó là nhận được một số nhà phê bình, mẹo, đề xuất và ý tưởng từ bất kỳ ai hiểu biết nhiều hơn tôi.

Dự án này nói về một cánh tay robot, với 4 dofs và một tay cầm. Với ngân sách thấp: cấu trúc đã bị cắt bởi một người bạn, 4 servo là 30 €, 2 cần điều khiển 4 €, vít bu lông, v.v. với giá dưới 10 € và tất cả những thứ còn lại (Arduino, dây điện, servo của tay cầm, v.v.) đã được bao gồm trong bộ khởi động của tôi. Với tổng số tiền từ 40-45 €, tức là khoảng 45-50 đô la Mỹ (cùng mức giá của một bộ dụng cụ cho tôi, nhưng này, thật vui khi bạn phải tự mình chế tạo nó (và thỉnh thoảng lại làm hỏng thứ gì đó) và không theo hướng dẫn như một cái máy).

Vì đây là dự án đầu tiên của tôi và có thể hướng dẫn nên tôi đã lọt vào danh sách '' Tác giả lần đầu tiên '' và một vài cuộc thi khác, vì vậy nếu bạn thích nó, hãy bình chọn nó:)

Bước 1: THIẾT KẾ VÀ LẮP RÁP:

Đầu tiên, tôi cần một cấu trúc: Đây chắc chắn là phần dài nhất Vì tôi không muốn sao chép và dán dự án từ người khác, tôi đã lấy một dự án làm tài liệu tham khảo và tôi (và một số bạn học lành nghề hơn đã thực sự cứu tôi) bắt đầu sửa đổi nó theo nhu cầu của chúng tôi (các servo khác nhau với mô-men xoắn, trọng lượng và kích thước khác nhau, v.v.). Tôi đã phải xây dựng nó một vài lần, mỗi cái trong số chúng tôi thấy có gì đó không ổn và chúng tôi phải ghép lại một số mảnh và thử lại. Tôi đã đính kèm tệp.dxf trong trường hợp bạn muốn sử dụng nó. Sau đó tôi phải mua thiết bị điện tử: Hầu hết các bộ phận đều là tiêu chuẩn, phần khó là chọn Servos. Tôi đã tính toán mô-men xoắn cần thiết với quy tắc ngón tay cái, sau đó tôi đã thử một phép tính chính xác hơn và tôi phát hiện ra rằng tôi có thể đã làm quá mức cần thiết một chút. Rõ ràng 6 kg / cm sẽ là đủ cho servo thứ 2 (từ đế) và của tôi cung cấp 9-11 kg / cm. Chà, điều này mang lại cho tôi một chút an toàn và cơ hội để tải lên đến 2kg tải (điều này là không thể, nhưng tôi thích về mặt kỹ thuật thì tôi có thể làm được). Tôi cũng có thể đã mua các servos khác nhau, với mô-men xoắn giảm dần khi di chuyển ra khỏi cơ sở, nhưng mua các Servos giống hệt nhau từ cùng một nhà cung cấp cho đến nay là lựa chọn rẻ nhất. 350mA và microservo 9g rút ra 100mA, tổng cộng là 350 * 4 +100 = 1500mA. Vì vậy, tôi đã trục vớt một bộ sạc (6V 1.5A) và hàn hai dây jumper vào nó. (Nếu một số bạn có thể cần một số hướng dẫn thực sự, chỉ cần hỏi trong phần nhận xét và tôi sẽ cố gắng hết sức để tạo Hướng dẫn) Danh sách vật liệu: - Kết cấu - Vít M5x7cm x5, bu lông m5 x15 (đế) - Vít M3x16mm x18 * - Vít M3x20mm x13 * - Bu lông M3 x40 * - Vít M3x8cm x3 - Kẹp (nếu không sẽ rơi) - 3 chốt- Arduino (hoặc thứ gì đó khác để điều khiển nó, nó phải có ít nhất 5 PWM) - Một cái gì đó để cung cấp 5-6V và ít nhất 1,5A - Cần điều khiển giống như 3x ps2- 4x TowerPro mg995 servos- 1x TowerPro 9g microservo (đối với tay cầm) - Rất nhiều dây nhảy - Breadboard * (Tôi đã sử dụng bu lông và ốc vít để có thể lắp ráp và tháo rời nhanh chóng, nếu không bạn có thể thay thế gần như tất cả chúng bằng vít đồ gỗ)

Bước 2: MÃ:

Ý tưởng là điều khiển mọi servo bằng một trong hai trục của cần điều khiển giống ps2. Mỗi cần điều khiển dường như có “giá trị nghỉ” khác nhau (giá trị từ 0-1023 khi nó đứng yên) cho cả trục y và x. là một vấn đề, vì sự khác biệt là nhỏ (một có số 0 trên y ở 623) và tôi muốn sử dụng chức năng bản đồ để chuyển đổi từ 0-1023 thành độ. Nhưng hàm bản đồ cho rằng giá trị còn lại là 1023/2. Điều này dẫn đến mọi servo di chuyển ngay sau khi tôi bật Arduino, không tốt. làm cho mã ngắn hơn và thông minh hơn, tôi đã yêu cầu anh ta đọc các giá trị còn lại trong hàm thiết lập và lưu chúng trong một số biến. Tôi đã phải chia nó cho một hằng số: Tôi đã thử nhiều giá trị, cho đến khi tôi đưa ra giá trị cuối cùng là 200 (tôi có thể thêm một chiết áp để thay đổi thủ công giá trị này thành giá trị mong muốn). Phần còn lại của mã là khá chuẩn, tôi đoán, mặc dù có thể đẹp hơn nếu đặt phép tính gia số bên trong một hàm riêng biệt.

Bước 3: ĐIỆN TỬ:

THIẾT BỊ ĐIỆN TỬ
THIẾT BỊ ĐIỆN TỬ

Cách đấu dây giống như trong hình hoặc tệp tin: tín hiệu servos đến các chân: 5-6-9-10-11 và trục cần điều khiển đến các chân analog: A0-A1-A2-A3-A4 là các cần điều khiển ĐÃ ĐƯỢC Arduino cung cấp, KHÔNG PHẢI bởi bộ sạc mà tôi sử dụng cho servo. Nếu không, servo sẽ phát điên khi di chuyển qua lại ngẫu nhiên. Tôi nghĩ điều đó có thể là do, nếu tôi cung cấp bộ sạc cho chúng, Arduino sẽ không thể phân biệt chính xác sự khác biệt tiềm ẩn khi tôi di chuyển chúng, nhưng sau đó lại: Tôi rất mới làm quen với thiết bị điện tử nên chỉ là phỏng đoán thôi. Kết nối mặt đất Arduino và mặt đất bộ sạc thông qua bảng mạch giúp ngăn chặn các chuyển động ngẫu nhiên và bất ngờ, vì một lý do tương tự của nguồn cung cấp cần điều khiển mà tôi cho là vậy.

Bước 4: HIỆN TẠI ĐANG CẢI TIẾN:

HIỆN NAY ĐANG CẢI TIẾN
HIỆN NAY ĐANG CẢI TIẾN

Vì mỗi cần điều khiển có thể điều khiển 2 servo (1 trên mỗi trục), tôi cần 3 servo để điều khiển toàn bộ cánh tay, nhưng thật không may, tôi chỉ có 2 ngón tay cái. Vì vậy, tôi nghĩ rằng thay vì điều khiển mọi servo, tôi chỉ có thể điều khiển vị trí xyz của nắm và mở báng cầm, tổng cộng có 4 trục, 2 cần điều khiển và 2 ngón tay cái! Tôi phát hiện ra rằng vấn đề đó được biết đến với cái tên Chuyển động ngược, tôi cũng phát hiện ra rằng tất cả đều dễ dàng. Ý tưởng là viết (phương trình phi tuyến tính để tìm trạng thái của mọi effector (góc đối với servo) cho vị trí cuối cùng. Tôi đã tải lên một bài báo viết tay với các phương trình và tôi hiện đang làm việc với một mã mới để sử dụng chúng. Nó sẽ không quá khó, về cơ bản tôi phải đọc các cần điều khiển, sử dụng số đọc của chúng để sửa đổi tọa độ xyz của báng cầm, sau đó đưa chúng vào phương trình của tôi, tính toán các góc của servo và viết chúng.

Bước 5: CẢI TIẾN TƯƠNG LAI:

Vì vậy, tôi khá hài lòng với kết quả của nó và cho rằng tôi hoàn toàn mới làm quen với thiết bị điện tử, việc không thổi bay thứ gì đó hoặc bản thân mình đã là một chiến thắng lớn. Như tôi đã nói ở phần đầu, bất kỳ ý tưởng nào cho những cải tiến trong tương lai, cả phần mềm và cho đến nay tôi đã nghĩ về: 1. Chiết áp để thay đổi "độ nhạy" của các cần điều khiển. 2. Mã mới để khiến anh ta "ghi lại" một số chuyển động và thực hiện lại (có thể nhanh hơn và ngắn hơn so với đầu vào của con người) 3. Một số loại đầu vào bằng hình ảnh / khoảng cách / giọng nói và có thể lấy các đối tượng mà không cần ai đó sử dụng cần điều khiển4. Có thể vẽ các hình hình học Bất kỳ ý tưởng nào khác? Xin vui lòng bình luận với bất kỳ đề xuất nào.

Đề xuất: