- Thành phần bắt buộc
- Xây dựng cánh tay robot
- Sơ đồ mạch và giải thích hoạt động:
- Cách vận hành cánh tay robot:
Trong hướng dẫn này, chúng ta sẽ thiết kế Cánh tay robot dựa trên Arduino Uno từ một số bảng mạch và động cơ servo. Toàn bộ quá trình xây dựng đã được giải thích chi tiết dưới đây. Ở đây trong dự án này, Arduino Uno được lập trình để điều khiển các động cơ servo được sử dụng như các khớp nối của cánh tay Robot. Thiết lập này cũng trông giống như Cần cẩu rô bốt hoặc chúng ta có thể chuyển đổi nó thành Cần trục bằng cách thực hiện một số chỉnh sửa dễ dàng. Dự án này sẽ hữu ích cho những người mới bắt đầu muốn học cách phát triển một Robot đơn giản với chi phí thấp hoặc chỉ muốn học cách làm việc với Arduino và động cơ servo.
Cánh tay robot Arduino này có thể được điều khiển bởi bốn chiết áp gắn vào nó, mỗi chiết áp được sử dụng để điều khiển từng servo. Bạn có thể di chuyển các Servos này bằng cách xoay các chậu để chọn một số đối tượng, với một số cách thực hành, bạn có thể dễ dàng chọn và di chuyển đối tượng từ nơi này sang nơi khác. Chúng tôi đã sử dụng các loại servo có mô-men xoắn thấp ở đây nhưng bạn có thể sử dụng các loại servo mạnh hơn để chọn các vật nặng. Toàn bộ quá trình đã được chứng minh rõ ràng trong Video ở cuối. Ngoài ra, hãy kiểm tra các Dự án Robotics khác của chúng tôi tại đây.
Thành phần bắt buộc
- Arduino Uno
- Tụ 1000uF (4 miếng)
- Tụ điện 100nF (4 miếng)
- Động cơ Servo (SG 90- bốn miếng)
- Nồi 10K- Điện trở biến (4 miếng)
- Nguồn cung cấp (5v- tốt nhất là hai)
Động cơ Servo
Đầu tiên chúng ta nói một chút về Servo Motors. Động cơ Servo chủ yếu được sử dụng khi cần chuyển động hoặc vị trí trục chính xác. Chúng không được đề xuất cho các ứng dụng tốc độ cao. Động cơ servo được đề xuất cho các ứng dụng tốc độ thấp, mô-men xoắn trung bình và vị trí chính xác. Vì vậy, những động cơ này là tốt nhất để thiết kế cánh tay robot.
Động cơ servo có sẵn ở các hình dạng và kích thước khác nhau. Chúng tôi sẽ sử dụng động cơ servo nhỏ, ở đây chúng tôi sử dụng bốn servo SG90. Một động cơ servo sẽ chủ yếu có dây, một dây dành cho điện áp dương, dây nối đất và dây cuối cùng dành cho cài đặt vị trí. Dây ĐỎ được kết nối với nguồn, dây Đen được nối với đất và dây VÀNG được kết nối với tín hiệu. Xem qua hướng dẫn Điều khiển Động cơ Servo bằng Arduino này để tìm hiểu thêm về nó. Trong Arduino, chúng tôi có các thư viện được xác định trước để điều khiển Servo, vì vậy điều khiển servo rất dễ dàng, bạn sẽ tìm hiểu cùng với hướng dẫn này.
Xây dựng cánh tay robot
Lấy một bề mặt phẳng và ổn định, như bàn hoặc bảng cứng. Tiếp theo, đặt một động cơ servo ở giữa và dán nó vào vị trí. Đảm bảo mức độ xoay nằm trong khu vực được trình bày trong hình. Servo này hoạt động như cơ sở của cánh tay.
Đặt một miếng bìa cứng nhỏ lên trên servo đầu tiên và sau đó đặt servo thứ hai lên miếng bảng này và dán nó vào vị trí. Vòng quay của servo phải phù hợp với sơ đồ.
Lấy một số bìa cứng và cắt chúng thành các miếng có kích thước 3cm x 11cm. Đảm bảo rằng miếng bánh không bị mềm. Cắt một lỗ hình chữ nhật ở một đầu (chừa 0,8cm tính từ đáy) vừa đủ để lắp một servo khác và ở một đầu khác lắp chặt bánh răng servo bằng vít hoặc bằng keo. Sau đó lắp servo thứ ba vào lỗ đầu tiên.
Bây giờ, cắt một miếng bìa cứng khác có độ dài như trong hình dưới đây và dán một bánh răng khác ở dưới cùng của miếng này.
Bây giờ keo servo thứ tư và cuối cùng ở mép của mảnh thứ hai như thể hiện trong hình.
Với điều này, hai mảnh ghép lại với nhau trông như thế nào.
Khi chúng tôi đính kèm thiết lập này vào đế, nó sẽ trông như thế nào,
Sắp xong rồi. Chúng ta chỉ cần làm chiếc móc để ngoạm và gắp dị vật giống như bàn tay robot. Để làm móc, cắt thêm hai miếng bìa có kích thước 1cmx7cm & 4cmx5cm. Dán chúng lại với nhau như thể hiện trong hình và dán bánh răng cuối cùng ở cạnh.
Gắn mảnh này lên trên và với điều này, chúng tôi đã hoàn thành việc xây dựng Cánh tay robot của mình.
Với điều này, thiết kế cánh tay robot cơ bản của chúng tôi đã hoàn thành và đó là cách chúng tôi chế tạo cánh tay robot chi phí thấp của mình. Bây giờ kết nối mạch trong breadboard theo sơ đồ mạch.
Sơ đồ mạch và giải thích hoạt động:
Kết nối mạch cho Arduino Uno Robotic Arm được hiển thị bên dưới.
Điện áp trên các biến trở không hoàn toàn tuyến tính; nó sẽ là một ồn ào. Vì vậy, để lọc tiếng ồn này, các tụ điện được đặt trên mỗi điện trở như trong hình.
Bây giờ chúng ta sẽ cấp điện áp được cung cấp bởi các biến trở này (điện áp đại diện cho điều khiển vị trí) vào các kênh ADC của Arduino. Chúng tôi sẽ sử dụng bốn kênh ADC của UNO từ A0 đến A3 cho việc này. Sau khi khởi tạo ADC, chúng tôi sẽ có giá trị kỹ thuật số của chậu đại diện cho vị trí mà người dùng cần. Chúng tôi sẽ lấy giá trị này và khớp nó với vị trí servo.
Arduino có sáu kênh ADC. Chúng tôi đã sử dụng bốn chiếc cho Cánh tay robot của mình. UNO ADC có độ phân giải 10 bit nên các giá trị nguyên nằm trong khoảng từ 0-1023 (2 ^ 10 = 1024 giá trị). Điều này có nghĩa là nó sẽ ánh xạ điện áp đầu vào từ 0 đến 5 vôn thành các giá trị nguyên từ 0 đến 1023. Vì vậy, với mỗi (5/1024 = 4,9mV) trên mỗi đơn vị. Tìm hiểu thêm về cách ánh xạ các mức điện áp bằng cách sử dụng kênh ADC trong Arduino tại đây.
Bây giờ, để UNO chuyển đổi tín hiệu tương tự thành tín hiệu kỹ thuật số, chúng ta cần sử dụng Kênh ADC của Arduino Uno, với sự trợ giúp của các chức năng dưới đây:
1. analogRead (pin); 2. analogReference (); 3. analogReadResolution (bit);
Các kênh Arduino ADC có giá trị tham chiếu mặc định là 5V. Điều này có nghĩa là chúng tôi có thể cung cấp điện áp đầu vào tối đa là 5V để chuyển đổi ADC ở bất kỳ kênh đầu vào nào. Vì một số cảm biến cung cấp điện áp từ 0-2,5V, vì vậy với tham chiếu 5V, chúng tôi nhận được độ chính xác thấp hơn, vì vậy chúng tôi có một hướng dẫn cho phép chúng tôi thay đổi giá trị tham chiếu này. Vì vậy, để thay đổi giá trị tham chiếu, chúng ta có "analogReference ();"
Theo mặc định, chúng tôi nhận được độ phân giải ADC tối đa của bo mạch là 10bits, độ phân giải này có thể được thay đổi bằng cách sử dụng lệnh (“analogReadResolution (bits);”).
Trong mạch tay Robotic của chúng tôi, chúng tôi đã để điện áp tham chiếu này về mặc định, vì vậy chúng tôi có thể đọc giá trị từ kênh ADC bằng cách gọi trực tiếp hàm “analogRead (pin);”, ở đây “pin” đại diện cho chân mà chúng tôi đã kết nối tín hiệu tương tự. chúng tôi muốn đọc “A0”. Giá trị từ ADC có thể được lưu trữ thành một số nguyên như int SENSORVALUE0 = analogRead (A0); .
Bây giờ hãy nói về SERVO, Arduino Uno có một tính năng cho phép chúng ta điều khiển vị trí servo bằng cách chỉ đưa ra giá trị độ. Giả sử nếu chúng ta muốn servo ở mức 30, chúng ta có thể trực tiếp đại diện cho giá trị trong chương trình. Tệp tiêu đề SERVO ( Servo.h ) xử lý tất cả các tính toán tỷ lệ nhiệm vụ trong nội bộ.
#include
Đây là câu lệnh đầu tiên đại diện cho tệp tiêu đề để điều khiển SERVO MOTOR. Câu lệnh thứ hai là đặt tên cho servo; chúng tôi để nó là servo0 vì chúng tôi sẽ sử dụng bốn. Câu lệnh thứ ba nêu rõ nơi kết nối chân tín hiệu servo; đây phải là chân PWM. Ở đây chúng tôi đang sử dụng mã PIN3 cho servo đầu tiên. Câu lệnh thứ tư đưa ra các lệnh để định vị động cơ servo theo độ. Nếu nó được cho là 30, động cơ servo sẽ quay 30 độ.
Bây giờ, chúng ta có vị trí servo SG90 từ 0 đến 180 và các giá trị ADC là từ 0-1023. Chúng tôi sẽ sử dụng một hàm đặc biệt tự động khớp cả hai giá trị.
sensorvalue0 = map (giá trị sensor0, 0, 1023, 0, 180);
Câu lệnh này tự động ánh xạ cả hai giá trị và lưu trữ kết quả ở dạng số nguyên 'servovalue0' .
Đây là cách chúng tôi đã điều khiển các Servos trong dự án Cánh tay robot của chúng tôi bằng cách sử dụng Arduino. Kiểm tra mã đầy đủ bên dưới.
Cách vận hành cánh tay robot:
Có bốn bình được cung cấp cho người dùng. Và bằng cách xoay bốn bình này, chúng tôi cung cấp điện áp thay đổi tại các kênh ADC của UNO. Vì vậy, các giá trị kỹ thuật số của Arduino nằm trong tầm kiểm soát của người dùng. Các giá trị kỹ thuật số này được ánh xạ để điều chỉnh vị trí động cơ servo, do đó vị trí servo nằm trong quyền kiểm soát của người dùng và bằng cách xoay các Chậu này, người dùng có thể di chuyển các khớp của cánh tay rô bốt và có thể chọn hoặc lấy bất kỳ đối tượng nào.