Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

LittleArm 2C: 3D-печатаемый робот-манипулятор на Arduino для STEM-обучения

Компоненты и материалы

Arduino Nano R3 1
Сервоприводы MG90S (Tower Pro MG996R) 4
Плата Meped Board 1

Инструменты

3D-принтер

О проекте

LittleArm 2C — набор для детей, чтобы STEM-классы могли внедрять робототехнику. Конструкция усилена и упрощена: вся рука печатается на 3D-принтере, дизайн минималистичный, менее 15 винтов.

Управление: Windows-приложение (изначально на Python) или Bluetooth через Android-приложение.

Полная инструкция по сборке: здесь.

3D-модели для печати: здесь.

Код

LittleArm 2C Arduino Sketch (C/C++)

// LittleArm 2C arduino code
// Позволяет последовательное управление 3D-печатаемой рукой LittleArm 2C
// Created by Slant Concepts

#include 
#include 
#define PI 3.141

Servo baseServo;
Servo shoulderServo;
Servo elbowServo;
Servo gripperServo;

// Глобальные переменные
struct jointAngle {
  int base;
  int shoulder;
  int elbow;
};
struct jointAngle desiredAngle;
int desiredGrip;
int gripperPos;
int command;
int desiredDelay;

int servoParallelControl(int thePos, Servo theServo, int theSpeed);

void setup() {
  Serial.begin(9600);
  baseServo.attach(5);
  shoulderServo.attach(4);
  elbowServo.attach(3);
  gripperServo.attach(2);
  Serial.setTimeout(50);
  Serial.println("started");
  baseServo.write(90);
  shoulderServo.write(100);
  elbowServo.write(110);
}

void loop() {
  if (Serial.available()) {
    desiredAngle.base = Serial.parseInt();
    desiredAngle.shoulder = Serial.parseInt();
    desiredAngle.elbow = Serial.parseInt();
    desiredGrip = Serial.parseInt();
    desiredDelay = Serial.parseInt();
    if (Serial.read() == '\n') {
      Serial.flush();
      Serial.print('d'); // 'd' = done executing
    }
  }

  int status1 = 0, status2 = 0, status3 = 0, status4 = 0;
  int done = 0;
  while (done == 0) {
    status1 = servoParallelControl(desiredAngle.base, baseServo, desiredDelay);
    status2 = servoParallelControl(desiredAngle.shoulder, shoulderServo, desiredDelay);
    status3 = servoParallelControl(desiredAngle.elbow, elbowServo, desiredDelay);
    status4 = servoParallelControl(desiredGrip, gripperServo, desiredDelay);
    if (status1 == 1 && status2 == 1 && status3 == 1 && status4 == 1) {
      done = 1;
    }
  }
}

int servoParallelControl(int thePos, Servo theServo, int theSpeed) {
  int startPos = theServo.read();
  int newPos = startPos;
  if (startPos < (thePos - 5)) {
    newPos = newPos + 1;
    theServo.write(newPos);
    delay(theSpeed);
    return 0;
  } else if (newPos > (thePos + 5)) {
    newPos = newPos - 1;
    theServo.write(newPos);
    delay(theSpeed);
    return 0;
  } else {
    return 1; // в пределах ±5 от цели
  }
}

Схемы

При использовании Meped Board (под которую спроектирован LittleArm) нужно всего 4 соединения.

LittleArm 2C: 3D-печатаемый робот-манипулятор на Arduino для STEM-обучения

Производственный процесс

  1. Создание Bluetooth-робота на Raspberry Pi с аудио-обратной связью
  2. Создание интернет-управляемого видеostreaming-робота на Arduino и Raspberry Pi
  3. Haddington Dynamics: открытый, высокопроизводительный 3D-печатный робот Dexter
  4. Двухрукие SCARA-роботы: передовые решения для сборки и производства
  5. Роботизированная рука MeArm V1.0 — сборка на Arduino и Raspberry Pi
  6. Автономный линий-следующий робот на Arduino UNO
  7. Сборка функционального 3D-печатного манипулятора на Arduino: пошаговое руководство
  8. Роботизированная рука 6 степеней свободы на Arduino Mega с управлением через Nunchuk
  9. Голосовой робот на Arduino Nano: Управление речью через Bluetooth
  10. Управление манипулятором по Ethernet: Arduino 101 + WIZ750SR + Android-приложение