Mục lục:

Cánh tay robot điều khiển bằng dây: 31 bước
Cánh tay robot điều khiển bằng dây: 31 bước

Video: Cánh tay robot điều khiển bằng dây: 31 bước

Video: Cánh tay robot điều khiển bằng dây: 31 bước
Video: Hướng dẫn lắp CÁNH TAY ROBOT ARDUINO điều khiền TỪ XA& nạp code.Sẽ như thế nào nếu kết hợp với drone 2024, Tháng mười một
Anonim
Cánh tay robot điều khiển bằng dây
Cánh tay robot điều khiển bằng dây

Đây là hướng dẫn về cách tạo một cánh tay robot được điều khiển bằng dây. Lợi thế của việc sử dụng dây là cánh tay của bạn nhẹ hơn và bạn có thể có tất cả các động cơ ở phía dưới cánh tay của mình, giúp việc xây dựng và bảo trì dễ dàng hơn. Đây là video về cánh tay đang hoạt động. Tôi dự định sẽ thêm một cái vuốt trong tương lai để nó có thể nhặt mọi thứ chứ không chỉ đẩy chúng lung tung.

Bản in 3D:

Đây và Đây

Quân nhu

6 Động cơ Servo (MG995)

Arduino Uno

Khoảng 6 mét dây thép bọc nhựa (0,5mm)

Hộp 23x33x10 (có thể hẹp hơn, chắc chắn không được ngắn hơn)

Ván gỗ 33x10

Các loại hạt và bu lông

Ống 14 cm (cái này cần thiết để dẫn hướng các dây)

4 chân đế chữ L

Bộ chuyển đổi 5 volt

2 khối thiết bị đầu cuối 7 chiều

Dây bảng mạch

Các thành phần in 3D (Không phải do tôi thiết kế, liên kết đến các thành phần trong mô tả):

3 "Bu lông"

2 "Yếu tố 1"

1 "Yếu tố 2"

2 "Yếu tố 3"

1 đầu nối cơ sở

Bước 1: In tất cả các thành phần 3D

Bạn có thể cần hỗ trợ cho các lỗ bu lông và vòm nhưng hãy đảm bảo không thêm hỗ trợ vào thân các bộ phận của bạn; Điều này sẽ đóng các lỗ dây nhỏ và bạn sẽ cần phải tạo các lỗ mới

Bước 2: (Tùy chọn) Gắn một tấm gỗ vào đáy hộp của bạn để tăng cường sức mạnh

Hộp của tôi khá yếu, hộp của bạn có thể không

Bước 3: Đo và cắt một tấm gỗ để lắp hộp

Bước 4: Đánh dấu vị trí của động cơ

đảm bảo rằng không có cánh tay nào chạm vào nhau

Bước 5: Đánh dấu vị trí của giá đỡ và ống

Đánh dấu vị trí của giá đỡ và ống
Đánh dấu vị trí của giá đỡ và ống

Đường ống nên được đặt khoảng một cm trước lỗ

Bước 6: Khoan lỗ để lấy cáp ra khỏi hộp của bạn (USB và nguồn)

Khoan lỗ để lấy cáp ra khỏi hộp của bạn (USB và nguồn)
Khoan lỗ để lấy cáp ra khỏi hộp của bạn (USB và nguồn)

Bước 7: Khoan và cưa tất cả các lỗ đã đánh dấu

Khoan và cưa tất cả các lỗ đã đánh dấu
Khoan và cưa tất cả các lỗ đã đánh dấu

Bước 8: Gắn động cơ và đường ống vào tấm ván

Bước 9: Gắn tấm ván vào hộp bằng giá đỡ chữ L

Bước 10: Lấy các khối thiết bị đầu cuối của bạn và hàn các dây lại với nhau

Lấy các khối thiết bị đầu cuối của bạn và hàn các dây lại với nhau
Lấy các khối thiết bị đầu cuối của bạn và hàn các dây lại với nhau

Bước 11: Cắt đầu dây nguồn bộ điều hợp và tước dây

Bước 12: Xác định và đánh dấu các dây Cộng và dây trừ

Bước 13: Gắn dây vào các khối đầu cuối sao cho tất cả + Dây Servo và + Dây từ Dây nguồn được kết nối, Đi chung với - Dây

Gắn dây vào các khối đầu cuối để tất cả các + dây Servo và + dây từ dây nguồn được kết nối, các dây - đều được kết nối giống nhau
Gắn dây vào các khối đầu cuối để tất cả các + dây Servo và + dây từ dây nguồn được kết nối, các dây - đều được kết nối giống nhau

