Mục lục:

RoboGlove: 12 bước (có hình ảnh)
RoboGlove: 12 bước (có hình ảnh)

Video: RoboGlove: 12 bước (có hình ảnh)

Video: RoboGlove: 12 bước (có hình ảnh)
Video: ACC - Rainbow Ball Bị Rơi Vỡ Tan Tành Và Cái Kết. 2024, Tháng bảy
Anonim
RoboGlove
RoboGlove

Chúng tôi là một nhóm sinh viên của ULB, Đại học Libre de Bruxelles. Dự án của chúng tôi bao gồm việc phát triển một loại găng tay robot có thể tạo ra lực bám giúp mọi người nắm lấy đồ vật.

GĂNG TAY, BAO TAY

Găng tay có kết nối dây liên kết các ngón tay với một số động cơ servo: một dây được gắn vào đầu ngón tay và với servo, do đó khi servo quay, dây sẽ bị kéo và ngón tay bị uốn cong. Theo cách này, bằng cách điều khiển tay cầm do người dùng thực hiện thông qua một số cảm biến áp suất ở cực của ngón tay, chúng tôi có thể điều khiển động cơ theo cách có kiểm soát và giúp người dùng nắm chặt bằng cách uốn cong ngón tay tương ứng với chuyển động quay của động cơ và vì vậy để cuộn lên của dây. Bằng cách này, chúng ta có thể cho phép những người yếu có thể cầm nắm đồ vật hoặc giúp ngay cả những người trong tình trạng sinh lý cầm nắm đồ vật và giữ nó mà không cần nỗ lực.

THIẾT KẾ

Mô hình đã được phát triển để làm cho chuyển động của tay càng tự do càng tốt. Trên thực tế, chúng tôi chỉ in 3D những bộ phận cần thiết để kết nối dây điện, động cơ và ngón tay.

Chúng tôi có một vòm trên cùng được in bằng PLA trên mỗi ngón tay: đây là phần đầu cuối nơi các dây phải được kết nối và nó phải cấp bảo vệ cho cảm biến áp suất được cố định bên trong. Cảm biến áp suất được dán, bằng keo nóng, giữa cực PLA và găng tay.

Sau đó, chúng tôi có hai chiếc nhẫn in 3D, trên mỗi ngón tay, tạo thành một hướng dẫn cho dây. Ngón cái là ngón duy nhất chỉ có một chiếc nhẫn được in. Mỗi ngón tay có một dây, gập đôi ở đầu ngón tay. Hai nửa đi qua hai thanh dẫn của phần vòm và trong cả hai vòng: chúng được đặt thẳng vào các lỗ mà chúng tôi đã tạo ở bên ngoài của các vòng này. Sau đó, chúng được ghép lại với nhau thành một bánh xe kết nối trực tiếp với động cơ. Bánh xe đã được nhận ra để có thể quấn quanh dây điện: vì động cơ của chúng tôi quay không hoàn toàn (thấp hơn 180 °), chúng tôi đã nhận ra bánh xe để kéo dây dẫn một khoảng cách 6 cm, đó là khoảng cách cần thiết để đóng hoàn toàn bàn tay.

Chúng tôi cũng đã in hai tấm để cố định động cơ servo và arduino vào cánh tay. Tốt hơn là nên cắt nó bằng gỗ hoặc nhựa cứng bằng máy cắt laser.

Bước 1: Danh sách mua sắm

Danh sách mua sắm
Danh sách mua sắm
Danh sách mua sắm
Danh sách mua sắm
Danh sách mua sắm
Danh sách mua sắm

Găng tay và dây điện:

1 găng tay hiện có (phải may được)

Quần jean cũ hoặc một loại vải cứng khác

Dây nylon

Ống polyethylene mật độ thấp (Đường kính: 4mm Độ dày: 1mm)

Thiết bị điện tử:

Arduino Uno

1 Pin 9V + 9V Giá đỡ pin

