Forum: Mikrocontroller und Digitale Elektronik AVR und USB-Webcam


von Micha (Gast)


Lesenswert?

Hallo zusammen,

hat sich schonmal jemand gedanken über AVR und einer USB-Webcam
gemacht.  Ich stelle mir da so ein "art" interface vor: AVR liest
USB-Webcam aus und stellt sie daten über einen seriellen link zur
verfügung (funk!)....

geschwindigkeit ist zweitrangig!

Gruß Micha,

von T.Stütz (Gast)


Lesenswert?

Du benötigst dazu einen USB-HostController den du dann vom AVR her
programmieren mußt.

[Meinung ON] Programmierung des Hostcontrollers ist schwierig [Meinung
OFF]

Gibt es keine andere Möglichkeit das zu lösen ?

Gruss

von Roman (Gast)


Lesenswert?

Conrad hat so kleine Kameramodule um ca. 15 EUR. Die sind zwar S/W aber
für den Anfang sicher ausreichend. Ich habe bereits erfolgreich die
Kamera über den ADC in den AVR und dann wieder per DAC rauslaufen
lassen (einfach durch den AVR durch). Das funktioniert zeitlich noch.
Da hier aber eine immense Datenrate anfällt, geht sich mit einem
normalen AVR nicht mehr viel (gar nix mehr?) an Berechnungen oder
Operationen aus. Für das werden gerne DSPs verwendet. Bei der embedded
Messe hatte Xilinx (oder AD?) einen DSP mit einer Kamera
zusammengehängt und dann noch eine komplexe Bildberechnung
durchgeführt. Das ging prima, war halt ein DSP. Am besten versuchen die
Videodaten vorher aufzubereiten und dann das reine Videosignal in den
AVR rein. Aber ich bezweifle das du das über Funk so einfach
rauskriegst, da die Geschwindigkeit wirklich schnell sein müsste.
Wäre es möglich, das Videosignal mit einem Videocodec zu encodieren
bevor es in den AVR kommt, wärs perfekt und du hättest genug Zeit für
andere Operationen noch.

Weiß jemand von so einem Videocodec? Gibts vielleicht Files für einen
FPGA der das A/D gewandelte Videosignal codieren kann ?

Naja, soviel zur -OHNE USB- Version.

Roman

von Micha (Gast)


Lesenswert?

Hi,

@T.Stütz,

was die programmierung angeht schrecke ich eigentlich vor nichts
zurück... alles ist irgendwie machbar, aber ich habe mir die doku zum
einem Hostcontroller von Cypress gerade mal durchgelesen... hmmm! :-)

eine andere Lösung gibt es bestimmt, ich habe nur mal Meinungen
einholen wollen, da ich 1.) bestimmt 20 WebCams in meiner Bastelkiste
liegen habe (Auflösung einem Internetcafe's), und 2.) fast alle bis
auf zwei USB sind...

@Roman,

das hört sich auch interessant an, wärst du bereit evtl. dein Wissen
was das digitalisieren angeht mit mir zu teilen ?!? :-)


Ich dachte mir das Gesamtkonzept ungefähr so:

AVR hat eine kleine (288x384 reicht mir)Kamera dranhängen (egal mal was
für eine Schnittstelle, sollte nur in den nächsten jahren nicht
abgekündigt werden...), die liest er periodisch aus, so alle 5min
(einfach mal eine zahl) oder so... das Bild wir in einem RAM oder SD,
CF, oder Flash, oder, oder, oder gespeichert und zur Abholung über
einen seriellen Link irgendwann auf Kommando bereitgestellt.

Gruß Micha,

von Roman (Gast)


Lesenswert?

Weils ich grad lese, noch ein kurzes Kommentar:

Ich dachte vorerst du willst das ganze per Live-Video machen,
also dauerhaft. Aber anscheinend willst eh "nur" ein Bild aufzeichnen
alle Weile mal. Da würd sich wirklich anbieten eine Routine zu
entwickeln (testweise) die mal versucht ein Bild A/D zu wandeln und das
dann in einem Speicher abzulegen. Hier wär auch möglich, das Bild
interlaced einzulesen, also erstmal alle geraden Zeilen und danach alle
ungeraden (würde das Zeithandling etwas vereinfachen denke ich). Das ist
zwar nicht 100% korrekt da bei den ungeraden Zeilen ja theoretisch schon
ein komplett anderes Bild sein könnte (weil später aufgezeichnet) aber
ich denke bei 25 Frames in der Sekunde merkt man das nicht.

Wie gesagt, ich bin nur Verfechter der non-usb Version, weil ich nicht
weiß wie das mit einem USB Host zu machen ist am besten, besonders im
Videobereich, da viele Webcams schon sehr auf Codecs basieren bei der
Übertragung.

Bei analogem Vorgang:

1. Videosignal digitalisieren
2. Eine Zeile schnell abtasten und in einen Zwischenspeicher schreiben
3. Eine Zeile auslassen und dabei die vorige Zeile in ein
   RAM übertragen (wenn es sich zeitlich ausgeht?)

4. usw.

Das könnte man zwar schneller mit einem FPGA oder auch normalen
Speichern und Zählern zusammenbauen, aber es wär halt schön wenn
es "nur" ein AVR C Programm bräuchte.

Soviel dazu.

Roman

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.