Hat schonmal jemand ausser mir darüber nachgedacht die Sensoren aus Optischen Mäusen als Kameras zu verwenden?
Prinzipiell sind diese Sensoren nämlich kleine digital Kameras mit einer sehr geringen Auflösung (sowas um die 128x12.
Die Bilder dieser Kameras können per Software Ausgelesen werden (ich habe einen Artikel von jemandem gelsen, der mit Hilfe von einem bisschen Software seine optische Maus in einen kleinen Handscanner verwandelt hat), ausserdem habe diese Sensoren ja noch den Vorteil, dass sie Daten über die Bewegungsrichtung und Geschwindigkeit selbst errechnen und über eine serielle schnittstelle zur verfügung stellen.
Was das ganze natülich doppelt interessant für Roboter Projekte macht.
Hinzu kommt noch der verdammt niedrige Preis für eine optische Maus heutzutage.
Die größte Herausforderung wird nur sein eine eigene Optik zu entwerfen (die standard Optik ist ja dafür gedacht scharfe Bilder vom nahen Untergrund zu machen, nicht in die Ferne zu gucken), obwohl es da vielleicht auch ein standard Objektiv aus einer S/W Kamera macht.

Was microcontroller und USB angeht... ich denke nicht, dass es möglich ist einem Micro einen generellen USB Host stack zu verpassen. Ignorieren wir sämtliche Geschwindigkeitsprobleme, dann bleibt noch das Hauptproblem, der enorm beschränkte Programmplatz in einem µC...
Ich denke man wird kaum mehr schaffen, als einem µC den speziellen Code für ein spezielles USB Gerät einzupflanzen. Gut, man könnte jetzt einfach eine Programmierbibliothek schaffen, welche sämtliche Protokolle beinhaltet, von denen dann aber nur die für die Anwendung benötigten in das eigentliche Programm des µCs einfließen.
Aber WLAN könnt ihr euch komplett abschminken, Freunde.
(Es sei denn ihr verpasst einem µC eine Ethernet Karte und schliesst das Teil annen WLAN Router an, aber das hat dann nix mehr mit USB zu tun).

Bei WLAN ist nicht allein der enorme Speicherbedarf (Protokolle, treiber) und der enorme Rechenaufwand (Verschlüsselungstechniken wie WEP und WPA) entscheidend, sondern viel mehr ein generelles Problem, das auch dazu geführt hat, dass die Unterstützung von WLAN unter Linux sich extrem schleppend entwickelt hat.
Jeder hersteller hat da seine eigene Kombination von Chipsätzen. Das heisst, man braucht für viele WLAN Hardware unterschiedliche Treiber, damit das WLAN Teil überhaupt was von sich gibt.
Das Problem dabei ist, dass den WLAN Herstellern gesetzlich verboten ist die Spezifikationen dieser Kommunikation zwischen WLAN Karte und Host freizugeben, mit der Begründung, dass ein findiger Programmierer ansonsten eine eigene Software schreiben könnte, um die Ausgangsleistung des WLAN adapters über das gesetzlich erlaubte Maximum zu bringen.
WLAN am normalen µC, vergesst es... da könnt ihr besser gleich nen ARM Prozessor nehmen (am besten noch mit USB Host eingebaut), dadrauf packt ihr dann als OS nen Linux und portiert/schreibt dafür Software.