> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/german/function-blocks/input-output/image-inputs/camera-usb-external.md).

# Camera USB External

Dieser Funktionsblock stellt eine Verbindung zu einer externen USB-Kamera über den Geräteindex her und bietet flexible Steuerungsmöglichkeiten für Auflösung, Belichtung und Live-Frame-Streaming. Er eignet sich für Automatisierungs- und Produktionsumgebungen, in denen Kameraindex, Auflösung und Belichtung von anderen Blöcken oder externen Signalen gesteuert werden.

## 📥 Eingänge <a href="#inputs" id="inputs"></a>

`Activate Signal`\
Verwende dieses Boolean, um das Abrufen von Frames von der ausgewählten Kamera zu starten.

`Release Signal`\
Verwende dieses Boolean, um die Kamera zu stoppen und ihre Ressourcen freizugeben.

`Camera Index`\
Gib einen Integer an, um das Kameragerät auszuwählen (Geräteindex oder gescannte Indexzuordnung).

`Resolution Width`\
Gib einen Integer für die gewünschte Erfassungsbreite an.

`Resolution Height`\
Gib einen Integer für die gewünschte Erfassungshöhe an.

`Scan Cameras`\
Auf true setzen, um angeschlossene USB-Kameras neu zu scannen und die Geräteliste zu aktualisieren.

`Set Exposure`\
Optionaler numerischer Wert, um die manuelle Belichtung der Kamera einzustellen (wenn unterstützt).

`Set Auto Exposure`\
Optionaler numerischer Wert, um den Auto-Exposure-Modus der Kamera einzustellen (wenn unterstützt).

## 📤 Ausgänge <a href="#outputs" id="outputs"></a>

`Camera Frame`\
Der zuletzt aufgenommene Bildframe von der ausgewählten USB-Kamera.

## 🕹️ Steuerungen <a href="#controls" id="controls"></a>

`Source / Resolution Info`\
Ein Statuslabel, das die aktuelle Kameraquelle und die aktive Auflösung anzeigt.

Hinweis: Viele Steuerungen sind als Eingangsbuchsen verfügbar, sodass der Block von anderen Blöcken oder UI-Steuerelementen gesteuert werden kann.

## 🎯 Funktionen <a href="#features" id="features"></a>

* Kamerawahl per Geräteindex oder gescannter Listenabbildung, geeignet für Multi-Kamera-Systeme.
* Laufzeitänderung der Auflösung über separate Breiten- und Höhen-Eingänge.
* Manuelle Belichtungs- und Auto-Belichtungssteuerung, sofern Kamera und Plattform dies unterstützen.
* Soft-Restart-Verhalten: Der Block versucht, bei leeren oder fehlerhaften Frames die Kamera automatisch neu zu starten.
* Optionaler Hintergrund-Frame-Uploader (falls im System konfiguriert) zum Streamen von Frames für Remote-Logging oder Analyse.
* Für headless- oder automatisierte Workflows ausgelegt, weil die meisten Einstellungen über Eingänge verfügbar sind.

## ⚙️ Ausführungsmechanismus <a href="#running-mechanism" id="running-mechanism"></a>

* Wenn `Activate Signal` true ist, versucht der Block, Frames über `Camera Frame` bereitzustellen.
* Wenn `Release Signal` true ist, stoppt der Block die Aufnahme und gibt die Kameraressourcen frei.
* Eine Änderung von `Camera Index` veranlasst den Block, das ausgewählte Gerät zu öffnen.
* Die Angabe von `Resolution Width` und `Resolution Height` während des Betriebs versucht, die Erfassungsauflösung zu ändern.
* Die Angabe von `Set Exposure` oder `Set Auto Exposure` versucht, die Belichtungseinstellungen der Kamera anzupassen, sofern das Gerät dies unterstützt.
* Erkennt der Block wiederholt leere oder fehlgeschlagene Frames, führt er einen Neustartzyklus durch, um die Kamera automatisch zu rekonfigurieren.
* Wird `Scan Cameras` aktiviert, aktualisiert der Block die verfügbare Kameraliste (nützlich beim Anschließen neuer Geräte).