1 công tắc điện tử

1 tấm ván

3 động cơ servo (1 động cơ trên mỗi ngón tay)

3 cánh quạt (được cung cấp cùng với các servo)

4 Pin AA + 4 Giá đỡ Pin AA

3 cảm biến áp suất (1 trên mỗi ngón tay)

3 điện trở 330 ohms (1 cho mỗi ngón tay)

6 dây điện (2 cho mỗi cảm biến)

Vít, đai ốc và cố định:

4 M3 dài 10mm (để sửa Arduino)

2 M2.5 dài 12mm (để cố định giá đỡ pin 9V)

6 loại hạt tương ứng

6 M2 dài 10mm (2 mỗi servo để cố định các bánh xe vào servo)

12 dây cáp nhỏ (để cố định các tấm và công tắc)

7 dây cáp lớn (2 cho mỗi động cơ và 1 cho giá đỡ 4 pin AA)

Công cụ đã sử dụng:

Máy in 3D (Ultimaker 2)

Chất liệu để may

Súng ngắn keo nóng

Optionnal: máy cắt laser

Bước 2: Chuẩn bị cấu trúc có thể đeo

Chuẩn bị cấu trúc có thể đeo
Chuẩn bị cấu trúc có thể đeo

Cấu trúc có thể đeo được đã được thực hiện với một số quần áo: trong trường hợp của chúng tôi, chúng tôi sử dụng găng tay bình thường cho thợ điện và vải jean cho cấu trúc quanh cổ tay. Chúng đã được khâu lại với nhau.

Mục đích là để có một cấu trúc có thể đeo linh hoạt.

Cấu trúc phải chắc chắn hơn găng tay len thông thường vì nó phải được khâu.

Chúng tôi cần một cấu trúc có thể đeo quanh cổ tay để giữ các bộ cung cấp năng lượng và bộ truyền động, đồng thời chúng tôi cần nó ổn định, vì vậy chúng tôi đã chọn cách điều chỉnh việc đóng bằng cách áp dụng các dải Velcro (dải tự động dán) vào cổ tay của quần jean.

Một số thanh gỗ đã được khâu vào bên trong để làm cho chiếc quần jean cứng cáp hơn.

Bước 3: Chuẩn bị các bộ phận chức năng

Chuẩn bị các bộ phận chức năng
Chuẩn bị các bộ phận chức năng

Các phần cứng được thực hiện thông qua in 3D trong PLA từ các tệp.stl trong mô tả:

Vòng ngón tay x5 (với các tỷ lệ khác nhau: 1x tỷ lệ 100%, 2x tỷ lệ 110%, 2x tỷ lệ 120%);

Cực trị ngón tay x3 (với các tỷ lệ khác nhau: tỷ lệ 1x 100%, tỷ lệ 1x 110%, tỷ lệ 1x 120%);

Bánh xe cho động cơ x3

Đối với các bộ phận ngón tay, cần có các quy mô khác nhau do kích thước khác nhau của từng ngón tay và của từng phalanx.

Bước 4: Sửa các cảm biến ở các điểm cực trị

Sửa các cảm biến ở mức cực trị
Sửa các cảm biến ở mức cực trị

Đầu tiên, các cảm biến áp suất được hàn vào dây cáp.

Sau đó, chúng được dán bằng cách sử dụng súng lục keo bên trong các đầu ngón tay: một lượng nhỏ keo được đặt bên trong đầu ngón tay, ở mặt có hai lỗ, sau đó cảm biến được áp dụng ngay lập tức với phần hoạt động (tròn) trên keo (có mặt áp điện ở bên trong kết cấu và phần nhựa trực tiếp trên keo). Các dây cáp phải chạy qua đầu ngón tay xuống lưng của nó, để cáp điện chạy trên mu bàn tay.

Bước 5: Cố định các bộ phận in 3D vào găng tay

