Guten Morgen, ich bin Student im Praxissemster. Meine Aufgabe für dieses Zeit soll es sein, einen bestehenden Busknoten um einen USB-Anschluss zu erweitern, um eine Webcam anzuschließen. Die Daten sollen dann als Bild an einem anderen Busknoten auf einem Webserver bereit gestellt werden. Die Verbindung zwischen den beiden Knoten besteht und funktioniert, auch der Webserver dürfte machbar sein, nur finde ich leider keine Informationen für die Einbindung von USB. Das Projekt soll dazu dienen, mir in den nächsten 5 Monaten die C-Programmierung und USB näher zu bringen. Das Problem ist auch nicht, das ich nichts über USB finde, ich habe hier Bücher über Bücher liegen und im Internet steht ja auch eine Menge, ich weiß aber nicht, was wichtig ist und was eher zweitrangig sein sollte. Daher möchte ich gerne ein paar Tips, wo ich mich am Besten einlesen sollte, bzw was (Webseiten, Bücher) für einen Anfänger die besten einstiegsmöglichkeiten bietet. Als vorgegebener Microcontroller wurde ein Atmel AT32UC3A3 verwendet. Ich weiß das dieser laut Datenblatt USB integriert hat, nur kann ich da trotz einer Woche recherche noch nicht viel mehr mit Anfangen. Ich wäre über jeden Tip sehr Dankbar, evtl auch über ein paar Codeschnipsel, um vielleicht ein paar Sachen nachvollziehen zu können. Ich möchte die Praxissemsterzeit wirklich gerne intensiv nutzen um Tief in die Microcontroller und C-Programmierung Materie zu kommen, nur leider sehe ich momentan die Zeit nur so dahin fliegen weil ich keine Ansätze für die Webcam einbindung finde. Danke im Voraus
Hallo Lars. Dass eine Webcam einen USB-Stecker hat, heisst ja noch lange nicht dass Du auch ihr Uebertragungsprotokoll kennst. Und da die Hersteller ja seltenst Treiber fuer Atmel Controller bereitstellen, bleiben Dir eigentlich nur zwei Moeglichkeiten: a) Die Daten von der Webcam per USB entgegennehmen und den unveraenderten Datenstrom ueber den Bus an ein System zu schicken, fuer das Treiber vorhanden sind (und dort so tun als waere die Cam direkt angeschlossen). b) Recherchieren ob fuer eine bestimmte Webcam (oder einen Webcam-Controller-Typ) ein offenes oder "entschluesseltes" Protokoll existiert. Was ist denn das fuer ein Knoten? Was fuer ein Bus? Was haengt alles dran? Und was genau ist die Zielsetzung? Volker
Hallo Volker, danke schon mal für deine Antwort, leider darf ich nicht sagen, was das für ein Bussystem ist, da ich sonst gegen meine Betriebsvereinbahrung verstoßen würde und mein Praktikum dann wahrscheinlich hier sein ende finden würde :-( zu a) Diese Möglichkeit kommt in sofern nicht in betracht, weil das Zielsystem ein anderer Knoten mit dem selben Microcontroller ist, auf dem Direkt der Webserver realisiert werden soll. zu b) Genau das ist mein Problem, ich weiß überhaupt noch nicht so genau, wie das Protokoll funktioniert. Funktioniert das im Prinzip so wie in der Handycam, die in den anderen Projekten hier im Forum beschirieben sind? Wird eine Bildanfrage an die Kamera gesendet und bekommt man daraufhin ein Bild oder wie funktioniert das genau? Über die ansteuerung von USB-Sticks habe ich schon eine Menge gefunden, da gibt es auch Beispiele und grobe erklärungen für, aber mit den Kameras scheint es ein wenig komplizierter zu sein, wobei das für mich total unverständlich ist. So eine ganze Kamera kostet um die 5 €, da kann es doch nicht so kompliziert sein... gruß Lars
Bei Massenspeichern (USB-Sticks) ist das was ganz anderes. Diese setzen alle auf einem Treiber (und somit auf einem Protokoll) auf, das auch noch offen und gut spezifiziert ist. Bei den Webcams kocht jeder Hersteller sein eigenes Sueppchen, das meist heimlich und ohne oeffentlich zugaengliche Dokumentation. Deshalb braucht es fuer eine Webcam eben auch herstellerspezifische Treiber. Muss es denn unbedingt eine USB-Webcam sein? Ansonsten koennte man ja eine analoge Videoquelle und einen Frame Grabber benutzen... Oder google mal nach "AVRcam". Volker
Meine zuletzt gekauften WebCams brauchten keinen speziellen Treiber mehr, der Windows-XP-eigene reichte aus. Möglicherweise gibt's schon Leute, die mt solchen Webcams irgendwas Dolles angestellt haben.
Es muss nicht unbedingt eine Webcam sein, mein Projektleiter es wäre die schönste Lösung, wenn es aber garnicht geht, dann soll ich nach alternativen suchen, nur eben nicht unbedingt die Handycam. Aber das ist schon mal eine ziemlich hilfreiche Antwort gewesen, dass jeder Hersteller seinen eigenen Treiber verwendet. Das heißt dann ja schon mal, das der USB Anschluss keine weiteren vorteile bietet als eine andere Kamera, da man auch, selbst wenn man es hinbekommen würde, an ein Model gebunden ist. Die AVRCam hatte ich mir auch schon oft angeguckt und ist definitiv ein sehr interessantes Projekt, worauf jetzt wohl auch mein Wahl fallen wird. Aber eine Frage habe ich trotzdem noch, könnte man denn evtl auch eine "normale" Video-Kamera ansprechen? Also, wenn man eine Kamera mit einem normalen Videoausgang nehmen möchte? Kannst du mir da evtl ein Referenz Projekt nennen? Tausend Dank schon mal Lars
Lars Schröder schrieb: > Aber eine Frage habe ich trotzdem noch, könnte man denn evtl auch eine > "normale" Video-Kamera ansprechen? Also, wenn man eine Kamera mit einem > normalen Videoausgang nehmen möchte? Kannst du mir da evtl ein Referenz > Projekt nennen? Ein Bild aus einem analogen Videosignal muss natuerlich digitalisiert werden. Dafuer werden "Frame Grabber" verwendet. Sowas: http://www.digitalcreationlabs.com/uCFG.htm Lassen sich die Hersteller aber gut bezahlen. ;) Volker
> Aber das ist schon mal eine ziemlich hilfreiche Antwort gewesen, > dass jeder Hersteller seinen eigenen Treiber verwendet. Dem muss nicht so sein, es gibt eine Standardgeräteklasse für USB-Videogeräte.
Naja, hab schon 2-3 der 5€ USB-Cams zerlegt und nicht selten ist mir da nix mirakulöses entgegengefallen. I.d.R. war das nix als n Kameramodul mit serieller Schnittstelle und ein USB-Uart wandler in der Art von FTDI. Oft war sogar noch der Modulhersteller ersichtlich, gerne Omnivision-Typen. Hat man den Typ kann man sich das "Protokoll" aus den gängigen Datenblättern ziehen. Die 5€-Hersteller versuchen natürlich nicht das Rad neu zu erfinden.
@Volker: Oh ja, habe jetzt gesehen und verstehe was du mit "gut bezahlen" meinst... Daher fällt es schon mal raus, zu viele Extras, zu teuer.. usw, alles das was das Projekt nicht kosten darf. Trotzdem Dank @Rufus Hallo, wie meinst du das? Heißt das es gibt doch eine einheitliche Möglichkeit eine USB-Schnittstelle zu haben, in der ich jede beliebeige Webcam anschließen kann? Kannst du mir einen Hinweis geben, wo ich Informationen bekommen kann? Habe hier zwei Bücher liegen 1. USB 2.0 von Franzis ISBN 3-7723-7966-4 2. Messen, Steuern, Regeln mit USB auch von Franzis ISBN 3-7723-5874-8 Nur das sind unendlich viele Informationen wenn man nicht weiß wogenau man nach suchen muss... Gruß Lars
http://en.wikipedia.org/wiki/USB_video_device_class Das ist gemeint.. Funktioniert NICHT mit jeder Webcam.. Aber vielleicht findest Du ja eine, die explizit auf UVC oder Kompatbilitaet mit der Playstation verweist? Volker
@Fhutdhb Genau sowas habe ich mir schon gedacht, dann es ja so gesehen nur ein Umweg der sie Sache unnötig kompliziert macht. Erst von Seriell auf USB und ich muss dann den Kram (nach meiner jetzigen Einschätzung aufwendig) wieder zurückwandeln um dann ein serielles Signal, welches ich idealerweise haben möchte, zu bekommen. Ich hoffe noch auf den ein oder anderen Betrag, der mich in die richtige Richtung lenkt, was das Programmieren, bzw die Einbindung von USB angeht, ansosnten werde ich heute nachmittag mal zu Reichelt fahren und mir ne Kamera zum basteln holen. Auch wenn das nicht die optimalste Lösung ist, die ich meinem Projektbetreuer zeigen möchte. Es hätte lieber eine Funktionierende Lösug von mir, ohne Bastellei, einfach USB Stecker rein und es muss funktioneren. Vorgabe ist auch für den Anfang erstmal, das überhaupt ein Bild kommt. In welchen Abständen ist egal, ein "flüssiges" Bild soll ich dann im Anschluss bei meiner Bachelorarbeit draus machen. Danke schon mal
> Hallo, wie meinst du das? Heißt das es gibt doch eine einheitliche > Möglichkeit eine USB-Schnittstelle zu haben, in der ich jede beliebeige > Webcam anschließen kann? Nicht jede beliebige, nur die, die die Standardgeräteklasse implementieren. > Kannst du mir einen Hinweis geben, wo ich Informationen bekommen kann? Hier wird die Geräteklasse beschrieben: http://www.usb.org/developers/defined_class/#BaseClass0Eh Das ist die offizielle Dokumentation: http://www.usb.org/developers/devclass_docs/USB_Video_Class_1_1.zip Und hier gibt es Informationen über den diese Klasse implementierenden Linux-Treiber: http://linux-uvc.berlios.de/
Nach der Farbe der Links, bin ich auf den Seiten schon einmal gewesen, aber ich werde dort jetzt lesen, lesen, lesen... Dankeschön
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.