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

Пошаговое руководство: сборка умного четырёхногого робота на Arduino

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

Arduino Mega 25601
Сервоприводы SG90 (9g)12 шт.
Ультразвуковой датчик HC‑SR041
Светодиоды 5 мм: красные4
Светодиоды 5 мм: зелёные4
Светодиоды 5 мм: синие4
Пинзаголовки 40 контактов (1 ряд, 0.1″)2
Печатная плата (Custom PCB)1

Инструменты

Приложения и сервисы

О проекте

Четырёхногая ходячая машина на Arduino. Принцип ходьбы основан на сохранении центра тяжести (CG) внутри треугольника, образованного тремя опорными ногами, пока четвёртая делает шаг.

Шаг 1: Комплектующие

Шаг 2: Центр тяжести

Пошаговое руководство: сборка умного четырёхногого робота на Arduino

Если все ноги под углом 45°, центр тяжести в центре. При движении ноги CG смещается. Чтобы сохранить устойчивость, две противоположные ноги держат угол >45°, образуя треугольник опоры, внутри которого находится CG. Четвёртая нога свободна для шага.

Шаг 3: Алгоритм ходьбы

Пошаговое руководство: сборка умного четырёхногого робота на Arduino
  1. Старт: ноги C, D вытянуты наружу; A, B — сжаты.
  2. Нога B поднимается и выносится далеко вперёд.
  3. Все ноги сдвигаются назад — корпус движется вперёд.
  4. Нога D поднимается и ставится рядом с корпусом (зеркальное положение).
  5. Нога A выносится вперёд.
  6. Снова сдвиг всех ног назад.
  7. Нога C возвращается в исходное положение — цикл повторяется.

Шаг 4: Чертежи

Файлы для лазерной резки: LEGS.pdf (ноги), BODY.pdf (корпус).

Шаг 5: Сборка корпуса

Пошаговое руководство: сборка умного четырёхногого робота на Arduino
Пошаговое руководство: сборка умного четырёхногого робота на Arduino

Собираем по чертежам PDF.

Шаг 6: Схема подключения

Пошаговое руководство: сборка умного четырёхногого робота на Arduino

Arduino Mega имеет 15 PWM‑пинов: 12 — для серв, 3 — для RGB‑светодиода, 2 — для ультразвукового датчика. Собираем свой шилд.

Шаг 7: Инициализация сервоприводов

Загружаем скетч инициализации и собираем ноги согласно фото.

Пошаговое руководство: сборка умного четырёхногого робота на Arduino
#include <Servo.h>
Servo servo[4][3];
const int servo_pin[4][3] = { {10,11,2}, {3,4,5}, {6,7,8}, {9, 12, 13} };

void setup() {
  for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 3; j++) {
      servo[i][j].attach(servo_pin[i][j]);
      delay(20);
    }
  }
}
void loop() {
  for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 3; j++) {
      servo[i][j].write(90);
      delay(20);
    }
  }
}

Шаг 8: Финальный скетч

Полный код управления роботом (ходьба, повороты, жесты, танец). Использует библиотеку FlexiTimer2 для плавного движения серв при 50 Гц. Реализована кинематическая модель: перевод декартовых координат кончиков ног в углы сервоприводов.

Пошаговое руководство: сборка умного четырёхногого робота на Arduino
Пошаговое руководство: сборка умного четырёхногого робота на Arduino
/* Основной скетч spider.ino */
#include <Servo.h>
#include <FlexiTimer2.h>
#define ledred 46
#define ledblue 44
#define ledgreen 45

Servo servo[4][3];
const int servo_pin[4][3] = { {2, 3, 4}, {20, 6, 7}, {8, 9, 17}, {16, 12, 13} };

const float length_a = 55;
const float length_b = 77.5;
const float length_c = 27.5;
const float length_side = 71;
const float z_absolute = -28;

const float z_default = -50, z_up = -30, z_boot = z_absolute;
const float x_default = 62, x_offset = 0;
const float y_start = 0, y_step = 40;
const float y_default = x_default;

volatile float site_now[4][3];
volatile float site_expect[4][3];
float temp_speed[4][3];
float move_speed;
float speed_multiple = 1;
const float spot_turn_speed = 4;
const float leg_move_speed = 8;
const float body_move_speed = 3;
const float stand_seat_speed = 1;
volatile int rest_counter;
const float KEEP = 255;
const float pi = 3.1415926;

// ... (полный код с функциями stand, step_forward, step_back, turn_left, turn_right,
// hand_wave, hand_shake, head_up, head_down, body_dance, servo_service,
// set_site, wait_reach, wait_all_reach, cartesian_to_polar, polar_to_servo)
// Код объёмный, см. исходник выше.

Скетч для настройки нулевых позиций (spider_fix.ino)

// Locate the initial position of legs
#include <Servo.h>
Servo servo[4][3];
const int servo_pin[4][3] = { {10,11,2}, {3,4,5}, {6,7,8}, {9, 12, 13} };

void setup() {
  for (int i = 0; i < 4; i++)
    for (int j = 0; j < 3; j++) {
      servo[i][j].attach(servo_pin[i][j]);
      delay(20);
    }
}
void loop() {
  for (int i = 0; i < 4; i++)
    for (int j = 0; j < 3; j++) {
      servo[i][j].write(90);
      delay(20);
    }
}

Подключите светодиоды согласно пинам в коде. Загрузите основной скетч — робот готов!

3D‑модели и детали

Пошаговое руководство: сборка умного четырёхногого робота на Arduino

Схемы

Пошаговое руководство: сборка умного четырёхногого робота на Arduino

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

  1. Сделай свой LUMAZOID: DIY Arduino музыкальный визуализатор
  2. Панель управления полётным симулятором 2020 на Arduino Nano: LCD и CDI-дисплеи
  3. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  4. Arduino-таймер для мытья рук: простое DIY-устройство для борьбы с COVID‑19
  5. Arduino RGB-микшер цветов: Простой проект для начинающих
  6. Мастерство 8×8 LED-матрицы с Arduino Uno: Пошаговое руководство
  7. DIY Arduino Radionics EMR Treatment Device — радионическое устройство
  8. Наружные RGB-прожекторы с DMX-управлением: бюджетное DIY-решение на Arduino
  9. DIY LED-рулетка — собираем одноигровой аркадный автомат на Arduino Nano
  10. Умная автоматизированная парковка на Arduino: контроль мест и шлагбаум