Mục lục:

Cánh tay robot được điều khiển bởi Arduino và PC: 10 bước
Cánh tay robot được điều khiển bởi Arduino và PC: 10 bước

Video: Cánh tay robot được điều khiển bởi Arduino và PC: 10 bước

Video: Cánh tay robot được điều khiển bởi Arduino và PC: 10 bước
Video: Arduino | CÁNH TAY ROBOT 4 BẬC - LẬP TRÌNH ĐIỀU KHIỂN TỪ XA 2024, Tháng bảy
Anonim
Image
Image
Lý thuyết đằng sau dự án
Lý thuyết đằng sau dự án

Cánh tay robot được sử dụng rộng rãi trong công nghiệp. Cho dù đó là cho các hoạt động lắp ráp, hàn hoặc thậm chí một cái được sử dụng để gắn vào ISS (Trạm vũ trụ quốc tế), chúng giúp con người trong công việc hoặc chúng thay thế con người hoàn toàn. Cánh tay mà tôi đã chế tạo là đại diện nhỏ hơn của cánh tay robot được cho là dùng để di chuyển các vật thể. Nó được điều khiển bởi arduino pro mini đã tích hợp sẵn thư viện để điều khiển các servos. Servos được điều khiển bởi PWM (Điều chế độ rộng xung), không khó để lập trình nhưng thư viện này làm cho nó dễ dàng hơn. Người dùng có thể điều khiển các Servo đó bằng chiết áp được thiết kế để hoạt động như bộ chia điện áp hoặc từ chương trình trên PC sử dụng 4 thanh trượt để điều khiển động cơ servo.

Đối với dự án này, tôi phải thiết kế PCB tùy chỉnh của mình và tạo ra nó, tạo mô hình 3D của cánh tay và viết mã điều khiển tất cả. Trên hết, tôi đã mã hóa chương trình bổ sung bằng python gửi tín hiệu đến arduino, công cụ này quản lý để giải mã tín hiệu đó và di chuyển servos đến vị trí mà người dùng đã đặt.

Bước 1: Lý thuyết đằng sau dự án

Lý thuyết đằng sau dự án
Lý thuyết đằng sau dự án

Arduino tuyệt vời ở chỗ nó cung cấp thư viện miễn phí để làm việc. Đối với dự án này, tôi đã sử dụng thư viện Servo.h giúp điều khiển các servos dễ dàng hơn rất nhiều.

Động cơ servo được điều khiển bởi PWM -Pulse Width Modulation- có nghĩa là để điều khiển servo, bạn cần tạo xung điện áp ngắn. Servo có thể giải mã độ dài của tín hiệu này và xoay đến vị trí nhất định. Và đây là nơi tôi đã sử dụng thư viện đã được đề cập. Tôi không phải tự mình tính toán độ dài của tín hiệu nhưng tôi đã sử dụng các hàm của thư viện mà tôi chỉ cần truyền tham số theo độ và nó tạo ra tín hiệu.

Để điều khiển các servo, tôi đã sử dụng chiết áp hoạt động như bộ chia điện áp. Bảng Arduino có một số bộ chuyển đổi tương tự / kỹ thuật số mà tôi đã sử dụng cho dự án. Về cơ bản arduino đang theo dõi điện áp trên chân giữa trên chiết áp và nếu nó xoay sang một bên thì điện áp trên đó là 0 Vôn (giá trị = 0) và ở phía bên kia là 5 Vôn (giá trị = 1023). Giá trị này sau đó được chia tỷ lệ từ phạm vi 0 - 1023 thành 0 - 180 và sau đó nó được chuyển đến hàm đã được đề cập.

Một chủ đề khác là giao tiếp nối tiếp với arduino mà tôi sẽ trình bày ngắn gọn. Về cơ bản, chương trình được viết trên PC sẽ gửi giá trị do người dùng chọn, arduino có thể giải mã nó và di chuyển servo đến vị trí nhất định

Bước 2: Thiết kế PCB

Thiết kế PCB
Thiết kế PCB
Thiết kế PCB
Thiết kế PCB
Thiết kế PCB
Thiết kế PCB

Tôi đã thiết kế 2 PCB - một cho điều khiển chính là arduino và các chân cho servo và trên thứ hai là chiết áp. Lý do cho 2 PCB là tôi muốn điều khiển cánh tay robot từ khoảng cách an toàn. Cả hai mạch được kết nối bằng cáp có chiều dài nhất định - trong trường hợp của tôi là 80 cm.

