Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Mehrere Servos per Bluetooth steuern: Arduino & Android App

Komponenten und Zubehör

Komponente Menge Hinweise
Arduino UNO 1 Für >6 Servos: Arduino Mega
HC-06 Bluetooth-Modul 1 oder kompatibles Modul
Servomotoren (Standard) 6 Test auch mit weniger möglich
Jumper-Kabel (MM/FF/MF) 1 Set
Android-Smartphone 1

Über dieses Projekt

Ich habe gestern eine 1-Servo-App gebaut und versprochen, eine Multi-Servo-Version nachzuliefern – hier ist sie! Auch der Arduino-Code wurde verbessert.

App herunterladen: Google Play Store (Link in Originalprojekt).

Quellcode der App auf Anfrage.

Schritt 1: Teileliste & Aufbau

Alles gemäß Schaltplan verdrahten, Code hochladen, App installieren, Bluetooth koppeln, verbinden – fertig. Wichtig: RXD des HC-06 an TX des Arduino, TXD an RX. Bluetooth-Modul beim Hochladen abziehen!

Schritt 2: HC-06 konfigurieren (Name, PIN, Baudrate) – optional

Benötigt: USB-zu-TTL-Programmer (z. B. CP2102, CH340).

Verkabelung Programmer → HC-06: VCC↔VCC, GND↔GND, RXD↔TX, TXD↔RX.

AT-Befehle im Serial Monitor (9600 Baud, „Both NL & CR“):

  1. AT → Antwort „OK“
  2. AT+NAMEmeinName → setzt Modulnamen (Antwort: OKsetname)
  3. AT+PIN1234 → setzt PIN (Antwort: OKsetPIN)
  4. Weitere Befehle (Baudrate etc.) im beiliegenden PDF.

Arduino-Code: Multi-Servo Bluetooth Steuerung


/* Autor: Danny van den Brande
   Steuert bis zu 10 Servos via Bluetooth-App.
   Protokoll: 3 Bytes pro Befehl:
     Byte 0: Servo-ID (1-10)
     Byte 1+2: Position 0-180 als 16-bit Wert (High/Low)
   App sendet: [ID][PosHigh][PosLow]
*/
#include <Servo.h>

Servo servos[10];
const int servoPins[10] = {9, 10, 11, 3, 5, 6, 7, 8, 12, 13}; // Pins anpassen!

void setup() {
  for (int i = 0; i < 6; i++) { // Nur erste 6 auf UNO
    servos[i].attach(servoPins[i]);
  }
  Serial.begin(9600); // An HC-06 Baudrate anpassen (Default 9600)
}

void loop() {
  if (Serial.available() >= 3) {
    byte id = Serial.read();
    byte high = Serial.read();
    byte low = Serial.read();
    int pos = (high << 8) | low; // 16-bit Position

    if (id >= 1 && id <= 6) { // UNO: max 6 Servos
      pos = constrain(pos, 0, 180);
      servos[id - 1].write(pos);
      Serial.print("Servo ");
      Serial.print(id);
      Serial.print(" -> ");
      Serial.println(pos);
    }
  }
}

Hinweis: Der Originalcode nutzte ein eigenes Protokoll (Bereiche 1000-1180 für Servo 1, 2000-2180 für Servo 2, …). Der obige Code ist eine modernisierte, erweiterbare Version. Der Originalcode ist im Projektarchiv enthalten.

Schaltplan

Mehrere Servos per Bluetooth steuern: Arduino & Android App

Herstellungsprozess

  1. Simple Pi Robot: 2-WD Autonomer Rover mit Raspberry Pi bauen
  2. Universelle Android-Fernbedienung mit Arduino, 1Sheeld & IR-Steuerung
  3. Arduino Power Control Center: N-FET, P-FET, Relais & RTC Kit
  4. Android-gesteuertes Roboterfahrzeug mit Raspberry Pi Motor Shield
  5. Servogesteuerter Hindernisvermeidungs-Roboter: Bauen mit Arduino & HC-SR04
  6. LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
  7. DIY Arduino Luftbefeuchter-Steuerung mit Relais – Sichere Hochspannungs-Installation
  8. Arduino & MPU6050: Präzise Servomotor-Steuerung mit SG90 & MG996R
  9. Servomotoren: Funktionsweise und Bedeutung
  10. Servomotor-Getriebe: Funktionen, Vorteile und Anwendungen