mikrocontroller.net

Forum: FPGA, VHDL & Co. high speed camera


Autor: J.S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich finde es jedesmal wieder beeindruckend:

http://thomaspfeifer.net/fpga_dsp_bildverarbeitung.htm


Eine kurze Suche ergab Preise mehrerer tausend Euro für eine 
Hochgeschwindigkeitskamera, daher würde ich gerne von euch Profis 
wissen, wie folgendes Vorhaben realisiert werden könnte.

Es soll ein periodischer Vorgang bei Fehler aufgezeichnet werden. 
Periode 1-3s. Der Vorgang selbst liegt bei ca. 1/10s.

Ob man bei 300fps schon brauchbare Erkenntnisse bekommen kann, lässt 
sich leider nicht einschätzen.

Die Entwicklung müsste also getriggert für einen Moment aufnehmen, und 
wenn ein Fehler vorliegt, das Video anschließend übertragen.

Ideal wäre eine komprimierte Übertragung über USB, wo der HOST die Daten 
auf Flash speichern könnte.

Da das im Laborbetrieb verwendung findet, muss nicht eigens eine 
komplette Schaltung gefertigt werden, kann auch gut auf Basis von 
Entwicklungsboards sein.

Wie schätzt Ihr die Machbarkeit, Zeitaufwand und Materialkosten ein?

Leider hatte ich noch nicht die Gelegenheit, mich mit programmierbarer 
Logik zu beschäftigen, aber das wäre eine Ausrede, um mal damit zu 
'spielen'. Ich wäre daher sehr verbunden, wenn die Antworten 
Anfängertauglich wären. Danke schonmal!

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Entwicklung müsste also getriggert für einen Moment aufnehmen, und
> wenn ein Fehler vorliegt, das Video anschließend übertragen.

Dies ist mir nicht ganz klar. Heißt das Du willst das das FPGA den 
Fehlerfall erkennt und dann die Aufnahme überträgt? Was ist das für ein 
Fehler?

Autor: J.S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, externe Triggerung, keine Analyse.

Trigger
Graustufen-CCD auslesen 1/10s
zwischenspeichern
bei Fehlersignal komprimieren und ausgeben
warten (ca. 1s)

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist schwer zu sagen. Mir ist ehrlich gesagt nicht ganz klar, ob Du das 
alleine (hobbymässig) machen möchtest, oder ist es eine "richtige" 
Entwicklung.

Von der HArdware ist nicht besonders kompliziert. Du brauchst einen 
Sensor, FPGA, Zwischenspeicher (SRAM/SDRAM), USB-Controller. Ich denke, 
komprimieren ist nicht notwendig.

Ansonsten hängt vieles davon ab, wie hoch die Auflösung ist, denn die 
Preise für Sensoren schnellen sehr schnell in die Höhe ;-)

Grüße,

Kest

Autor: Johnny Maxwell (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Es soll ein periodischer Vorgang bei Fehler aufgezeichnet werden.
> Periode 1-3s. Der Vorgang selbst liegt bei ca. 1/10s.

Wiederholt sich der Fehler auch bei jedem Zyklus? Dann hast du gewonnen, 
du musst nur bei jedem Zyklus eine (Foto-)Kamera immer ein wenig später 
triggern, schon hast du ein "Hochgeschwindigkeitsvideo". 
Belichtungszeiten sehr viel kleiner als 1/10s sollten ja kein Problem 
sein.

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achtung, 1/10s sind zwar kein Problem, aber wenn es schneller als 1/180s 
wird, wandert bei den SLRs nur ein Schlitz über den Film/Sensor 
(Schlitzverschluss). Das könnte u.U nicht im Sinne des Beobachters sein. 
Wie die Zeiten bei einem Zentralverschluss aussehen (Bridgekamera) weiß 
ich nicht.

Rick

Autor: J.S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier entwickelt sich ein Mißverständnis:

Es soll innerhalb einer 10tel Sekunde ein Video aufgenommen werden, 
nicht ein Bild. Es gibt (könnte geben) zwei externe Signale, z.B. 
event_trigger und event_keep.

Bei event_trigger soll die Aufnahme starten, was mit 'Hobbymitteln' 
machbar ist. Bei event_keep (Fehler aufgetreten) sollen die Daten aus 
dem Zwischenspeicher dann über USB an einen Host, der auf Flash 
speichert.
Im Fehlerfall blieben also 9/10s um den Zwischenspeicher zu übertragen.


> Von der HArdware ist nicht besonders kompliziert. Du brauchst einen
> Sensor, FPGA, Zwischenspeicher (SRAM/SDRAM), USB-Controller. Ich denke,
> komprimieren ist nicht notwendig.

Kennt ihr vielleicht noch andere Projekte ähnlich des genannten?

MfG

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Von der HArdware ist nicht besonders kompliziert. Du brauchst einen
>> Sensor, FPGA, Zwischenspeicher (SRAM/SDRAM), USB-Controller. Ich denke,
>> komprimieren ist nicht notwendig.
>
> Kennt ihr vielleicht noch andere Projekte ähnlich des genannten?

Na ja, in der Industrie-Elektroik gibt es zu Hauf solche Projekte! ;-) 
Alle sind irgendwie gleich... und doch sind alle verschieden.

Fang anfach an alles zu dimensionieren:
- wie groß sind die Images?
- wie lange sind die Sequencen?
  -> Größe des Speichers
- wie schnell müssen die Bilder aufgenommen werden?
  -> Bandbreite des Speichers
- wie schnell willst Du alls zum PC übertragen?
  -> Schnittstelle: USB, Firewire, RS232, ...
- Trigger latenz
  -> über USB?
  -> Timer?
...

Irgendwann ergibt sich alles automatisch :-)


Grüße,

Kest

Autor: high_speed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nehmen wir mal an:
Auflösung (VGA) 640x480   Schwarz/weiß  8 bit

Damit braucht jedes Bild  307 200 Byte .

Die zu speichernde Zeit beträgt 100ms.
300 Bilder/s sollen aufgezeichnet werden.

Das macht 30 Bilder pro Ereignis.

=> 9 216 000 Byte = 8,790 MiByte

Diese Daten müssen innerhalb von 900ms übertragen werden.

Das macht dann eine Netodatenrate innerhalb dieser Zeitspanne von
81,92 Mbit/s.

MfG
Holger

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
blöde Frage: Hast du denn schon eine Kamera die die erforderliche 
Framerate liefert?

Es wird hier munter über die weitere Verarbeitung (Kompression, 
Triggerung, etc.) spekuliert, die Daten sind aber noch nicht mal im 
FPGA.

Ich kann mir aber gut vorstellen, dass geeignete Kameras auch schon 
nicht billig sind und die Mehrzahl auch eher für die direkte Integration 
mit einer ersten Verarbeitungsstufe ausgelegt sind. Die Kamera müßte bei 
dem vorherigen (Minimal-)Beispiel ja immerhin knapp ein Gigabit/s 
während der Aufnahme zum FPGA schaffen. Die Kamera muss da wohl wirklich 
für die Datenanbindung über "längere" Strecken (mind. 1 m) gebaut sein.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.