Bước 14: Cắt đầu khỏi dây Breadboard

Cắt đầu khỏi dây Breadboard
Cắt đầu khỏi dây Breadboard

Gắn đầu đã tước của dây breadboard vào khối thiết bị đầu cuối trừ và đầu ghim vào chân nối đất trong arduino của bạn. Nếu bạn không làm điều này, các động cơ sẽ chuyển động thất thường mà không cần bất kỳ đầu vào nào.

Bước 15: Khoan ba lỗ ở đáy hộp để lấy dây ra khỏi cánh tay của bạn

Các lỗ phải khớp với các lỗ trên đầu nối đế.

Bước 16: Gắn đầu nối cơ sở vào hộp

Gắn đầu nối cơ sở vào hộp
Gắn đầu nối cơ sở vào hộp

Bước 17: Dùng dao hoặc giũa móng tay để làm rãnh dây sâu hơn

Sử dụng một con dao hoặc giũa móng tay để làm cho rãnh dây sâu hơn
Sử dụng một con dao hoặc giũa móng tay để làm cho rãnh dây sâu hơn

Các rãnh dây cho phần tử 2 và 3 quá nông.

Bước 18: Cấu tạo cánh tay

Cấu tạo cánh tay
Cấu tạo cánh tay

Cấu tạo cánh tay theo hướng dẫn ở đây, bạn có thể cần dũa các bộ phận để chúng vừa khít

Bước 19: Cài đặt Xử lý và Arduino

Xử lý và Arduino

Bước 20: Dán các chương trình mã

Mã ở cuối trang này

Bước 21: Kết nối các Chân điều khiển Servo với Arduino

Kết nối các chân điều khiển Servo với Arduino
Kết nối các chân điều khiển Servo với Arduino

Tôi kết nối động cơ đầu tiên với chân kỹ thuật số thứ ba, động cơ thứ hai với chân kỹ thuật số thứ tư, v.v. Đảm bảo rằng chân nối đất vẫn được kết nối với khối đầu cuối -.

Bước 22: Nhấn nút Reset trong quá trình xử lý, điều này sẽ đặt tất cả các cánh tay thành 90 độ

Bước 23: Cố định Cánh tay Servo vào Động cơ theo chiều ngang

Bước 24: Luồn dây qua cánh tay để không bị tuột

Đảm bảo bạn luồn dây qua càng nhiều lỗ càng tốt, điều này sẽ giữ dây tạm thời và dễ dàng tháo ra.

Bước 25: Kiểm tra cánh tay và siết chặt hoặc nới lỏng dây khi cần thiết

Bước 26: Keo nóng các dây vào các cánh tay Servo để làm cho nó tồn tại vĩnh viễn

Bước 27: Ghi chú

Ghi chú
Ghi chú

Tôi đã sử dụng dây trang sức 0,5mm nhưng 0,4mm nên ổn. Thiết kế ban đầu sử dụng dây PVC nhưng nó bị đứt quá dễ dàng và khó xử lý.

Nếu bạn chuẩn bị di chuyển cánh tay trong ô tô hoặc xe đạp, hãy quấn các khớp tay bằng băng keo để đảm bảo chúng không bị bung ra. Điều này đặc biệt quan trọng đối với yếu tố 1.

Khi tôi bắt đầu dự án này, tôi đã tự hỏi tại sao tôi chỉ có thể tìm thấy một hướng dẫn về cách tạo một cánh tay được điều khiển bằng dây. Giờ tôi đã hiểu tại sao đây không phải là cách phổ biến nhất để tạo ra một cánh tay robot theo sở thích. Đôi khi dây điện bị rơi ra khỏi rãnh và toàn bộ là loại mỏng manh. Tôi không biết vấn đề là do tôi không có nhiều kinh nghiệm hay toàn bộ ý tưởng có vấn đề mặc dù tôi chắc chắn rằng nó sẽ vững chắc hơn nếu tôi biết mình đang làm gì.

Bước 28: Khắc phục sự cố

Các lỗ dây được đóng lại trong các phần tử in 3D:

Bạn đã thêm hỗ trợ cho toàn bộ phần tử thay vì chỉ các lỗ bu lông. In lại phần tử hoặc mở các lỗ bằng kim thật nóng.

Cổng COM bị đóng, bạn không thể giao tiếp với arduino:

Arduino của bạn có thể không chấp nhận cổng USB 3 (của tôi thì không), bạn có thể mua cáp mở rộng USB 2 hoặc sử dụng máy tính có cổng USB 2

Mã không hoạt động:

Làm theo hướng dẫn này và sửa đổi nó để tạo mã của riêng bạn

Một phần của cánh tay không cử động:

Các dây có thể đã bị rối, để kiểm tra điều này, hãy tháo tay servo ra khỏi servo và thử kéo dây bằng tay. Gỡ dây và nếu vẫn khó kéo dây, hãy thử sử dụng WD-40 hoặc chất bôi trơn để giúp di chuyển dễ dàng hơn

Bước 29: Liên kết

Cánh tay không robot:

Arm 3D Printables:

Cánh tay của tôi có thể in 3D:

Arduino và quá trình xử lý:

Bước 30: Mã

Được sửa đổi từ mã này

Mã Arduino:

#include // Khai báo động cơ Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; Servo myservo6; // Tất cả các động cơ được đặt ở 90 độ theo mặc định int current1 = 90; int current2 = 90; int current3 = 90; int current4 = 90; int current5 = 90; int current6 = 90; // Mức độ tối thiểu và tối đa mà động cơ có thể đạt tới int mini1 = 0; int maxi1 = 180; int mini2 = 0; int maxi2 = 180; int mini3 = 0; int maxi3 = 180; int mini4 = 0; int maxi4 = 180; int mini5 = 0; int maxi5 = 180; int mini6 = 0; int maxi6 = 180; // Độ được thêm hoặc bớt từ vị trí hiện tại int DegFoward = 5; // Trì hoãn để hai hàm không xảy ra sai thứ tự int delayBetweenSteps = 100; void setup () {// Đặt chân điều khiển cho từng động cơ myservo1.attach (3); myservo2.attach (4); myservo3.attach (5); myservo4.attach (6); myservo5.attach (7); myservo6.attach (8); // Đặt tất cả các động cơ thành cài đặt mặc định myservo1.write (current1); myservo2.write (current2); myservo3.write (current3); myservo4.write (current4); myservo5.write (current5); myservo6.write (current6); // bắt đầu giao tiếp nối tiếp @ 9600 bps Serial.begin (9600); } void loop () {if (Serial.available ()) {// nếu có dữ liệu để đọc char val = Serial.read (); // đặt nó vào char này // Điều khiển động cơ if (val == 'a' && current1 + DegFoward mini1) {myservo1.write (current1 - DegFoward); current1 = current1 - độFoward; trì hoãn (delayBetweenSteps); } if (val == 'c' && current2 mini2) {myservo2.write (current2 - DegFoward); current2 = current2 - độFoward; trì hoãn (delayBetweenSteps); } if (val == 'e' && current3 mini3) {myservo3.write (current3 - DegFoward); current3 = current3 - độFoward; trì hoãn (delayBetweenSteps); } if (val == 'g' && current4 mini4) {myservo4.write (current4 - DegFoward); current4 = current4 - độFoward; trì hoãn (delayBetweenSteps); } if (val == 'i' && current5 mini5) {myservo5.write (current5 - DegFoward); current5 = current5 - độFoward; trì hoãn (delayBetweenSteps); } if (val == 'k' && current6 mini6) {myservo6.write (current6 - DegFoward); current6 = current6 - độ trì hoãn (delayBetweenSteps); } // Điều khiển tốc độ if (val == 'w') {// Nếu nhấn nút speed 1 độ DegFoward = 1; trì hoãn (delayBetweenSteps); } if (val == 'x') {// Nếu nhấn nút speed 5 độ DegFoward = 5; trì hoãn (delayBetweenSteps); } if (val == 'y') {// Nếu nhấn nút speed 10 độ Foward = 10; trì hoãn (delayBetweenSteps); } if (val == 'z') {// Nếu nhấn nút speed 20 độ Foward = 20; trì hoãn (delayBetweenSteps); } if (val == 'r') {// Nếu nhấn nút speed 20 myservo1.write (90); dòng điện1 = 90; myservo2.write (90); dòng điện2 = 90; myservo3.write (90); dòng điện3 = 90; myservo4.write (90); dòng điện4 = 90; myservo5.write (90); dòng điện5 = 90; myservo6.write (90); dòng điện6 = 90; trì hoãn (delayBetweenSteps); }}}

Mã xử lý:

nhập xử lý.serial. *; kiểm soát nhập khẩuP5. *; // nhập thư viện ControlP5 Cổng nối tiếp; ControlP5 cp5; // tạo font PFont đối tượng ControlP5; void setup () {// giống như kích thước chương trình arduino (300, 700); // kích thước cửa sổ, (width, height) printArray (Serial.list ()); // in tất cả các cổng nối tiếp có sẵn // Nếu bạn đang gặp sự cố, nó có thể xuất phát từ đây String portName = Serial.list () [0]; port = new Serial (this, portName, 9600); // tôi đã kết nối arduino với com3, nó sẽ khác trong linux và mac os // cho phép thêm buton vào cửa sổ trống cp5 = new ControlP5 (this); font = createFont ("Arial", 13); // phông chữ tùy chỉnh cho các nút và tiêu đề // Nút điều khiển tốc độ cp5.addButton ("Một") // "Một" là tên của nút.setPosition (50, 50) // tọa độ x và y của góc trên bên trái của nút.setSize (55, 25) // (chiều rộng, chiều cao).setFont (phông chữ); cp5.addButton ("Năm").setPosition (110, 50).setSize (55, 25).setFont (phông chữ); cp5.addButton ("Mười").setPosition (170, 50).setSize (55, 25).setFont (phông chữ); cp5.addButton ("Hai mươi").setPosition (230, 50).setSize (55, 25).setFont (phông chữ); cp5.addButton ("Đặt lại").setPosition (110, 2).setSize (55, 25).setFont (phông chữ); cp5.addButton ("Servo_1_Foward").setPosition (50, 90).setSize (190, 40).setFont (phông chữ); // Nút điều khiển động cơ cp5.addButton ("Servo_1_Back").setPosition (50, 140).setSize (190, 40).setFont (font); cp5.addButton ("Servo_2_Foward").setPosition (50, 190).setSize (190, 40).setFont (phông chữ); cp5.addButton ("Servo_2_Back").setPosition (50, 240).setSize (190, 40).setFont (phông chữ); cp5.addButton ("Servo_3_Foward").setPosition (50, 290).setSize (190, 40).setFont (phông chữ); cp5.addButton ("Servo_3_Back").setPosition (50, 340).setSize (190, 40) // (chiều rộng, chiều cao).setFont (phông chữ); cp5.addButton ("Servo_4_Foward").setPosition (50, 390).setSize (190, 40).setFont (phông chữ); cp5.addButton ("Servo_4_Back").setPosition (50, 440).setSize (190, 40) // (chiều rộng, chiều cao).setFont (phông chữ); cp5.addButton ("Servo_5_Foward").setPosition (50, 490).setSize (190, 40).setFont (phông chữ); cp5.addButton ("Servo_5_Back").setPosition (50, 540).setSize (190, 40).setFont (phông chữ); cp5.addButton ("Servo_6_Foward").setPosition (50, 590).setSize (190, 40).setFont (phông chữ); cp5.addButton ("Servo_6_Back").setPosition (50, 640).setSize (190, 40).setFont (phông chữ); } void draw () {// giống như vòng lặp trong nền arduino (192, 215, 249); // màu nền của window (r, g, b) or (0 to 255) // Thêm văn bản điều khiển tốc độ là điều khiển tốc độ điền (0, 10, 25); // màu văn bản (r, g, b) textFont (font); text ("Kiểm soát tốc độ", 50, 40); // ("text", x toạ độ, y phối hợp)} // cho phép thêm một số chức năng vào các nút của chúng tôi // để khi bạn nhấn bất kỳ nút nào, nó sẽ gửi một ký tự cụ thể qua cổng nối tiếp // Tôi chắc chắn rằng có thể gửi chuỗi thay vì ký tự, và nó sẽ có ý nghĩa hơn nhưng tôi không biết làm thế nào để làm điều đó // Các lệnh điều khiển tốc độ void One () {port.write ('w'); } void Five () {port.write ('x'); } void Ten () {port.write ('y'); } void Twenty () {port.write ('z'); } // Lệnh điều khiển động cơ void Servo_1_Foward () {port.write ('a'); } void Servo_1_Back () {port.write ('b'); } void Servo_2_Foward () {port.write ('c'); } void Servo_2_Back () {port.write ('d'); } void Servo_3_Foward () {port.write ('e'); } void Servo_3_Back () {port.write ('f'); } void Servo_4_Foward () {port.write ('g'); } void Servo_4_Back () {port.write ('h'); } void Servo_5_Foward () {port.write ('i'); } void Servo_5_Back () {port.write ('j'); } void Servo_6_Foward () {port.write ('k'); } void Servo_6_Back () {port.write ('l'); } void Reset () {port.write ('r'); }

Bước 31: Thêm hình ảnh

Đề xuất: