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

Голосовое управление Arduino-машинкой по Bluetooth (BLE/HC-05) — DIY

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

Компонент Количество
Arduino UNO 1
Макетная плата 1
DC-моторы с редуктором (колёса) 2
Рама шасси 1
Стабилизатор напряжения LM7805 (5V) 1
Драйвер моторов L293D (Dual H-Bridge) 1
Батарея 12V (или аккумуляторный пак) 1
Перемычки 1 набор
Bluetooth-модуль HC-05 (или BLE-модуль) 1

Идея

Смартфон с приложением для голосового управления отправляет команды по Bluetooth на Arduino. Приложение преобразует речь в текст (например, "forward", "back", "left", "right") и передаёт строки, оканчивающиеся символом '#'. Arduino считывает символы из последовательного порта, собирает строку и сравнивает с командами. При совпадении — управляет моторами через L293D.

Подключение

Полная схема и фото: блог автора.

Кратко:

Скетч

int motor_in1 = 11; // Правый мотор +
int motor_in2 = 10; // Правый мотор -
int motor_in3 = 5;  // Левый мотор +
int motor_in4 = 6;  // Левый мотор -

String voice;

void setup() {
  Serial.begin(9600);
  pinMode(motor_in1, OUTPUT);
  pinMode(motor_in2, OUTPUT);
  pinMode(motor_in3, OUTPUT);
  pinMode(motor_in4, OUTPUT);
}

void loop() {
  // Чтение строки из Serial до символа '#'
  while (Serial.available() > 0) {
    delay(10);
    char c = Serial.read();
    if (c == '#') break;
    voice += c;
  }

  if (voice == "forward") {
    digitalWrite(motor_in1, LOW);  digitalWrite(motor_in2, HIGH);
    digitalWrite(motor_in3, LOW);  digitalWrite(motor_in4, HIGH);
    delay(5000);
  }
  else if (voice == "back") {
    digitalWrite(motor_in1, HIGH); digitalWrite(motor_in2, LOW);
    digitalWrite(motor_in3, HIGH); digitalWrite(motor_in4, LOW);
    delay(5000);
  }
  else if (voice == "left") {
    digitalWrite(motor_in1, LOW);  digitalWrite(motor_in2, HIGH);
    digitalWrite(motor_in3, HIGH); digitalWrite(motor_in4, LOW);
    delay(800);
  }
  else if (voice == "right") {
    digitalWrite(motor_in1, HIGH); digitalWrite(motor_in2, LOW);
    digitalWrite(motor_in3, LOW);  digitalWrite(motor_in4, HIGH);
    delay(800);
  }

  if (voice.length() > 0) {
    Serial.println(voice); // Эхо в монитор порта
    voice = "";
    // Стоп моторов
    digitalWrite(motor_in1, LOW); digitalWrite(motor_in2, LOW);
    digitalWrite(motor_in3, LOW); digitalWrite(motor_in4, LOW);
  }
}

Приложение для смартфона

Ссылка на Google Play (указанная автором): https://play.google.com/store/apps/details?id=appinventor.ai_cempehlivan92.Arduino_Sesli_Kontrol (возможно, устарела). Альтернатива: любое приложение "Bluetooth Voice Control" или самописное на MIT App Inventor / Thunkable, отправляющее команды "forward#", "back#", "left#", "right#".

Улучшения и советы

Схемы

Ссылка на схему в описании проекта (блог автора). Файл схемы не приложен, но подключение стандартное для L293D + HC-05.

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

  1. Alexa-управляемый ARDrone 2.0: Голосовой дрон с Raspberry Pi и Hologram Nova
  2. Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
  3. Создание рулетки на 37 светодиодов с Arduino Nano
  4. Превращаем старую радиоуправляемую машину в джойстик-контролируемый болид на Arduino
  5. Мини-аркада на ATtiny85: Snake — ручная OLED-консоль своими руками
  6. Портативный дальномер на Arduino Nano: HC-SR04, питание 18650, 3D-корпус
  7. MobBob: Самостоятельная сборка Arduino-робота под управлением Android-смартфона
  8. Умный гидравлический кран с управлением через приложение – точность и простота
  9. Автономный робот-следопыт с распознаванием лиц на Arduino Nano и OpenCV
  10. PiBot: Робот-пианист на Arduino для точного исполнения музыки