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

Wi-Fi FPV-робот на Arduino и ESP8266: сборка, код и веб-управление

Компоненты

Arduino UNO×1
Arduino Proto Shield (или макетная плата)×1
ESP8266 ESP-01×1
Шаговые двигатели 28BYJ-48 + драйверы ULN2003×2
Колёса 42×19 мм с резиной×2
Омни-колесо 49×20×32 мм (стальной шар)×1
Смартфон на Android (FPV-камера)×1
Power Bank (питание 5В)×1
Резисторы 1 кОм (×2), 100 кОм (×2) — делитель для ESP RX—
Крепёж: болты/гайки M2, M3, 5/32″, алюминиевые уголки, акрил 2 мм, клепка для селфи-палки—

Инструменты

Софт и сервисы

Механическая часть

Корпус вырезается из 2-мм акрила по 2D-чертежам (в проекте есть .dwg, .pdf, .123dx). Разметка переносится через клейкую бумагу. Акрил режут ножом по линейке (нарезают groove) и ломают по линии. Отверстия сверлят дрелью (акрил легко сверлится). Сборка на болтах/гайках: M3 — моторы, 5/32″ — переднее колесо и крепление телефона.

Вал 28BYJ-48 толще отверстия в колесе — нужен переходник (автор использовал деревянный) или клей.

Электрика

Код Arduino (stepperRobot.ino)

#include <SoftwareSerial.h> #include <Stepper.h>
SoftwareSerial esp8266(3, 2); // RX=3, TX=2
#define DEBUG true
const int stepsPerRevolution = 500;
Stepper rightStepper(stepsPerRevolution, 8,10,9,11);
Stepper leftStepper(stepsPerRevolution, 4,6,5,7);

void setup() {
  Serial.begin(9600);
  esp8266.begin(19200); // проверьте бодрейт вашего модуля!
  sendData("AT+RST\r\n", 2000, DEBUG);
  sendData("AT+CWMODE=1\r\n", 1000, DEBUG);
  sendData("AT+CWJAP=\"SSID\",\"PASS\"\r\n", 5000, DEBUG);
  while(!esp8266.find("OK")) {}
  sendData("AT+CIFSR\r\n", 1000, DEBUG); // узнать IP
  sendData("AT+CIPMUX=1\r\n", 1000, DEBUG);
  sendData("AT+CIPSERVER=1,80\r\n", 1000, DEBUG);
  rightStepper.setSpeed(60); leftStepper.setSpeed(60);
}

void loop() {
  if(esp8266.available()) {
    if(esp8266.find("+IPD,")) {
      esp8266.find("?");
      String msg = esp8266.readStringUntil(' ');
      String cmd = msg.substring(0,3);
      int val = msg.substring(4).toInt();
      if(cmd=="cm1") state=1; // forward
      else if(cmd=="cm2") state=2; // backward
      else if(cmd=="cm3") state=3; // right
      else if(cmd=="cm4") state=4; // left
      else if(cmd=="cm5") state=5; // stop
    }
  }
  // выполнение шагов согласно state
  if(state==1) { rightStepper.step(1); leftStepper.step(-1); }
  else if(state==2) { rightStepper.step(-1); leftStepper.step(1); }
  else if(state==3) { rightStepper.step(1); leftStepper.step(1); }
  else if(state==4) { rightStepper.step(-1); leftStepper.step(-1); }
}

String sendData(String cmd, int timeout, bool debug) {
  String resp=""; esp8266.print(cmd);
  long t=millis(); while((t+timeout)>millis()) {
    while(esp8266.available()) resp += (char)esp8266.read();
  } if(debug) Serial.print(resp); return resp;
}

Веб-интерфейс управления

HTML/JS файл (в архиве interface.rar) открывается в Firefox. Вводится IP ESP-модуля и IP видео-стрима (из IP Webcam). Стрелки клавиатуры → команды cm1–cm4. Есть тестовая кнопка «Spin».

Запуск

  1. Загрузить скетч, открыть Serial Monitor — дождаться коннекта к Wi-Fi и IP.
  2. Отключить USB, подключить Power Bank.
  3. Запустить IP Webcam на смартфоне, вставить его в клепку на роботе.
  4. В веб-интерфейсе ввести IP ESP и IP камеры, нажать Connect.
  5. Удерживать стрелки для движения. При задержке видео снизить разрешение в IP Webcam.

Файлы проекта

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

  1. Создание Bluetooth-робота на Raspberry Pi с аудио-обратной связью
  2. Создание интернет-управляемого видеostreaming-робота на Arduino и Raspberry Pi
  3. Робот УФ-дезинфекции на Arduino Mega: дистанционно управляемая гермицидная система
  4. Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
  5. Интеграция ёмкостного сканера отпечатков DFRobot с Arduino или ESP8266
  6. Управление Roomba Create 2 через Arduino и Android: пошаговое руководство
  7. Роботизированная рука 6 степеней свободы на Arduino Mega с управлением через Nunchuk
  8. Управление двумя шаговыми двигателями через джойстик на Arduino Nano — простой урок (Visuino)
  9. Голосовой робот на Arduino Nano: Управление речью через Bluetooth
  10. Оценка здоровья растений с TinyML: Практическое руководство