Cố định các bộ phận in 3D vào găng tay
Cố định các bộ phận in 3D vào găng tay

Tất cả các bộ phận cứng (chi, vòng) phải được khâu vào găng tay để cố định.

Để đặt nhẫn một cách chính xác, trước tiên hãy đeo găng tay và cố gắng đeo nhẫn vào, mỗi chiếc một chiếc theo phalanx, mà không để chúng chạm vào nhau trong quá trình khép bàn tay. Khoảng cách, các chiếc nhẫn trên chỉ số sẽ được cố định cao hơn 5mm so với gốc ngón tay và 17 đến 20mm trên ngón tay đầu tiên. Về ngón giữa, chiếc nhẫn đầu tiên sẽ cao hơn khoảng 8 đến 10mm so với gốc của ngón tay và chiếc thứ hai cao hơn chiếc thứ nhất khoảng 20mm. Đối với những gì liên quan đến ngón tay cái, độ chính xác cần thiết là rất thấp, vì nó không có nguy cơ ảnh hưởng đến các vòng khác, vì vậy hãy thử áp dụng nó trên găng tay đã mòn, vẽ một đường trên găng tay nơi bạn muốn có vòng để sau đó bạn có thể may nó.

Về việc may, không có kỹ thuật hoặc khả năng cụ thể nào được yêu cầu. Dùng kim, chỉ khâu đi theo vòng tròn xung quanh các vòng, đi qua bề mặt của găng tay. Một bước khoảng 3-4mm giữa hai lỗ trên găng tay đã tạo ra sự cố định đủ chắc chắn, không cần phải may quá dày.

Kỹ thuật tương tự cũng được áp dụng để cố định các chi: đỉnh của chi là lỗ để cho kim đi qua dễ dàng, vì vậy chỉ có các hình dạng giống như chữ thập trên đầu ngón tay sẽ phải được khâu vào găng tay.

Sau đó, các thanh dẫn bằng polyetylen cũng phải được cố định theo ba tiêu chí:

đầu xa (hướng về phía ngón tay) phải hướng về hướng của ngón tay, để tránh ma sát cao với dây nylon sẽ đi vào bên trong nó;

đầu xa phải đủ xa để không cản trở việc khép bàn tay (thấp hơn gốc ngón tay khoảng 3cm là đủ, ngón cái 4 đến 5cm);

các ống phải đi qua nhau càng ít càng tốt, để giảm khối lượng của toàn bộ găng tay và tính di động của mỗi ống

Chúng được cố định bằng cách khâu chúng vào găng tay và cổ tay, với kỹ thuật tương tự như trên.

Để tránh rủi ro trượt máng may, một ít keo đã được thêm vào giữa các ống và găng tay.

Bước 6: Chuẩn bị bánh xe cho Servos

Chuẩn bị bánh xe cho Servos
Chuẩn bị bánh xe cho Servos

Chúng tôi đã sử dụng các bánh xe được thiết kế đặc biệt, do chính chúng tôi vẽ và in 3D cho dự án này (tệp.stl trong phần mô tả).

Sau khi các bánh xe được in, chúng tôi phải cố định chúng vào các cánh quạt của servo bằng cách vặn (vít M2, 10mm). Vì các lỗ của cánh quạt nhỏ hơn đường kính 2mm bằng cách vặn M2 nên không cần đai ốc.

Có thể áp dụng 3 cánh quạt trên mỗi servo.

Bước 7: Cố định động cơ vào cánh tay

Cố định động cơ vào cánh tay
Cố định động cơ vào cánh tay

Bước này bao gồm việc cố định động cơ vào cánh tay đòn; Để làm được điều đó, chúng tôi đã phải in một bảng PLA phụ trợ để nhận được sự hỗ trợ.

Trên thực tế, động cơ không thể được cố định trực tiếp vào cánh tay vì bánh xe, cần thiết để kéo dây, có thể bị chặn trong quá trình chuyển động do găng tay. Vì vậy, chúng tôi đã in 3D một tấm bảng PLA có kích thước 120x150x5 mm.

