Khi chúng ta đã kết nối và lắp ráp mọi thứ, chúng ta phải chuyển chương trình đến bảng Arduino, mà chúng ta sẽ cần kết nối bảng Arduino với máy tính hoặc máy tính xách tay. Khi chúng tôi đã chuyển chương trình sang bảng Arduino, chúng tôi phải đảm bảo rằng kết nối cáp với bảng Arduino mặc dù chúng tôi luôn có thể tiếp tục với bảng phát triển và tháo rời mọi thứ, cái sau nếu chúng ta chỉ muốn nó học.
Bạn đang xem: Hướng dẫn làm cánh tay robot
Phần mềm cần thiết để hoạt động
Mặc dù có vẻ như chúng ta đã chế tạo xong một cánh tay robot, nhưng sự thật là vẫn còn rất nhiều phía trước và điều quan trọng nhất. Tạo hoặc phát triển một chương trình mang lại sự sống cho cánh tay robot của chúng ta vì nếu không có nó, động cơ servo sẽ không ngừng là những cơ chế đồng hồ đơn giản quay mà không có ý nghĩa.
Điều này được giải quyết bằng cách kết nối bảng Arduino với máy tính của chúng tôi và mở chương trình IDE Arduino, chúng tôi kết nối máy tính với bảng và viết mã sau vào một tệp trống:
#include const int servo1 = 3; // first servoconst int servo2 = 10; // second servoconst int servo3 = 5; // third servoconst int servo4 = 11; // fourth servoconst int servo5 = 9; // fifth servoconst int joy
H = 2; // L/R Parallax Thumbstickconst int joy
V = 3; // U/D Parallax Thumbstickconst int joy
X = 4; // L/R Parallax Thumbstickconst int joy
P = 5; // U/D Parallax Thumbstickconst int potpin = 0; // O/C potentiometerint servo
Val; // variable to read the value from the analog pin
Servo myservo1; // create servo object to control a servo
Servo myservo2; // create servo object to control a servo
Servo myservo3; // create servo object to control a servo
Servo myservo4; // create servo object to control a servo
Servo myservo5; // create servo object to control a servovoid setup() {// Servomyservo1.attach(servo1); // attaches the servomyservo2.attach(servo2); // attaches the servomyservo3.attach(servo3); // attaches the servomyservo4.attach(servo4); // attaches the servomyservo5.attach(servo5); // attaches the servo// Inizialize Serial
Serial.begin(9600);}void loop(){servo
Val = analog
Read(potpin);servo
Val = map(servo
Val, 0, 1023, 0, 179);myservo5.write(servo
Val);delay(15);// Display Joystick values using the serial monitoroutput
Joystick();// Read the horizontal joystick value (value between 0 and 1023)servo
Val = analog
Read(joy
H);servo
Val = map(servo
Val, 0, 1023, 0, 180); // scale it to use it with the servo (result between 0 and 180)myservo2.write(servo
Val); // sets the servo position according to the scaled value// Read the horizontal joystick value (value between 0 and 1023)servo
Val = analog
Read(joy
V);servo
Val = map(servo
Val, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180)myservo1.write(servo
Val); // sets the servo position according to the scaled valuedelay(15); // waits for the servo to get there// Read the horizontal joystick value (value between 0 and 1023)servo
Val = analog
Read(joy
P);servo
Val = map(servo
Val, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180)myservo4.write(servo
Val); // sets the servo position according to the scaled valuedelay(15); // waits for the servo to get there// Read the horizontal joystick value (value between 0 and 1023)servo
Val = analog
Read(joy
X);servo
Val = map(servo
Val, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180)myservo3.write(servo
Val); // sets the servo position according to the scaled valuedelay(15); // waits for the servo to get there/*** Display joystick values*/void output
Joystick(){Serial.print(analog
Read(joy
H));Serial.print ("---");Serial.print(analog
Read(joy
V));Serial.println ("----------------");Serial.print(analog
Read(joy
P));Serial.println ("----------------");Serial.print(analog
Read(joy
X));Serial.println ("----------------");}Chúng tôi lưu nó và sau đó chúng tôi gửi nó vào đĩa Arduino UNO. Trước khi hoàn thiện mã, chúng tôi sẽ thực hiện các bài kiểm tra thích hợp để xác minh rằng các cần điều khiển hoạt động và mã không có bất kỳ lỗi nào.
Tôi đã gắn nó rồi, bây giờ thì sao?
Chắc hẳn nhiều bạn không ngờ đến loại cánh tay robot này, tuy nhiên nó rất lý tưởng vì những kiến thức cơ bản về nó là gì, chi phí nó có và cách dạy cách chế tạo robot. Từ đây mọi thứ thuộc về trí tưởng tượng của chúng ta. Đó là, chúng ta có thể thay đổi vật liệu, động cơ servo và thậm chí hoàn thành mã lập trình. Không cần phải nói điều đó quá chúng tôi có thể thay đổi mô hình bảng Arduino cho một mô hình hoàn chỉnh và mạnh mẽ hơn cho phép chúng tôi kết nối điều khiển từ xa hoặc làm việc với điện thoại thông minh. Nói tóm lại, một loạt các khả năng được cung cấp bởi Phần cứng Miễn phí và các cánh tay robot.
Trong bài này, chúng ta sẽ tạo ra một cánh tay giả, cánh tay robot tương tự như bàn tay con người với sáu bậc tự do (năm dộng cơ cho các ngón tay và một cho cổ tay). Nó được điều khiển bằng bàn tay con người, bằng cách sử dụng một chiếc găng tay được gắn cảm biến flex để phản hồi các ngón tay và IMU cho phản hồi góc cổ tay.
Đây là những tính năng chính của bàn tay:
Một bàn tay robot với 6 bậc tự do. Tất cả các bậc tự do được điều khiển bằng cách sử dụng servo.Cảm biến Flex: Năm cảm biến flex được gắn vào một chiếc găng tay. Những cảm biến flex này cung cấp phản hồi cho vi điều khiển được sử dụng để điều khiển cánh tay giả.IMU: IMU được sử dụng để lấy góc cổ tay.Hai evive (Arduino) dựa trên vi điều khiển được sử dụng: Một gắn vào găng tay để điều khiển góc cổ tay và chuyển động flex và cái còn lạị được gắn vào cánh tay để điều khiển servo.Phần điều khiển từ găng tay và cánh tay giả giao tiếp với nhau bằng cách sử dụng Bluetooth.Có thêm hai bậc tự do để cung cấp cho chuyển động theo mặt phẳng X và Z của cánh tay, đây là bước lập trình thêm để hoàn thành nhiệm vụ phức tạp hơn.Hai chuyển động phụ được điều khiển bằng cách sử dụng cần điều khiển.Bây giờ, chúng ta sẽ đi sâu hơn vào cách lắp ráp.
Bước 1: Tay và Forarm