## 📝 Nutzungsanweisungen <a href="#usage" id="usage"></a>

1. Verwende `Scan Cameras` oder die Kamerenerkennung deines Systems, um verfügbare Geräte aufzulisten.
2. Gib den gewünschten Geräteindex in `Camera Index` ein, um eine Kamera auszuwählen.
3. Optional: Setze `Resolution Width` und `Resolution Height` für die gewünschte Erfassungsgröße.
4. Sende `Activate Signal`, um die Frame-Erfassung zu starten. Überwache `Source / Resolution Info` für den aktuellen Zustand.
5. Passe `Set Exposure` oder `Set Auto Exposure` nur an, wenn deine Kamera diese Steuerungen unterstützt.
6. Sende `Release Signal`, wenn du fertig bist, um das Gerät freizugeben.

## 💡 Tipps und Tricks <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Um Frames live zu betrachten, verbinde den Ausgang `Camera Frame` mit dem Block `Show Image` für eine interaktive Vorschau.
* Um Frames zu speichern oder ein Dataset zu erstellen, verbinde `Camera Frame` mit `Image Logger` oder `Record Video`.
* Wenn die Kamera verrauschte Frames liefert, leite die Frames durch `Blur` oder `Denoising`, bevor du sie an Detektoren weitergibst.
* Ändere die Größe hochauflösender Aufnahmen vor rechenintensiven Schritten, um die Geschwindigkeit zu erhöhen: Verbinde `Camera Frame` mit `Image Resize` und dann mit nachgelagerten Analyseblöcken.
* Für regionsbasierte Analysen schneide das Frame mit `Image ROI Select` zu, bevor du Detektoren wie `Find Object` oder `Object Detection` ausführst.
* Kombiniere den Block mit AI-Modulen wie `Object Detection - Custom` oder `Skeleton Estimation` für Live-Inferenzpipelines.
* Nutze `Scan Cameras` beim Hot-Plugging von Kameras, damit der Block neue Geräte entdecken kann, ohne das gesamte System neu zu starten.

## 🛠️ Fehlersuche <a href="#troubleshooting" id="troubleshooting"></a>

* Keine Frames oder schwarze/leere Frames:
  * Überprüfe, ob der richtige Integer an `Camera Index` übergeben wurde. Falls unsicher, führe einen Scan mit `Scan Cameras` durch.
  * Stelle sicher, dass keine andere Anwendung die Kamera verwendet. Schließe andere Programme und versuche es erneut.
  * Versuche niedrigere Auflösungswerte über `Resolution Width` und `Resolution Height` — einige Kameras können hohe Auflösungen nicht zuverlässig streamen.
* Belichtungssteuerungen zeigen keine Wirkung:
  * Nicht alle Kameras oder Plattformen unterstützen programmatische Belichtungssteuerung. Falls die Einstellungen nicht greifen, versuche die Hersteller-Software der Kamera oder nutze das Info-Label des Blocks, um aktuelle Werte zu prüfen.
* Sporadische Frame-Drops oder Fehler:
  * Verwende einen anderen USB-Port oder einen aktiven USB-Hub. Nutze niedrigere Auflösungen, um Bandbreite zu sparen.
  * Wenn die automatische Wiederherstellung nicht hilft, setze zuerst `Release Signal` und dann `Activate Signal`, um einen vollständigen Neustart zu erzwingen.
* Kamera wird beim Scan nicht erkannt:
  * Stelle sicher, dass das Gerät mit Strom versorgt und verbunden ist. Stecke die Kamera neu ein und aktiviere `Scan Cameras` erneut.
  * Auf manchen Systemen können sich Geräteindizes nach Neustart oder Wiedereinstecken ändern — verwende die Scan-Listen-Zuordnung, um zuverlässig auszuwählen.

Wenn Probleme weiterhin bestehen, zeige die Frames mit `Show Image` an und nimm eine kurze Aufnahme mit `Record Video` auf, um das Verhalten zu prüfen und ggf. dem Support bereitzustellen.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.augelab.com/german/function-blocks/input-output/image-inputs/camera-usb-external.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
