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

MobBob: Самостоятельная сборка Arduino-робота под управлением Android-смартфона

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

Инструменты

Программное обеспечение

Описание проекта

MobBob — робот, управляемый смартфоном. Используя вычислительную мощность телефона, MobBob ходит, говорит, распознает речь и обладает компьютерным зрением.

В коде необходимо:

Код (Arduino)

Полный скетч с системой анимаций и парсером команд по Bluetooth (SoftwareSerial). Поддерживает команды: проверка связи (<OK>), прямая установка серв (<SV,time,hipL,footL,hipR,footR>), остановка (<ST>, <SI>), ходьба вперед/назад/повороты (<FW>, <BW>, <LT>, <RT>), анимации: качание головой (<SX>), прыжки (<BX>), шачок (<WX/WY/WZ>), тычки ногами (<TX/TY/TZ>), дрожание ногами (<LX/LY/LZ>). Система ставит команды в очередь (размер 1) и сообщает о завершении через Serial.

/* MobBob Control Program - Software Serial Bluetooth Version
 * by Kevin Chan (Cevinius)
 * ... (длинный комментарий с описанием протокола и структуры анимаций) ...
 */
#include <Servo.h>
#include <SoftwareSerial.h>

#define SERIAL_SPEED 115200
const int rxPin = 11, txPin = 12;
SoftwareSerial softwareSerial(rxPin, txPin);

const int SERVO_LEFT_HIP = 5, SERVO_LEFT_FOOT = 2;
const int SERVO_RIGHT_HIP = 3, SERVO_RIGHT_FOOT = 4;
#define FRONT_JOINT_HIPS 1

// Калибровка сервоприводов (микросекунды)
const int LEFT_HIP_CENTRE = 1580, LEFT_HIP_MIN = 1080, LEFT_HIP_MAX = 2080;
const int LEFT_FOOT_CENTRE = 1410, LEFT_FOOT_MIN = 910, LEFT_FOOT_MAX = 1910;
const int RIGHT_HIP_CENTRE = 1500, RIGHT_HIP_MIN = 1000, RIGHT_HIP_MAX = 2000;
const int RIGHT_FOOT_CENTRE = 1465, RIGHT_FOOT_MIN = 965, RIGHT_FOOT_MAX = 1965;

// Вспомогательные функции для удобного расчета позиций
int LeftHipCentre() { return LEFT_HIP_CENTRE; }
int LeftHipIn(int ms) { return LEFT_HIP_CENTRE + (FRONT_JOINT_HIPS * ms); }
int LeftHipOut(int ms) { return LEFT_HIP_CENTRE - (FRONT_JOINT_HIPS * ms); }
int RightHipCentre() { return RIGHT_HIP_CENTRE; }
int RightHipIn(int ms) { return RIGHT_HIP_CENTRE - (FRONT_JOINT_HIPS * ms); }
int RightHipOut(int ms) { return RIGHT_HIP_CENTRE + (FRONT_JOINT_HIPS * ms); }
int LeftFootFlat() { return LEFT_FOOT_CENTRE; }
int LeftFootUp(int ms) { return LEFT_FOOT_CENTRE - ms; }
int LeftFootDown(int ms) { return LEFT_FOOT_CENTRE + ms; }
int RightFootFlat() { return RIGHT_FOOT_CENTRE; }
int RightFootUp(int ms) { return RIGHT_FOOT_CENTRE + ms; }
int RightFootDown(int ms) { return RIGHT_FOOT_CENTRE - ms; }

// Массивы ключевых кадров анимаций (ходьба, повороты, танцы)
// Формат: { tween_ms, leftHip, leftFoot, rightHip, rightFoot }
// -1 означает "не менять этот сервопривод в этом кадре"
// Первый элемент — метаданные: { numFrames, 0,0,0,0 }
// ... (здесь опущены огромные массивы анимаций для краткости, см. исходник) ...

// Парсер команд и машина состояний анимаций
// ... (полный код парсера и движка анимаций) ...

void setup() {
  softwareSerial.begin(SERIAL_SPEED);
  servoLeftHip.attach(SERVO_LEFT_HIP, LEFT_HIP_MIN, LEFT_HIP_MAX);
  servoLeftFoot.attach(SERVO_LEFT_FOOT, LEFT_FOOT_MIN, LEFT_FOOT_MAX);
  servoRightHip.attach(SERVO_RIGHT_HIP, RIGHT_HIP_MIN, RIGHT_HIP_MAX);
  servoRightFoot.attach(SERVO_RIGHT_FOOT, RIGHT_FOOT_MIN, RIGHT_FOOT_MAX);
  setup_Parser(); setup_Animation();
}

void loop() { loop_Parser(); loop_Animation(); }

Примечание: Полный исходный код очень объемен (около 800 строк). Он содержит массивы анимаций, парсер последовательного протокола и движок плавной интерполяции сервоприводов. Скачайте полный скетч из оригинального проекта.

Схема подключения

MobBob: Самостоятельная сборка Arduino-робота под управлением Android-смартфона

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

  1. Создание Bluetooth-робота на Raspberry Pi с аудио-обратной связью
  2. Сделай свой LUMAZOID: DIY Arduino музыкальный визуализатор
  3. Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
  4. Создание рулетки на 37 светодиодов с Arduino Nano
  5. Умный вольтметр на Arduino и смартфоне — простое DIY-проект
  6. Голосовой робот на Arduino Nano: Управление речью через Bluetooth
  7. PiBot: Робот-пианист на Arduino для точного исполнения музыки
  8. NeoPixel Matrix Pong на Arduino Nano: неоновая игра Pong на матрице 15×10
  9. DIY манипулятор, управляемый жестами руки: пошаговая сборка на Arduino
  10. Сборка 4-колесного робота на Arduino UNO с управлением через приложение Dabble