Có rất nhiều mẫu thiết kế cho tay và forarm có sẵn trên internet. Chúng tôi đã lấy một trong những thiết kế từ In
Moov . Bạn có thể in 3D tại cachdung.com và linh kiện để làm cánh tay tại link
Chúng tôi chọn làm tay phải, vì vậy đây là những chi tiết cần thiết để in 3D:
1x Ngón cái1x Ngón trỏ1x Majeure1x Auriculaire1x Pinky1x Bolt_entretoise1x Wristlarge1x Wristsmall1x topsurface1x coverfinger1x robcap31x robpart21x robpart31x robpart41x robpart51x rotawrist21x rotawrist11x rotawrist31x WristGears1x Cable
Holder
Wrist
*Hướng dẫn lắp cánh tay giả:
i/

Cắt phần giữa bằng dao rọc giấy trên Rob
Part2, 3, 4 và 5

Lắp Rob
Part2 và 5 với nhau

Dùng keo để cố định 2 chi tiết trên với nhau

Làm tương tự với Rob
Part 3 và 4

Khoan các lỗ lên Rob
Part2 bằng mũi khoan 6mm như hình để thêm servo bổ sung cho ngón cái.

Lắp các khớp nối đi kèm với servo vào Rob
Part2

Trong Robpart5, chèn hai đai ốc cho các bu lông 3mm. Nếu đai ốc bị nhô ra, làm nóng chúng một chút sau đó chèn chúng vào lỗ sao cho chúng không bị nhô ra nữa.

