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

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

In diesem Arduino-Tutorial lernen Sie, wie Sie mit dem MIT App Inventor (Online-Anwendung) benutzerdefinierte Android-Apps zur Arduino-Steuerung erstellen. Sie können das folgende Video ansehen oder die schriftliche Anleitung unten lesen.

Überblick

Wir haben zwei Beispiele: 1) Einfache LED-Steuerung, 2) Schrittmotorsteuerung per Smartphone. Im vorherigen Tutorial haben wir bereits die Bluetooth-Kommunikation (HC-05) und den Arduino-Code für Beispiel 1 erklärt.

Arduino-Code (Kurzübersicht)

Über den seriellen Port empfangen wir Daten vom Smartphone und speichern sie in Variable ‚state‘. Empfangen wir ‚0‘ (gesendet beim Drücken von „LED: OFF“), schalten wir die LED aus und senden den String „LED: OFF“ zurück. Bei ‚1‘ schalten wir die LED ein und senden „LED: ON“ zurück.

/* Arduino and HC-05 Bluetooth Module Tutorial
 * by Dejan Nedelkovski, www.HowToMechatronics.com */
#define ledPin 7
int state = 0;
void setup() {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  Serial.begin(38400);
}
void loop() {
  if (Serial.available() > 0) {
    state = Serial.read();
  }
  if (state == '0') {
    digitalWrite(ledPin, LOW);
    Serial.println("LED: OFF");
    state = 0;
  } else if (state == '1') {
    digitalWrite(ledPin, HIGH);
    Serial.println("LED: ON");
    state = 0;
  }
}Code language: Arduino (arduino)

Nun bauen wir die Android-App, die ‚0‘ und ‚1‘ sendet und die Rückmeldestrings empfängt.

MIT App Inventor

Auf der MIT App Inventor Website melden Sie sich über „Create apps!“ an (Gmail-Konto erforderlich). Nach dem Login erstellen Sie ein neues Projekt. So sieht das Design-Fenster aus – jetzt können wir unsere App bauen.

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

Verbinden Sie Ihr Smartphone für Live-Test: Laden Sie „MIT AI2 Companion“ aus dem Play Store, installieren Sie es. Im Online-Editor: „Connect“ → „AI Companion“ → Barcode scannen oder Code eingeben → Verbindung steht.

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

Jetzt erscheint z. B. ein im Editor eingefügter Button sofort auf dem Smartphone. Alternativ kann man den Android Emulator am PC nutzen (Details auf der Website).

App bauen – Beispiel 1

Layout: HorizontalArrangements aus Palette „Layout“ hinzufügen, Eigenschaften (Höhe, Breite, Ausrichtung) anpassen. Aus „UserInterface“ einen ListPicker hinzufügen und ein Bild zuweisen – er dient zur Bluetooth-Geräteauswahl.

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

Weitere HorizontalArrangements: Label für Verbindungsstatus (Initialtext „Not Connected“), Label für LED-Status (Initial „LED: OFF“), Buttons „Turn On“ und „Turn Off“. Komponenten umbenennen für leichteren Zugriff im Blocks-Editor. Nicht-sichtbare Komponenten: BluetoothClient und Clock (für Echtzeit-Verbindungsanzeige).

Blocks Editor

Im Blocks-Editor verleihen wir der App Leben. Links alle Blöcke/Funktionen der hinzugefügten Komponenten.

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

Start mit BluetoothList (ListPicker): „BeforePicking“-Block + „set Bluetooth Elements“-Block. Dazu „BluetoothClient AddressesAndNames“ – setzt Liste der gekoppelten Geräte, die beim Klick auf „Connect Button“ erscheint.

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

Nach Auswahl: „call BluetoothClient.Connect address“ + „BluetoothList Selection“ → Handy verbindet sich mit gewählter Bluetooth-Adresse.

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

Clock: „.Timer“-Block → Echtzeit-Anzeige ob verbunden (Label „Connected“ per „set Text“).

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

Buttons: Bei „TurnOn_Button“.Click → BluetoothClient „Send1ByteNumber“ → Zahl 49 (ASCII ‚1‘) → LED an. Dann „ReceiveText“ → empfangener String („LED: ON“) in Label „LED_Status“ schreiben.

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

„TurnOff_Button“ analog mit Zahl 48 (ASCII ‚0‘). Fertig: Über „Build“ Menü als APK speichern oder QR-Code scannen für direkten Download. Demo folgt.

Download der MIT App Inventor Projektdatei:

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

BluetoothTest.aia

1 file(s) 5.16 KB Download

Schrittmotor-Steuerung – Beispiel 2


Oben dieselben Bluetooth-Komponenten wie zuvor. Ein Canvas-Komponente für Zeichnung/Bilder: zwei transparente Bilder (Skala fix, Zeiger drehbar). Checkbox für Manual/Auto-Modus, Button für Drehrichtungsumkehr, Slider für Drehgeschwindigkeit.

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

Blocks & Arduino-Code: Bluetooth-Blöcke wie Beispiel 1.

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

Zeiger drehen: ImageSprite „.PointInDirection“ dreht Bild von 0° zur berührten Canvas-Koordinate. Drehwinkel in Label anzeigen. Eigene Prozedur (10 ms Delay) aufrufen. Winkel als Text per „SendText“ an Arduino senden → Arduino positioniert Schrittmotor entsprechend.

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

Checkbox: Gecheckt → „Auto“ an Arduino senden (Dauerlauf). In diesem Modus: „Reverse“-Button sendet „Reverse“ (Richtungswechsel). Slider-Änderung sendet aktuellen Wert → Arduino ändert Geschwindigkeit. Uncheck → zurück in Manual-Modus. Demo folgt.

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

Download der Projektdatei & Bilder:

Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

StepperMotorTest.aia

1 file(s) 60.96 KB Download Eigene Android-App für Arduino-Steuerung mit MIT App Inventor erstellen

Stepper Motor Gauge and Pointer Images

1 file(s) 27.34 KB Download

Arduino-Code für Beispiel 2:

/* Stepper Motor Control via HC-05 Bluetooth Module
 * by Dejan Nedelkovski, www.HowToMechatronics.com */
const int stepPin = 7;
const int dirPin = 6;
String state = "";
int currentHeading = 0;
int currentAngle = 0;
int lastAngle = 0;
int angle = 0;
int rotate = 0;
int runContinuously = 0;
String mode = "Manual";
boolean dirRotation = HIGH;
int rotSpeed = 1500;
void setup() {
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
  Serial.begin(38400);
}
void loop() {
  delayMicroseconds(1);
  if (Serial.available() > 0) {
    state = Serial.readString();
  }
  // Auto-Modus
  if (mode == "Auto") {
    if (state == "Reverse") {
      delay(10);
      dirRotation = (dirRotation == HIGH) ? LOW : HIGH;
      digitalWrite(dirPin, dirRotation);
      delay(10);
      state = "";
    }
    rotSpeed = state.toInt();
    if (rotSpeed >= 300 && rotSpeed <= 3000) {
      digitalWrite(stepPin, HIGH);
      delayMicroseconds(rotSpeed);
      digitalWrite(stepPin, LOW);
      delayMicroseconds(rotSpeed);
    } else {
      digitalWrite(stepPin, HIGH);
      delayMicroseconds(1500);
      digitalWrite(stepPin, LOW);
      delayMicroseconds(1500);
    }
    if (state == "Manual") mode = state;
  }
  // Manual-Modus
  else if (mode == "Manual") {
    currentHeading = state.toInt();
    if (currentHeading < 0) currentHeading = 360 + currentHeading;
    currentAngle = map(currentHeading, 0, 359, 0, 200);
    digitalWrite(dirPin, HIGH);
    if (currentAngle != lastAngle) {
      if (currentAngle > lastAngle) {
        rotate = currentAngle - lastAngle;
        for (int x = 0; x < rotate; x++) {
          digitalWrite(stepPin, HIGH);
          delayMicroseconds(500);
          digitalWrite(stepPin, LOW);
          delayMicroseconds(500);
        }
      }
      if (currentAngle < lastAngle) {
        rotate = lastAngle - currentAngle;
        digitalWrite(dirPin, LOW);
        for (int x = 0; x < rotate; x++) {
          digitalWrite(stepPin, HIGH);
          delayMicroseconds(500);
          digitalWrite(stepPin, LOW);
          delayMicroseconds(500);
        }
      }
    }
    lastAngle = currentAngle;
    if (state == "Auto") mode = state;
  }
}Code language: Arduino (arduino)

Herstellungsprozess

  1. Ballistisches Fallschirm-Rückführungssystem für UAVs designen
  2. Das richtige Material für Ihr Projekt wählen: Praktischer Leitfaden
  3. Monitor-Ambilight selbst bauen mit Arduino Nano & WS2812B LEDs
  4. Universelle Android-Fernbedienung mit Arduino, 1Sheeld & IR-Steuerung
  5. 7 Schritte zum erfolgreichen Automatisierungs-Fahrplan
  6. Die richtige Legierung wählen: Magnesium vs. Aluminium für individuelle Gussprojekte
  7. Den passenden Kran fürs Bauprojekt wählen: Praxisleitfaden
  8. So bereiten Sie Ihr Custom-Machining-Projekt für ein wettbewerbsfähiges Angebot vor
  9. Präzise Stahlkalkulation: Schritt-für-Schritt-Anleitung für Ihr Projekt
  10. Warum Sandstrahlen Custom-Metallfertigungsprojekte verbessert