Đối với nguồn điện, tôi đã chọn bộ chuyển đổi bên ngoài vì các Servos mà tôi đã sử dụng tiêu thụ nhiều điện hơn so với arduino có thể cung cấp. Như bạn có thể thấy, có một số tụ điện mà tôi chưa đề cập đến. Chúng là các tụ điện được sử dụng để lọc. Như bạn đã biết bây giờ, động cơ servo được điều khiển bằng các xung ngắn. Những xung đó có thể làm cho điện áp cung cấp giảm xuống và chiết áp trước đây có dải 0-5 volt bây giờ có dải nhỏ hơn. Điều đó có nghĩa là điện áp trên chân giữa thay đổi và arduino nhận giá trị này và thay đổi vị trí của động cơ servo. Điều này có thể kéo dài mãi mãi và nó gây ra dao động không mong muốn có thể bị loại bỏ bởi một số tụ điện song song với nguồn cung cấp.

Bước 3: Làm PCB

Làm PCB
Làm PCB
Làm PCB
Làm PCB
Làm PCB
Làm PCB

Để làm PCB, tôi đề nghị bạn đọc cái này.

Tôi đã sử dụng phương pháp Iron on Glossy paper và nó hoạt động rất tốt.

Sau đó, tôi hàn các bộ phận trên PCB. Bạn có thể thấy rằng tôi đã sử dụng ổ cắm arduino trong trường hợp tôi sẽ cần nó trong tương lai.

Bước 4: Thiết kế cánh tay

Thiết kế cánh tay
Thiết kế cánh tay
Thiết kế cánh tay
Thiết kế cánh tay
Thiết kế cánh tay
Thiết kế cánh tay

Đây hoàn toàn không phải là phần khó nhất khi thực hiện dự án này.

Toàn bộ thiết lập được làm từ 8 bộ phận trong đó 4 bộ phận không phải là bộ phận chuyển động - hộp chiết áp và đế đặt arduino - và 4 bộ phận khác là chính cánh tay. Tôi sẽ không đi sâu vào chi tiết ngoại trừ rằng thiết kế khá trực quan và đơn giản theo một cách nào đó. Nó được thiết kế để phù hợp với PCB và servos tùy chỉnh của tôi mà tôi sẽ đưa vào danh sách các bộ phận.

Bước 5: In các bộ phận

In các bộ phận
In các bộ phận
In các bộ phận
In các bộ phận
In các bộ phận
In các bộ phận

Các bộ phận được in trên máy in Prusa. Một số mặt cần được mài một chút và khoan lỗ. Ngoài ra các trụ đỡ cũng cần được loại bỏ.

Bước 6: Kết hợp tất cả lại với nhau

Để tất cả chúng cùng nhau
Để tất cả chúng cùng nhau
Để tất cả chúng cùng nhau
Để tất cả chúng cùng nhau
Để tất cả chúng cùng nhau
Để tất cả chúng cùng nhau
Để tất cả chúng cùng nhau
Để tất cả chúng cùng nhau

Trong bước này như tiêu đề đã nói, tôi tổng hợp tất cả lại với nhau.

Lúc đầu, tôi hàn dây trên chiết áp và sau đó là những dây đó trên PCB. Chiết áp vừa khít với các lỗ và tôi đã dán nóng PCB lên các trụ được in dưới đáy hộp. Bạn có thể khoan lỗ trên bảng và vào hộp nhưng tôi phát hiện ra rằng dán nó là quá đủ. Sau đó, tôi đóng cả hai phần của hộp và cố định chúng vào vị trí bằng 4 vít khớp vào các lỗ mà tôi đã thiết kế.

Trong bước tiếp theo, tôi đã tạo cáp ruy-băng phẳng để kết nối cả hai bảng.

Trong hộp chính, tôi hàn dây từ chân VCC của đầu nối để chuyển đổi và sau đó đến Vcc của bo mạch và từ GND của bo mạch đến GND của đầu nối. Sau đó, tôi dán nóng đầu nối vào vị trí và bảng trên các cột trụ. Đầu nối vừa khít với lỗ nên không cần dùng keo nóng.

Sau đó, bằng cách sử dụng vít, tôi đã gắn servo dưới cùng vào đáy hộp.

Sau đó, tôi đặt phần trên của hộp vào phần dưới cùng và giống như với hộp chiết áp, tôi đã cố định nó bằng 4 vít.

Phần tiếp theo hơi phức tạp một chút nhưng tôi đã cố gắng đặt phần còn lại của cánh tay với nhiều đai ốc và miếng đệm khác nhau và nó không chặt như tôi mong đợi vì tôi đã thiết kế một số dung sai giữa các bộ phận, vì vậy dễ dàng làm việc với chúng hơn.

Và bước cuối cùng, tôi đặt một số băng dính ở dưới cùng của các hộp vì nếu không chúng sẽ bị trượt.