Chỉnh các lỗ trên đế servo nếu chúng bị lỗi.

Đặt đế servo vào trong phần dưới của Robpart5.

Dán keo hoặc cố định nó bằng 2 vít.


Tiếp theo, sử dụng chi tiết (Tensioner.stl) để giữ các dây bằng cách sử dụng một lò xo 0,5mm, chiều dài 1cm (13/64 ″ x13 / 16 ″). Sử dụng một ống nhựa nhỏ luồng qua lỗ tròn của lò xo để điều khiển dây, nó giúp tránh làm mòn dây.
QUAN TRỌNG: Khi kéo căng tạo sức căng cho dây, cố gắng giữ các lò xo không bị biến dạng (không kéo dài ra).Các lò xo chỉ để cung cấp sự ổn định cho chiều dài của dây khi cổ tay quay.


Tiếp theo, lắp các servo bằng vít vào đế servo.

Đây là Rob
Ring và Servo
Pulley (màu trắng) dung để gắng lên bánh răng của servo.


Chỉnh lại các lỗ trên Servo
Pulley bằng mũi khoan 2mm

Sử dụng các vít đi kèm với các servo của bạn để gắn thiết bị truyền động màu đen vào Servo
Pulley.

Cắt các đuôi vít bị dư ra
Bây giờ sử dụng sketch Arduino để thiết lập tất cả các servos của bạn ở 90 độ. Lắp vít tất cả các Servo
Pulleys lên servo như được hiển thị. Khi các Servo
Pulleys được cố định, sử dụng sketch một lần nữa, đặt tất cả các servos thành 0 độ. Tránh di chuyển chúng trong các bước tiếp theo, nếu không bạn sẽ cần phải đặt lại chúng về 0 độ.


Gắn trên đế servo Rob
Cable
Front và Rob
Cable
Back.
ii/

Trên Rota
Wrist1 bỏ phần hổ trợ như hình.

Chỉnh các lỗ bằng mũi khoang

Lắp Rota
Wrist1 vào Rosb
Part ở bước trên

Dùng cây dũa để mài nếu không lắp được

Lắp theo hình và cẩn thận lắp ngược.

Dán keo tại khớp nối của 2 chi tiết

Lắp servo MG996 của bạn vào để cổ tay quay 180 độ.

Lắp vít để cố định servo.

Khoan 1 lỗ như hình bằng mũi khoan 2.5mm lên Rob
Wrist2

Rota
Wrist2 được sơn màu đen để tránh bị ngã vàng

Hình ảnh này là để hiển thị vị trí đặt servo phụ nếu bạn sử dụng ngón cái với hành động kép.

Khoan 2 lỗ lên Rota
Wrist3 với mũi khoan 8mm




Gắn bánh răng theo hình


Bôi nhớt giữa các bánh răng.

Cố định Rota
Wrist3 vào Rota
Writ2 bằng vít
iii/ Lắp các ngón tay

Chỉnh lại các lỗ trên bản lề và đặt các ngón tay ở những bịch riêng.

Chỉnh bản lề ngoài dùng mũi khoan 3mm.

Chỉnh bản lề trong dùng mũi khoan 3.2mm hoặc 3.5mm.

Mài các bản lề.

Dán keo các bản lề như hình

Sử dụng dây nhựa 3mm để làm chốt.

Nếu không có dây nhựa bạn có thể thay bằng bu long 3mm.

Khoan lại các lỗ trên phần nắp bằng mũi khoan 3mm.


Khoan Wristmall và Wristlarge với mũi khoan 2.5mm để điều chỉnh nắp.



Khoan lại các bản lề của Wristmall và Wristlarge với khoan 3.2 hoặc 3.5mm

Khoan lại các bản lề lớn bằng máy khoan 8mm.

Đảm bảo Bu lông hoặc Bu lông in chạy trơn tru và không bị lỏng.

Cắt 10 dây nhựa dài 75cm. Không sử dụng loại có thể co giản.

Chèn các dây nhựa vào các lỗ Wristlarge.








Làm theo hình.

Lắp bàn tay vào cổ tay.



Lắp dây từ cổ tay vào cánh tay

Bạn nên sử dụng dây khác màu để phân biệt các ngón tay.

Làm theo hình.

Sử dụng vòng “C” để cố định bu lông.

Đây là mặt sau bàn tay khi lắp xong.

Khi bạn lắp cổ tay cần chỉnh servo ở 90 độ và 2 vít trên hình được căn chỉnh.

Dán keo Rob
Cap vào Elbow
Shaft
Gear.

Bây giờ dán phần này vào Rob
Part5, đảm bảo nó được căn chỉnh vào các khe.
iv/ Lắp các ngón tay












Lắp theo hình


Dán keo cho các ngón tay


Lắp nắp cho bàn tay và kiểm tra độ linh hoạt của các ngón tay.
Bước 2: Thiết kế trục Z





Chúng tôi đã thiết kế một bộ phần tùy chỉnh được gắn ở phần cuối của cánh tay có khe cắm cho ổ bi và trục vít. Vòng bi được sử dụng để dẫn hướng cánh tay theo trục z và chuyển động của trục được điều khiển bằng động cơ và vít.
Các vít dẫn được xoay bằng cách sử dụng một động cơ bước dẫn đến chuyển động chính xác của cánh tay robot.
Động cơ bước, trục và vít đều được gắn vào chi tiết in 3D gắn vào cánh tay robot để di chuyển.
Bước 3: Trục X và khung




Như đã đề cập trong bước trước, phần tùy chỉnh thứ hai được thiết kế để giữ động cơ bước và trục. Chuyển động theo trục X cũng có các chi tiết tương tự với trục Z. Động cơ bước và chi tiết hỗ trợ trục được gắn trên một khung nhôm được làm bằng nhôm ép đùn 20mm x 20mm.
Bước 4: Chạy động cơ bước: Sơ đồ mạch điều khiển Ã988

Hình trên là sơ đồ mạch. Dưới đây là các linh kiện cần thiết:
Cần điều khiển XYDây điệnTrình điều khiển động cơ A4988Pin (12V)
Bước 5: Code động cơ bước
Chúng tôi sử dụng thư viện Basic
Stepper
Driver để điều khiển động cơ bước với evive. Giải thích code đơn giản:
Bạn có thể tải code tại link
Bước 6: Cảm biến Flex

Cảm biến flex là một điện trở biến đổi. Khả năng dẫn điện của cảm biến flex tăng lên khi uốn cong thanh Flex. Chúng tôi đã sử dụng năm cảm biến flex dài 4,5 “để di chuyển ngón tay.
Cách đơn giản nhất để kết hợp cảm biến này vào dự án của chúng tôi là sử dụng nó như bộ chia điện áp. Mạch này yêu cầu một điện trở. Chúng tôi sẽ sử dụng một điện trở 47kΩ trong ví dụ này.
Các cảm biến flex được gắn vào pin analog A0-A4 trên evive.
Bước 7: Hiệu chỉnh cảm biến Flex


Phạm vi của giá trị chúng tôi nhận được tại chân analog của evive từ các cảm biến flex khác nhau cho mỗi cảm biến. Do đó chúng ta phải ghi lại phạm vi cho mỗi cảm biến.
Bằng cách sử dụng màn hình Pin State evive, nó sẽ hiển thị có được giá trị ở góc khác nhau.
Pin State Monitor hiển thị trạng thái tất cả các chân digital và analog của evive. Nó cho thấy đầu ra là cao hoặc thấp cho chân digital và giá trị tương tự cho các chân analog. Các chân được hiển thị ở dạng bảng trên màn hình.
Video ở trên là một ví dụ chúng tôi đang theo dõi giá trị cần điều khiển trên chân analog A0 và A1.
Bước 8: Khâu cảm biến Flex trên găng tay

Bây giờ chúng ta phải khâu các cảm biến flex trên găng tay. Chúng tôi chọn một chiếc găng tay len. Trước tiên, đeo găng tay lên tay để các cảm biến flex có thể được gắn vào găng tay dễ dàng. chúng tôi đã khâu các cảm biến bằng cách sử dụng keo dán. Sử dụng dây nối để tang khoản cách cho cảm biến.
Bước 9: IMU


Để cảm nhận được góc cổ tay, chúng tôi đã sử dụng cảm biến MPU-6050.
Cảm biến MPU-6050 có bộ gia tốc MEMS và con quay hồi chuyển MEMS trong cùng một con chip. Nó rất chính xác, vì nó chứa 16 bit tương tự với phần cứng chuyển đổi digital cho mỗi trục. Do đó, nó nhận biết trục x, y và z cùng một lúc. Cảm biến sử dụng bus I2C để giao tiếp với Arduino.
Hiển thị ở trên là sơ đồ mạch để nối cảm biến IMU6050.
Chúng tôi sử dụng Thư viện Arduino MPU6050 để nhận dữ liệu từ dữ liệu cảm biến.
Cảm biến được gắn trên găng tay bằng băng keo.
Bước 10: Cấu hình Bluetooth Master Slave

Như đã nói ở trên, giao tiếp hai evive bằng cách sử dụng hai Bluetooth. Đối với giao tiếp, một Bluetooth phải được đặt làm Master và một là Slave.
Để cấu hình Bluetooth, chúng ta cần chuyển sang chế độ lệnh AT. Trước tiên, chúng ta cần kết nối các mô-đun Bluetooth để evive như mạch được hiển thị ở trên. Có một khe cắm chuyên dụng cho mô-đun Bluetooth, chỉ cần cắm một trong hai mô-đun Bluetooth. Hãy nhớ nhấn công tắc trên mô-đun khi nối nó trong vòng 3-5 giây. Giao tiếp được thực hiện thông qua cổng nối tiếp 3 của evive.
Dưới đây là code để giao tiếp với HC05.
Cấu hình Slave
Mở Serial Monitor, thiết lập tốc độ truyền đến 115200 và chế độ thành NL & CR. Bây giờ gõ các lệnh sau:
AT: Đã nhận đượcAT + UART ?: Đã nhận được tốc độ truyền. Đặt nó thành 38400 nếu bạn muốn
AT + UART = 38400,0,0: Thay đổi tốc độ truyền thành 38400AT + Role = 0: Đặt role thành slave
AT + ADDR ?: Đã nhận được địa chỉ mô-đun Bluetooth
Bây giờ chúng ta cần ghi lại địa chỉ này vì chúng ta sẽ cần nó khi cấu hình thiết bị master.
Cấu hình chính
Bây giờ chúng ta cấu hình mô-đun Bluetooth còn lại làm thiết bị chính. Đầu tiên, chúng ta sẽ kiểm tra tốc độ truyền để đảm bảo nó là 38400 giống như thiết bị slave.
Làm theo các lệnh:
AT: Đã nhận đượcAT + UART ?: Đã nhận được tốc độ truyền. Đặt nó thành 38400AT + UART = 38400,0,0: Thay đổi tốc độ truyền thành 38400AT + Role = 1: Đặt role thành master
AT + CMODE = 0AT + BIND = ĐỊA CHỈ TRƯỚC
Bluetooth.into
Bước 11: Code cuối cùng cho găng tay

Sau khi tích hợp tất cả các cảm biến trên evive và Bluetooth slave, chúng ta sẽ tạo code gửi trạng thái đến evive còn lại.
Chúng tôi đã sử dụng chế độ digital, có nghĩa là chúng tôi đã thiết lập một ngưỡng cho mỗi cảm biến flex.
Dưới đây là code cuối cùng.
Slave.into
Bước 12: Code cho cánh tay và động cơ bước
Việc điều khiển evive cánh tay có mô-đun Bluetooth chính và nhận được các lệnh từ evive và giải mã nó.
Xem thêm: Hướng dẫn chẩn đoán và điều trị bệnh nội khoa, phác đồ điều trị bệnh nội khoa
Servos được gắn vào các chân PWM của evive. Sơ đồ mạch cuối cùng được hiển thị ở trên.