Sau đó, chúng tôi cố định mảng bám vào găng tay của chúng tôi bằng một số dây buộc dây cáp: chúng tôi tạo một số lỗ trên găng tay chỉ đơn giản bằng kéo, sau đó chúng tôi tạo các lỗ trên mảng bám nhựa bằng một mũi khoan và ghép mọi thứ lại với nhau. Bốn lỗ vào tấm bảng là cần thiết ở trung tâm, giữa chu vi của nó, để vượt qua các dây buộc cáp. Chúng được làm bằng một mũi khoan. Đây là phần trung tâm chứ không phải ở hai bên của tấm để có thể đóng quần jean quanh cánh tay mà không có tấm chắn nó vì tấm không linh hoạt.

Sau đó, những lỗ khác cũng được khoan vào mảng nhựa để cố định động cơ. Các động cơ được cố định bằng hai dây cáp bắt chéo. Một số keo đã được thêm vào các mặt của chúng để đảm bảo sự cố định.

Các động cơ phải được đặt sao cho các bánh xe không cản trở nhau. Vì vậy, có ngăn cách ở bên trái và bên phải của bàn tay: hai ở một bên, với các bánh xe quay ngược chiều và một ở phía bên kia.

Bước 8: Mã trên Arduino

Mã trên Arduino
Mã trên Arduino

Mã đã được phát triển theo cách đơn giản: để kích hoạt hoặc không kích hoạt động cơ. Servos chỉ được kích hoạt nếu giá trị đọc vượt quá một giá trị nhất định (nó đã được sửa bằng các thử nghiệm và lỗi vì độ nhạy của mỗi cảm biến không hoàn toàn giống nhau). Có hai khả năng uốn cong, thấp cho một lực thấp và hoàn toàn cho một lực mạnh. Khi ngón tay được uốn cong, người dùng không cần dùng lực để giữ ngón tay ở vị trí thực tế. Lý do của việc triển khai này là vì người ta đã đề cập rằng các ngón tay cần phải tác động lực liên tục lên các cảm biến và găng tay không mang lại bất kỳ lợi thế nào. Để giải phóng sự uốn cong của ngón tay, một lực mới cần được tác động lên cảm biến áp suất, tác động như một lệnh dừng.

Chúng ta có thể chia mã thành ba phần:

Cảm biến init:

Trước hết, chúng tôi khởi tạo ba biến số nguyên: read1, read2, read3 cho mỗi cảm biến. Các cảm biến được đưa vào các đầu vào tương tự A0, A2, A4. Mỗi biến để đọc được thiết lập như:

  • read1 nơi được ghi giá trị được đọc trong đầu vào A0,
  • read2 nơi được ghi giá trị được đọc trong đầu vào A2,
  • read3 nơi được ghi giá trị được đọc trong đầu vào A4

Hai ngưỡng được cố định bằng ngón tay tương ứng với hai vị trí khởi động của servo. Các ngưỡng này khác nhau đối với mỗi ngón tay vì lực tác dụng không giống nhau đối với mỗi ngón tay và độ nhạy của ba cảm biến không hoàn toàn giống nhau.

Động cơ init:

Ba biến char (save1, save2, save3), một biến cho mỗi động cơ được khởi tạo ở 0. Sau đó, trong thiết lập, chúng tôi chỉ định các chân nơi chúng tôi cắm các động cơ tương ứng: chân 9, chân 6 và chân 3 cho servo1, servo2, servo3; tất cả được khởi tạo ở giá trị 0.

Sau đó, các servo được kích hoạt thông qua lệnh servo.write () có thể sửa góc nhận được làm đầu vào trên servo. Cũng bằng các thử nghiệm và sai sót, người ta đã tìm thấy hai góc tốt, cần thiết để uốn cong ngón tay ở hai vị trí tương ứng với một chuôi nhỏ và một chuôi lớn, đã được tìm thấy.