Bước 7: Lập trình Arduino

Lập trình Arduino
Lập trình Arduino
Lập trình Arduino
Lập trình Arduino
Lập trình Arduino
Lập trình Arduino

Tôi đã đề cập đến cách chương trình hoạt động trên lý thuyết đằng sau dự án, nhưng tôi sẽ chia nhỏ nó nhiều hơn nữa.

Vì vậy, ngay từ đầu chúng ta cần xác định một số biến. Hầu hết nó được sao chép 4 lần vì chúng ta có 4 servos và theo ý kiến của tôi, không cần thiết phải thực hiện logic phức tạp hơn chỉ để làm cho chương trình ngắn hơn một chút.

Tiếp theo là thiết lập void nơi các chân của servos được xác định.

Sau đó, có vòng lặp void - một phần của chương trình lặp vô hạn. Trong phần này chương trình lấy giá trị từ chiết áp chia tỷ lệ và đưa vào đầu ra. Nhưng có một vấn đề là giá trị từ chiết áp nhảy khá nhiều, vì vậy tôi cần thêm bộ lọc trung bình của 5 giá trị cuối cùng và sau đó nó đưa vào đầu ra. Điều này ngăn chặn sự chao đảo không mong muốn.

Phần cuối của chương trình đọc dữ liệu từ cổng nối tiếp và quyết định phải làm gì dựa trên dữ liệu được gửi.

Để hiểu đầy đủ về mã, tôi khuyên bạn nên truy cập các trang web chính thức của arduino.

Bước 8: Lập trình bằng Python

Lập trình bằng Python
Lập trình bằng Python
Lập trình bằng Python
Lập trình bằng Python
Lập trình bằng Python
Lập trình bằng Python

Phần này của dự án này là không cần thiết nhưng tôi nghĩ rằng nó chỉ mang lại nhiều giá trị hơn cho dự án này.

Python cung cấp rất nhiều thư viện miễn phí để sử dụng nhưng trong dự án này, tôi chỉ sử dụng tkinter và serial. Tkinter được sử dụng cho GUI (Giao diện người dùng đồ họa) và nối tiếp như tên gọi của nó được sử dụng cho giao tiếp nối tiếp.

Mã này tạo GUI với 4 thanh trượt có giá trị nhỏ nhất là 0 và tối đa 180. Có thể gợi ý cho bạn rằng nó theo độ và mỗi thanh trượt được lập trình để điều khiển một servo. Chương trình này khá đơn giản - nó nhận giá trị và gửi nó đến arduino. Nhưng cách nó gửi thật thú vị. Nếu bạn chọn thay đổi giá trị của servo đầu tiên thành 123 độ, nó sẽ gửi đến giá trị arduino 1123. Số đầu tiên của mỗi số được gửi cho biết servo nào sắp được điều khiển. Arduino có mã có thể giải mã điều này và di chuyển servo phù hợp.

Bước 9: Danh sách các bộ phận

Danh sách các bộ phận
Danh sách các bộ phận
  • Arduino Pro Mini 1 mảnh
  • Servo FS5106B 1 mảnh
  • Servo Futaba S3003 2 miếng
  • Tiêu đề ghim 2x5 1 mảnh
  • Tiêu đề ghim 1x3 6 miếng
  • Tụ điện 220uF 3 miếng
  • Micro Servo FS90 1 mảnh
  • Đầu nối AWP-10 2 miếng
  • Đầu nối FC681492 1 mảnh
  • Switch P-B100G1 1 mảnh
  • Ổ cắm 2x14 1 mảnh
  • TTL-232R-5v - bộ chuyển đổi 1 mảnh
  • Chiết áp B200K 4 miếng
  • và nhiều ốc vít, miếng đệm và đai ốc khác

Bước 10: Kết luận

Cảm ơn bạn đã đọc điều này và tôi hy vọng rằng ít nhất tôi đã có động lực cho bạn. Đây là dự án lớn hơn đầu tiên của tôi mà tôi tự mình thực hiện mà không sao chép nội dung từ internet và bài đăng đầu tiên có hướng dẫn. Tôi biết rằng cánh tay có thể được nâng cấp nhưng hiện tại tôi hài lòng với nó. Tất cả các bộ phận và mã nguồn đều miễn phí, bạn có thể sử dụng nó và thay đổi nó theo bất kỳ cách nào bạn muốn. Nếu bạn có bất kỳ câu hỏi nào, hãy hỏi chúng trong phần bình luận. Bạn cũng có thể xem các video, chúng không có chất lượng tốt nhưng chúng cho thấy chức năng của dự án.

Đề xuất: