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

Сборка двухколёсного голосового робота на Arduino и BitVoicer Server

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

Arduino UNO 1
Pololu Dual MC33926 Motor Driver Shield — 2 двигателя 5–28 В, до 3 А каждый 1
SparkFun XBee Shield 1
Microchip RN171VX WiFi-модуль с антенной (формат XBee) 1
SparkFun Electret Microphone Breakout — предусилитель 1
2WD шасси робота (акрил, 2 колеса, 360° опорное колесо, 2 мотор-редуктора 1:48, держатель 4×AA) 1
Стабилизатор LM1117 (TO-220) 3.3 В 1
Конденсатор 10 мкФ электролитический 1
Светодиоды 4
Резисторы 330 Ом 4
Аккумуляторы AA 1.5 В 4
Крона 9 В 1
Адаптер 9 В → Jack 1
Перемычки и монтажный провод 17 / 1
Винты, пластиковый хомут для фиксации 1

Инструменты

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

О проекте

В этом руководстве показано, как построить 2WD робота с голосовым управлением. Подход применим к шаговым двигателям и сервоприводам — база для любого голосового робота с механическим движением.

Сборка двухколёсного голосового робота на Arduino и BitVoicer Server

Поток обработки голосовых команд:

  1. Аудио захватывается и усиливается SparkFun Electret Breakout.
  2. Сигнал оцифровывается и буферизуется Arduino (ADC).
  3. Аудиопоток передаётся в BitVoicer Server через WiFi-модуль RN171VX.
  4. Сервер распознаёт речь.
  5. Распознанная фраза сопоставляется с предопределёнными командами, отправляемыми на Arduino.
  6. Arduino определяет команду: какие моторы, как долго, какая скорость.
  7. Драйвер моторов подаёт питание на двигатели.

Шаг 1: Знакомство с компонентами

Arduino UNO R3 — самый популярный, но подойдёт и другой. Arduino DUE позволяет добавить голосовые ответы.

Pololu Dual MC33926 Shield — отличный драйвер, до 3 А на канал, библиотека Arduino: setSpeeds(левый, правый) со знаком для направления. Занимает пины: D4,7,8,9,10,12; A0,A1; GND; 5V. Важно: PWM на 9 и 10 использует таймер, не конфликтующий с таймером 2 (BVSMic).

Сборка двухколёсного голосового робота на Arduino и BitVoicer Server

WiFi RN171VX — управление через последовательный порт, форм-фактор XBee (работает с XBee Shield).

Проблема интерференций: при передаче WiFi возникали помехи на ADC (аудио). Решение: на XBee Shield запаян стабилизатор 3.3 В + 10 мкФ для опорного напряжения ADC и микрофона. Без этого уровень тишины в BitVoicer показывал 35/100.

Сборка двухколёсного голосового робота на Arduino и BitVoicer Server

4 статусных LED (слева направо):

  1. BitVoicer Server запущен / связь активна
  2. Служба пересылки данных работает
  3. Распознаватель речи назначен Arduino
  4. Период активации (ключевое слово обнаружено)

Микрофон — любой аналоговый с высоким усилением (~100×). Питание от 3.3 В стабилизатора.

Шасси 2WD — бюджетное с eBay: акриловая платформа, 2 колеса, 360° колесо, 2 мотор-редуктора 1:48, держатель 4×AA, энкодерные диски, винты.

Шаг 2: Монтаж

Все компоненты устанавливаются на шасси как на фото. Если не хотите паять на XBee Shield — используйте мини-макетку.

Сборка двухколёсного голосового робота на Arduino и BitVoicer Server
Сборка двухколёсного голосового робота на Arduino и BitVoicer Server
Сборка двухколёсного голосового робота на Arduino и BitVoicer Server
Сборка двухколёсного голосового робота на Arduino и BitVoicer Server
Сборка двухколёсного голосового робота на Arduino и BitVoicer Server
Сборка двухколёсного голосового робота на Arduino и BitVoicer Server
Сборка двухколёсного голосового робота на Arduino и BitVoicer Server
Сборка двухколёсного голосового робота на Arduino и BitVoicer Server
Сборка двухколёсного голосового робота на Arduino и BitVoicer Server
Сборка двухколёсного голосового робота на Arduino и BitVoicer Server
Сборка двухколёсного голосового робота на Arduino и BitVoicer Server
Сборка двухколёсного голосового робота на Arduino и BitVoicer Server
Сборка двухколёсного голосового робота на Arduino и BitVoicer Server

Для снижения шума: металлическая арка для микрофона, фелт на опорном колесе, губка для изоляции проводов микрофона. Не 100% эффективно, но улучшило распознавание.

Шаг 3: Настройка WiFi-модуля

RN171VX настраивается AT-командами через последовательный порт. Вход в командный режим: $$$, выход: exit.

Код настройки (WiFi Module Setup внизу) — замените XXXXXX на ваши данные:

Если сеть не WPA2-PSK — измените set wlan auth (см. даташит).

Важно: переключатель на XBee Shield: DLINE — загрузка скетча через USB, UART — работа через WiFi. Переключайте сразу после загрузки (задержка 5 с в коде).

Сборка двухколёсного голосового робота на Arduino и BitVoicer Server

После настройки пингуйте IP модуля. Нет ответа — ошибка настройки.

Шаг 4: Планирование движений

Робот умеет выполнять сложные движения, но для простоты определены ~30 базовых (равномерных) и несколько комбинированных. Нет энкодеров/дальномеров — точность ограничена, но достаточно для перемещения.

Калибровка скорости: засеките время проезда 1–2 с, измерьте расстояние. У автора: 13.7 см/с при 62.5% скорости (250/400). 1 м = 7299 мс. Остальное — пропорции. Для поворотов/дуг — тригонометрия (один круг быстрее другого, или разные направления). Ссылки на теорию в оригинале.

Сборка двухколёсного голосового робота на Arduino и BitVoicer Server

Комплексные фигуры (квадрат, треугольник, круг) задаются в Voice Schema BitVoicer как последовательности базовых команд с задержками.

Шаг 5: Загрузка кода на Arduino

Скетч: BVS_Demo3.ino (в разделе Code). Требует библиотек BitVoicer Server и Pololu Motor Driver (Import .zip Library). Переключатель на DLINE!

Ключевые части кода:

Шаг 6: Настройка BitVoicer Server

Создайте устройство ArduinoUnoWiFi (Mixed), Communication: TCP/IP, IP модуля. Cues: включите Start/End of Activated Period, команда Int16 SendData, данные 1/0 — зажигает/гасит LED при активации.

Голосовая схема: неограниченное число фраз. Примеры: «move forward one meter» и «go forward one meter» → одна команда. Комплексные: «do a square» → последовательность команд с задержками (поле delay).

Советы: задайте команду по умолчанию в Options; копируйте команды между фразами.

Сборка двухколёсного голосового робота на Arduino и BitVoicer Server

Файлы Solution Objects для импорта: Device.sof, VoiceSchema.sof.

Шаг 7: Заключение

Установите батареи AA и крону 9 В — робот жив! После включения переключатель на UART. LED статусов загорятся по мере подключения: WiFi → TCP → 3 из 4 LED (распознаватель назначен). Готов к командам.

Распознавание речи отличное (не 100%, но удивительно хорошее). Точность движений средняя — для улучшения нужны энкодеры на колесах (в комплекте есть диски) и/или ультразвуковые датчики. Оставляю для доработки.

Код

WiFi Module Setup

void setup() {
  Serial.begin(115200);
  pinMode(13, OUTPUT);
  delay(5000);
  Serial.print("$$$"); delay(1000);
  Serial.println("set wlan auth 4"); delay(1000);
  Serial.println("set wlan phrase XXXXXX"); delay(1000);
  Serial.println("set wlan ssid XXXXXX"); delay(1000);
  Serial.println("set wlan channel 0"); delay(1000);
  Serial.println("set wlan join 1"); delay(1000);
  Serial.println("set wlan tx 0"); delay(1000);
  Serial.println("set ip dhcp 0"); delay(1000);
  Serial.println("set ip address XXXXXX"); delay(1000);
  Serial.println("set comm remote 0"); delay(1000);
  Serial.println("set comm close 0"); delay(1000);
  Serial.println("set comm open 0"); delay(1000);
  Serial.println("set comm size 500"); delay(1000);
  Serial.println("set comm time 50"); delay(1000);
  Serial.println("set uart baud 115200"); delay(1000);
  Serial.println("set uart flow 0"); delay(1000);
  Serial.println("save"); delay(1000);
  Serial.println("exit"); delay(1000);
  digitalWrite(13, LOW);
}
void loop() { }

Robot Source Code (BVS_Demo3.ino)

Полный скетч с библиотеками BVSP, BVSMic, DualMC33926MotorShield. Управляет движением, захватом аудио, TCP-соединением, протоколом BitVoicer. Основные функции: RunCommand() (switch по 40 командам), Connect()/Disconnect(), обработка событий frameReceived, управление LED, зуммер. Код объёмный — см. оригинал.

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

Сборка двухколёсного голосового робота на Arduino и BitVoicer Server

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

  1. Создание Bluetooth-робота на Raspberry Pi с аудио-обратной связью
  2. Создание интернет-управляемого видеostreaming-робота на Arduino и Raspberry Pi
  3. Надежная система учета рабочего времени на Arduino с RFID и Python
  4. Интерактивный гироскопический LED-дисплей на NeoPixel Ring и Arduino
  5. Android-управляемая робот-платформа на Raspberry Pi и Motor Shield
  6. Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
  7. Управление Roomba Create 2 через Arduino и Android: пошаговое руководство
  8. Роботизированная рука 6 степеней свободы на Arduino Mega с управлением через Nunchuk
  9. Голосовой робот на Arduino Nano: Управление речью через Bluetooth
  10. Голосовое управление бытовыми приборами: Bluetooth-управление через Google Assistant