Vì một động cơ cần quay theo hướng ngược lại do cố định của nó, điểm xuất phát của nó không phải là 0 mà là góc lớn nhất và giảm khi tác dụng một lực để có thể quay theo hướng ngược lại.

Liên kết giữa cảm biến và động cơ:

Việc lựa chọn save1, save2, save3 và read1, read2, read3 phụ thuộc vào cách hàn. Nhưng đối với mỗi ngón tay, cảm biến và động cơ liên quan phải có cùng một số.

Sau đó, trong vòng lặp, nếu các điều kiện được sử dụng để kiểm tra xem ngón tay đã ở tư thế uốn cong hay chưa và áp lực có được áp dụng hay không trên các cảm biến. Khi các cảm biến trả về một giá trị, cần phải tác động một lực nhưng có thể xảy ra hai trường hợp khác nhau:

  • Nếu ngón tay chưa được uốn cong, so sánh giá trị này do cảm biến trả về với các ngưỡng, góc tương ứng sẽ được áp dụng cho servo.
  • Nếu ngón tay đã được uốn cong, điều đó có nghĩa là người dùng muốn giải phóng sự uốn cong và sau đó góc bắt đầu được áp dụng cho servo.

Điều này được thực hiện cho mỗi động cơ.

Sau đó, chúng tôi thêm độ trễ 1000 ms để tránh kiểm tra quá thường xuyên các giá trị của cảm biến. Nếu áp dụng giá trị độ trễ quá nhỏ, nó có nguy cơ trực tiếp mở lại bàn tay sau khi đóng nó trong trường hợp lực tác dụng trong thời gian dài hơn thời gian trễ.

Tất cả quy trình cho một cảm biến được trình bày trong biểu đồ ở trên.

TOÀN BỘ MÃ

#include Servo servo1; Servo servo2; Servo servo3; int read1; int read2; int read3; char save1 = 0; // servo bắt đầu ở trạng thái 0, trạng thái ngủ char save2 = 0; char save3 = 0; void setup (void) {Serial.begin (9600); servo2.attach (9); // servo tại chân số 9 servo2.write (160); // điểm ban đầu cho servo servo1.attach (6); // servo tại chân số 6 servo1.write (0); // điểm ban đầu cho servo servo3.attach (3); // servo tại chân số 3 servo3.write (0); // điểm ban đầu cho servo

}

