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

Умная робо-рука на Arduino: простое DIY-руководство

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

Arduino UNO 1
Микросервоприводы (SG90 или аналоги) 5
Потенциометры 10 кОм 5
Макетная плата 1
Материал для руки: палочки для мороженого / картон / пластик 1 компл.
Источник питания 5 В (адаптер или батарея) 1

О проекте

Роботизированная рука с «мастер-рукой» для обучения движениям. Рука запоминает последовательность позиций и воспроизводит их. Идея вдохновлена проектом «mini robotic arm» от Stoerpeak. Реализация максимально простая и дешёвая.

Шаг 1: Необходимые детали

См. таблицу выше. Также нужен Arduino IDE.

Шаг 2: Изготовление руки

Автор использовал палочки для мороженого и двусторонний скотч. Сервоприводы крепятся винтами. Мастер-рука: потенциометры клеятся на палочки. Всё установлено на базе формата А4.

Шаг 3: Подключение

Соответствие: серво на пине 3 ↔ потенциометр на A0, пин 5 ↔ A1, пин 6 ↔ A2, пин 9 ↔ A3, пин 10 ↔ A4.

Шаг 4: Программирование

Логика: значения потенциометров считываются, маппятся в углы 1–179°, сервоприводы следуют за ними. При команде 'R' (Record) позиции сохраняются в массив Storage[600] с кодировкой номера серво (сотни) и угла (единицы). При 'P' (Play) массив воспроизводится последовательно.

Основные фрагменты кода

#include <Servo.h>
Servo Servo_0, Servo_1, Servo_2, Servo_3, Servo_4;
int Pot_0, Pot_1, Pot_2, Pot_3, Pot_4;
int Servo_0_Pos, Servo_1_Pos, Servo_2_Pos, Servo_3_Pos, Servo_4_Pos;
int Prev_0_Pos, Prev_1_Pos, Prev_2_Pos, Prev_3_Pos, Prev_4_Pos;
int Current_0_Pos, Current_1_Pos, Current_2_Pos, Current_3_Pos, Current_4_Pos;
int Servo_Position, Servo_Number;
int Storage[600];
int Index = 0;
char data = 0;

void setup() {
  Serial.begin(9600);
  Servo_0.attach(3); Servo_1.attach(5); Servo_2.attach(6); Servo_3.attach(9); Servo_4.attach(10);
  Servo_0.write(100); Servo_1.write(100); Servo_2.write(100); Servo_3.write(100); Servo_4.write(100);
  Serial.println("Press 'R' to Record and 'P' to play");
}

void Map_Pot() {
  Pot_0 = analogRead(A0); Servo_0_Pos = map(Pot_0, 0, 1023, 1, 179); Servo_0.write(Servo_0_Pos);
  Pot_1 = analogRead(A1); Servo_1_Pos = map(Pot_1, 0, 1023, 1, 179); Servo_1.write(Servo_1_Pos);
  Pot_2 = analogRead(A2); Servo_2_Pos = map(Pot_2, 0, 1023, 1, 179); Servo_2.write(Servo_2_Pos);
  Pot_3 = analogRead(A3); Servo_3_Pos = map(Pot_3, 0, 1023, 1, 179); Servo_3.write(Servo_3_Pos);
  Pot_4 = analogRead(A4); Servo_4_Pos = map(Pot_4, 0, 1023, 1, 179); Servo_4.write(Servo_4_Pos);
}

void loop() {
  Map_Pot();
  while (Serial.available() > 0) {
    data = Serial.read();
    if (data == 'R') Serial.println("Recording Moves...");
    if (data == 'P') Serial.println("Playing Recorded Moves...");
  }
  if (data == 'R') {
    // сохранение изменений позиций в Storage с кодировкой серво
    // ... (подробный код в исходнике)
  }
  if (data == 'P') {
    for (int i = 0; i < Index; i++) {
      Servo_Number = Storage[i] / 100;
      Servo_Position = Storage[i] % 100;
      switch (Servo_Number) {
        case 0: Servo_0.write(Servo_Position); break;
        case 1: Servo_1.write(Servo_Position); break;
        case 2: Servo_2.write(Servo_Position); break;
        case 3: Servo_3.write(Servo_Position); break;
        case 4: Servo_4.write(Servo_Position); break;
      }
      delay(50);
    }
  }
}

Шаг 5: Тестирование

  1. Загрузите скетч, откройте Serial Monitor (9600).
  2. Управляйте мастер-рукой — слейв повторяет движения.
  3. Введите 'R' — начните запись движений.
  4. Выполните желаемую последовательность.
  5. Введите 'P' — рука воспроизведёт записанное до сброса платы.

Проект открыт для улучшений: сглаживание движений, более надёжная механика, оптимизация кода.

Схемы

Схема подключения на фото: сервоприводы и потенциометры к Arduino UNO.

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

  1. Надежная система учета рабочего времени на Arduino с RFID и Python
  2. Универсальный Android-пульт на Arduino, 1Sheeld и ИК-управлении
  3. Умный вольтметр на Arduino и смартфоне — простое DIY-проект
  4. Удаленное IoT-управление самодельной манипулятором
  5. Умная банка на ESP8266 + Arduino: мониторинг наполненности в реальном времени
  6. Точное измерение частоты и коэффициента заполнения на Arduino UNO
  7. Сборка функционального 3D-печатного манипулятора на Arduino: пошаговое руководство
  8. Умные самозавязывающиеся туфли с встроенной сборкой энергии
  9. Роботизированная рука 6 степеней свободы на Arduino Mega с управлением через Nunchuk
  10. WiFi-умный замок на Arduino и ESP8266 — открывание с телефона