Tertiarm — роборука, напечатанная на 3d принтере

в 13:31, , рубрики: 3D-печать, arduino, diy или сделай сам, hackaday, ikea, instructables, solidworks, Tertiarm, thingiverse, магнит, манипулятор, роборука, робототехника, роботы, сервопривод, хак, метки:

Всем привет! Представляю вашему вниманию мой проект — роборука на базе настольной лампы с напечатанными на 3d-принтере суставами.

image

За основу было решено взять лампу Икеа, которая благодаря использованию пружин всегда сохраняла заданную позицию. Соответственно в роборуке энергия сервоприводов расходуется только на изменение положения рычагов, а пружины удерживают вес руки и груза. Таким образом грузоподъемность манипулятора зависит от количества и конфигурации пружин. Например, в видео с испытанием максимальной грузоподъемности я использую 3 пружины в плечевом суставе и 1 в локтевом:

Технические характеристики:

  1. 5 степеней свободы
  2. Полная длина: 690мм
  3. Грузоподъемность: 0,5кг (расстояние от базы до точки крепления груза 500мм)

Все суставы смоделированы в solidworks и напечатаны на 3d принтере. Рука пока имеет 5 степеней свободы и соответственно 5 серв. Я использовал 1- MG958, 2 — MG945 и 2-SG5010.

Контролер: Arduino Uno и SensorShield v5.
Захват: 12в магнит.

В тестовой программе используется библиотека VarSpeedServo. Она позволяет регулировать скорость сервоприводов и выполняет каждое движение только после предыдущего.

#include <VarSpeedServo.h> 
int motorPin = 2;

VarSpeedServo myservo1; 
VarSpeedServo myservo2;
VarSpeedServo myservo3;
VarSpeedServo myservo4;
VarSpeedServo myservo5;

void setup() {
  pinMode(motorPin, OUTPUT);
  myservo1.attach(11);
 myservo2.attach(10); 
 myservo3.attach(6); 
 myservo4.attach(5); 
 myservo5.attach(3); 
} 

void loop() {
  myservo1.write(150, 30, true);
myservo2.write(140, 30, true);
myservo4.write(160, 30, true);
myservo3.write(160, 30, true);

digitalWrite(motorPin, HIGH);
delay(500);
 myservo3.write(90, 30, true);
myservo2.write(90, 30, true);
myservo1.write(70, 30, true);
 myservo3.write(140, 30, true);
myservo5.write(180, 30, true);
delay(500);
digitalWrite(motorPin, LOW);
delay(500);
  myservo3.write(90, 30, true);       
}

→ Файлы для 3d-печати и полный список компонентов на Thingiverse
→ Инструкция по сборке Instructables
→ Страница проекта на Hackaday

Еще несколько фотографий:

image
image
image
Спасибо за внимание!

Автор: akaragad

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js