void loop (void) {read1 = analogRead (A0); // gắn với analog 0 read2 = analogRead (A2); // gắn vào analog 2 read3 = analogRead (A4); // được gắn vào tương tự 4

// if (read2> = 0) {Serial.print ("Giá trị cảm biến ="); // Ví dụ về lệnh được sử dụng để hiệu chuẩn các ngưỡng của cảm biến đầu tiên

// Serial.println (read2); } // else {Serial.print ("Giá trị cảm biến ="); Serial.println (0); }

if (read1> 100 and save1 == 0) {// nếu cảm biến nhận giá trị cao và không ở trạng thái ngủ save1 = 2; } // chuyển sang trạng thái 2 else if (read1> 30 và save1 == 0) {// nếu cảm biến nhận giá trị trung bình và không ở trạng thái ngủ save1 = 1; } // chuyển sang trạng thái 1 else if (read1> 0) {// nếu giá trị khác 0 và không có điều kiện nào trước đó là đúng thì save1 = 0;} // chuyển sang trạng thái ngủ

if (save1 == 0) {servo1.write (160); } // giải phóng else if (save1 == 1) {servo1.write (120); } // góc kéo vừa phải else {servo1.write (90); } // góc kéo lớn nhất

if (read2> 10 and save2 == 0) {// giống với servo 1 save2 = 2; } else if (read2> 5 and save2 == 0) {save2 = 1; } else if (read2> 0) {save2 = 0;}

if (save2 == 0) {servo2.write (0); } else if (save2 == 1) {servo2.write (40); } else {servo2.write (60); }

if (read3> 30 and save3 == 0) {// giống với servo 1 save3 = 2; } else if (read3> 10 and save3 == 0) {save3 = 1; } else if (read3> 0) {save3 = 0;}

if (save3 == 0) {servo3.write (0); } else if (save3 == 1) {servo3.write (40); } else {servo3.write (70); } delay (1000); } // đợi một chút

Bước 9: Cố định Arduino, Pin và Veroboard vào Cánh tay

Cố định Arduino, Pin và Veroboard vào Cánh tay
Cố định Arduino, Pin và Veroboard vào Cánh tay
Cố định Arduino, Pin và Veroboard vào Cánh tay
Cố định Arduino, Pin và Veroboard vào Cánh tay

Một tấm khác được in bằng PLA để có thể cố định giá đỡ pin và arduino.

Tấm có kích thước: 100x145x5mm.

Có bốn lỗ để vặn arduino và hai lỗ để vặn giá đỡ pin 9V. Một lỗ được tạo trên giá đỡ pin 6V và trong tấm để sử dụng dây buộc cáp để cố định chúng với nhau. Một số keo đã được thêm vào để đảm bảo sự cố định của giá đỡ này. Công tắc được cố định bằng hai dây cáp nhỏ.

Ngoài ra còn có bốn lỗ được sử dụng để cố định tấm trên quần jean bằng cách sử dụng dây buộc.

Tấm veroboard được đặt trên arduino giống như một tấm khiên.

Bước 10: Kết nối thiết bị điện tử

Kết nối các thiết bị điện tử
Kết nối các thiết bị điện tử

Mạch được hàn trên bảng mạch điện như đã báo cáo trong sơ đồ ở trên.

Arduino có nguồn cung cấp pin 9V và một công tắc được kết nối giữa các nguồn này để có thể tắt Arduino. Pin 6V là cần thiết cho động cơ servo cần nhiều dòng điện và chân thứ ba của servo được kết nối tại chân 3, 6 và 9 để điều khiển chúng bằng PWM.

Mỗi cảm biến được kết nối ở một bên bằng 5V của Arduino và ở phía bên kia bằng điện trở 330 ohm được kết nối với đất và các chân A0, A2 và A4 để đo lực căng.

Bước 11: Thêm dây Nylon

Thêm dây nylon
Thêm dây nylon

Các dây nylon được tạo ra để đi qua cả hai lỗ trên cực và các vòng như trong hình, sau đó hai nửa của dây sẽ đi vào bên trong thanh dẫn bằng polyetylen và ở lại với nhau cho đến cuối thanh dẫn, tới động cơ. Chiều dài của dây được xác định tại thời điểm này, chúng cần đủ dài để xoay tròn một khi bánh xe của servo bằng các ngón tay thẳng.

Chúng được cố định trên các bánh xe bằng một máng đi qua có nút thắt, hai lỗ nhỏ có trên các tệp.stl và bằng keo nóng để thêm ổn định.

Bước 12: Tận hưởng

Nó hoạt động như mong đợi.

Ở lần xung đầu tiên, nó làm cong ngón tay và ở lần thứ hai, nó sẽ nhả ra. Không cần lực khi uốn các ngón tay.

Tuy nhiên, ba vấn đề vẫn còn:

- Chúng ta phải cẩn thận tạo một xung lực ngắn hơn 1 giây để kích hoạt các servo nếu không các dây sẽ được nhả ra ngay lập tức sau khi kéo như đã giải thích trong bước 8 về mã Arduino.

- Phần nhựa hơi bị trượt nên chúng tôi đã bôi thêm một ít keo nóng ở phần đầu để tăng thêm ma sát.

- Nếu có tải nặng đè lên ngón tay, cảm biến sẽ luôn có giá trị lớn và do đó servo sẽ liên tục quay.

Đề xuất: