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

Умный говорящий гуманоидный робот на Arduino UNO — пошаговая инструкция

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

Arduino Pro Mini (5V, 16 MHz) (любая плата подойдет, использована для компактности) ×1
Пин-хедеры (мама/папа) для монтажа на перфоплату —
Перфоплата (Vero Board) ×1
Модуль SD-карты (TF) ×1
Micro SD-карта (не более 2 ГБ) ×1
ИК-датчики приближенности ×3
Сервоприводы (Tower Pro MG996R / SG90) ×3
Картон для корпуса —

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

О проекте

Этот робот — Мофиза (странное имя) — ВИДИТ, ГОВОРИТ и РЕАГИРУЕТ на окружение. Сначала посмотрите видео.

Часто говорящих роботов делают на более мощных платах, но на Arduino тоже можно сделать гуманоида, который говорит и движется сервоприводами. Начнем!

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

(Список выше + фото деталей в исходнике)

Шаг 2: Датчики ИК и корпус

Корпус сделан из картона — просто. ИК-датчики запаяны шлейфом с разъемами: два в «глаза», один в «грудь».

Логика: если срабатывает грудной датчик — робот говорит приветствие. Если срабатывает датчик в глазе — говорит «Ааа... не трогай мой глаз» и поднимает сервопривод в этой зоне.

Шаг 3: Схема

Схема выглядит сложно, но на самом деле проста. Питание от одного аккумулятора. Всё пайкается на перфоплате. Сервоприводы на голове и руках.

Шаг 4: Код

Используются две библиотеки:

  1. TMRpcm.h — воспроизведение аудио с SD-карты (речь). GitHub
  2. ServoTimer2.h — управление сервоприводами через Timer2, так как TMRpcm использует Timer1. Объяснение

Пример кода (приветствие + рукопожатие левой рукой):

#include "ServoTimer2.h"
#define SD_ChipSelectPin 10
#include "TMRpcm.h"

TMRpcm tmrpcm;
ServoTimer2 matha;  // голова
ServoTimer2 lhand;  // левая рука
ServoTimer2 rhand;  // правая рука

int in1 = 6, in2 = 7, in3 = 8;  // пины датчиков

void setup() {
  matha.attach(2);
  lhand.attach(3);
  rhand.attach(4);
  tmrpcm.speakerPin = 9;
  Serial.begin(9600);
  if (!SD.begin(SD_ChipSelectPin)) {
    Serial.println("SD FAIL");
    return;
  }
}

void loop() {
  if (!(digitalRead(in3))) {  // датчик груди сработал (LOW = сработал)
    tmrpcm.play("welcome.wav");
    lhand.write(2500);       // рука вверх
    delay(2000);
    lhand.write(1200);       // позиция рукопожатия
    delay(9000);
  } else {
    lhand.write(300);   // руки вниз
    rhand.write(1700);
    matha.write(1500);  // голова в центр
  }
}

На SD-карте должен быть файл welcome.wav (8-бит, 16 кГц, моно). Можно записать свои фразы.

Полный расширенный код на GitHub: Mofiza — Humanoid social robot

Шаг 5: Финал

Подключаете питание — робот готов. Хотел сделать ходьбу, но осталось только 3 свободных цифровых пина — мало для ног. Поддержите подпиской на YouTube!

Схема

См. раздел Schematics (изображение схемы в исходнике).

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

  1. Создание интернет-управляемого видеostreaming-робота на Arduino и Raspberry Pi
  2. Умные шторы: автоматическое управление светом на Arduino с солнечной энергией
  3. Умная копилка: управление монетоприёмником на Arduino Nano
  4. Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
  5. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  6. Автономный линий-следующий робот на Arduino UNO
  7. Управление Roomba Create 2 через Arduino и Android: пошаговое руководство
  8. Голосовой робот на Arduino Nano: Управление речью через Bluetooth
  9. Управление манипулятором LittleArm через Android-приложение по Bluetooth
  10. Умный зарядный мультиплексор для 6 батареек на Arduino Uno с LCD и ультразвуковым управлением