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

Управление множеством сервоприводов по Bluetooth: Arduino + Android-приложение

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

КомпонентКоличествоПримечание
Arduino UNO (или Mega для >6 серв)1RobotDyn Uno
Bluetooth-модуль HC-061или любой другой
Сервоприводы (SG90 / MG996R и т.п.)6можно тестировать с 1
Перемычки (набор MM/FF/MF)1
Android-смартфон1

О проекте

Управление множеством сервоприводов по Bluetooth: Arduino + Android-приложение

Ранее делал управление 1 сервой, теперь — мульти-управление. Приложение на Google Play (исходники по запросу).

Сборка

Подключите по схеме, загрузите скетч, установите приложение, свяжите Bluetooth (после пары). Важно: RXD модуля → TX Arduino, TXD → RX. Не подключайте Bluetooth при загрузке скетча!

Настройка HC-06 (опционально)

Для смены имени, PIN, baud rate нужен USB-TTL программатор:

Подробнее во вложенном PDF.

Скетч Arduino (до 10 серв)

/* Author: Danny van den Brande */
#include <Servo.h>

Servo servo[10];
byte serialA;

void setup() {
  servo[0].attach(9);  servo[1].attach(10); servo[2].attach(11);
  servo[3].attach(3);  servo[4].attach(5);  servo[5].attach(6);
  // servo[6].attach(...); // раскомментируйте для >6 серв (нужен Mega)
  Serial.begin(9600); // baud rate модуля
}

void loop() {
  if (Serial.available() > 2) {
    serialA = Serial.read(); // служебный байт
    unsigned int servopos = Serial.read();
    unsigned int servopos1 = Serial.read();
    unsigned int realservo = (servopos1 * 256) + servopos;

    if (realservo >= 1000 && realservo < 1180) { // Серво 1
      int pos = map(realservo, 1000, 1180, 0, 180);
      servo[0].write(pos); Serial.println("Servo 1"); delay(10);
    }
    else if (realservo >= 2000 && realservo < 2180) { // Серво 2
      int pos = map(realservo, 2000, 2180, 0, 180);
      servo[1].write(pos); Serial.println("Servo 2"); delay(10);
    }
    else if (realservo >= 3000 && realservo < 3180) { // Серво 3
      int pos = map(realservo, 3000, 3180, 0, 180);
      servo[2].write(pos); Serial.println("Servo 3"); delay(10);
    }
    else if (realservo >= 4000 && realservo < 4180) { // Серво 4
      int pos = map(realservo, 4000, 4180, 0, 180);
      servo[3].write(pos); Serial.println("Servo 4"); delay(10);
    }
    else if (realservo >= 5000 && realservo < 5180) { // Серво 5
      int pos = map(realservo, 5000, 5180, 0, 180);
      servo[4].write(pos); Serial.println("Servo 5"); delay(10);
    }
    else if (realservo >= 6000 && realservo < 6180) { // Серво 6
      int pos = map(realservo, 6000, 6180, 0, 180);
      servo[5].write(pos); Serial.println("Servo 6"); delay(10);
    }
    // Для серв 7-10 добавьте блоки 7000-7180, 8000-8180, 9000-9180, 10000-10180
  }
}

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

Управление множеством сервоприводов по Bluetooth: Arduino + Android-приложение

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

  1. Simple Pi Robot — Сборка 2WD автономного ровера на Raspberry Pi
  2. Универсальный Android-пульт на Arduino, 1Sheeld и ИК-управлении
  3. Arduino Power Control Center: N-FET, P-FET, реле и RTC
  4. Android-управляемая робот-платформа на Raspberry Pi и Motor Shield
  5. Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
  6. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  7. DIY-контроллер увлажнителя на Arduino с реле: безопасная работа с высоким напряжением
  8. Точное управление сервоприводом через MPU6050 (Arduino, SG90, MG996R)
  9. Серводвигатели: принцип работы и значение
  10. Сервоприводные редукторы: функции, преимущества и применение