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

Arduino UNO Kommandozeilen-Schnittstelle (CLI): Schnell & Speichereffizient

Komponenten

Projektbeschreibung

Eine leistungsfähige, textbasierte Kommandozeilenschnittstelle (CLI) für Arduino-Sketches. Sie ermöglicht die Steuerung und Diagnose von Mikrocontroller-Projekten über den seriellen Monitor – ganz ohne zusätzliche Hardware. Befehle bestehen aus einem Namen und optionalen Argumenten (Zahlen oder Text), getrennt durch Leerzeichen oder Kommas. Die Implementierung ist extrem speicherschonend (C-Strings statt String-Objekte) und unterstützt sogar Backspace bei der Eingabe.

Architektur & Funktionsweise

Haupt-Loop

Der loop() ruft zyklisch zwei Funktionen auf:

#include "CommandLine.h"

void setup() {
  Serial.begin(115200);
}

void loop() {
  if (getCommandLineFromSerialPort(CommandLine)) {
    DoMyCommand(CommandLine);
  }
  // Weitere Aufgaben hier...
}

CommandLine.h – Kernfunktionen

Die Datei enthält:

Eigene Befehle hinzufügen

  1. In CommandLine.h: Neuen Befehls-Token definieren (const char* meinBefehl = "meinbefehl";)
  2. Handler-Funktion schreiben (z. B. int meinBefehlHandler() { ... })
  3. In DoMyCommand() einen weiteren else if-Zweig einfügen.

Beispiel: LED-Steuerung per CLI

const char* ledOnToken = "ledon";
const char* ledOffToken = "ledoff";

int ledOnHandler() {
  int pin = readNumber(); // z.B. "ledon 13"
  pinMode(pin, OUTPUT);
  digitalWrite(pin, HIGH);
  print2("LED an Pin ", pin);
  return 0;
}

int ledOffHandler() {
  int pin = readNumber();
  digitalWrite(pin, LOW);
  print2("LED aus Pin ", pin);
  return 0;
}

// In DoMyCommand():
if (strcmp(cmd, ledOnToken) == 0) ledOnHandler();
else if (strcmp(cmd, ledOffToken) == 0) ledOffHandler();

Tipps & Best Practices

Vorteile dieser CLI

Download & Weiterführendes

Der vollständige Code von CommandLine.h ist im Artikel enthalten. Einfach als neuen Tab CommandLine.h in der Arduino IDE anlegen, hineinkopieren, im Haupt-Sketch includieren – fertig.

Herstellungsprozess

  1. C# Kommentare meistern: Arten, Best Practices und XML-Dokumentation
  2. C#-Interfaces meistern: Definition, Implementierung und praktische Anwendungsfälle
  3. Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
  4. Zuverlässiger kabelloser Einfahrtssensor für lange Einfahrten – Einfache Raspberry Pi Integration
  5. Low-Cost Infrarot-Näherungssensor für Raspberry Pi nur mit Digitalpins
  6. ANDY – Der vielseitige humanoide Roboter
  7. Simple Pi Robot: 2-WD Autonomer Rover mit Raspberry Pi bauen
  8. Kommandozeilenargumente in C meistern: Ein praktischer Leitfaden
  9. C# Interfaces: Verträge für robuste objektorientierte Programmierung
  10. Stahlband-Spaltanlagen: Präzises Zuschneiden von Coils zu Bändern