Hallo,
Dies ist mein erster Beitrag in diesem Forum, also hoffe ich, dass es
das richtige Forum ist :)
Also es ist folgende Ausgangssituation:
In meiner Fakultät haben wir eine Carrera Bahn, deren Autos wir schon
vor einigen Semestern mit Mikrokontrollern ausgestattet haben.
Um Unfälle mit den Autos zu vermeiden habe ich vor, im Rahmen meiner
Masterarbeit, eine Entfernungsmessung zu bauen.
Die Idee ist es, dies über Stereobildverarbeitung zu tun.
Ich habe bis jetzt 2 verschiedene Sensoren Ausprobiert:
- ov7670
- AU-85B (das Modul gibts bei pollin)
Mein Problem ist hauptsächlich bei der Ansteuerung der Module.
Also beim ov7670 ist das problem, dass sich die Bildrate nicht erhöhen
lässt, indem man die Auflösung verringert.
Bei dem Modul AU-85B ist die zwar möglich, aber wenn ich versuche die
Auflösung zu verringern, liefert mir der Sensor keine Daten mehr :/
Aber generell hätte ich erstmal die Frage, ob mir jemand ein Kameramodul
empfehlen kann.
Ich brauche etwa eine Auflösung von 100x50 pixeln mit etwa 100 Hz
Graustufen reichen aus.
Na, ich hoffe das war jetzt nicht zu viel auf einmal, aber ich bin
dankbar für alle Vorschläge.
Kommen die Kameras in die Autos rein? Oder ist das mehr so eine Art
Kreuzungsüberwachung.
Wenn Du nicht weiterkommst, hast Du zwei Möglichkeiten, die Auflösung zu
erhöhen und die Rasterung zu tunneln:
1. Ein zweites Kamerasystem von weiter weg oder mit anderer Optik, dass
Du eine 1:1,41 Abbildung erhälst. Kameras zudem im 45 Grad Winkel
2. Zeitliche Auflösung senken und die DPI steigern durch Verwackeln.
(Unwuchtmotor, Frequenzregelung, XY-Korrektur gemäß Motorposition)
Eine einfachere Möglichkeit, genau zumessen, ist Ultraschall.
Danke schonmal für die Antwort :)
Die Kameras kommen in das Auto rein. An eine Ausrichtung von 45° habe
ich auch schon gedacht, kann ich aber erst ausprobieren, wenn ich mal
ein sinnvolles Bild vom Sensor erhalte ;)
Der Pollin Sensor liefert momentan Bilder mit 1600x1200 mit 12
Bildern/s.
Also Wackeln habe ich im Auto mehr als genug, wenn es fährt, denn da die
Bahnsegmente der Carrerabahn in China hergestellt werden, sind die
ziemlich Uneben :) (Notfalls kann man eine Unwucht in die Reifen
einbauen :D )
Beschleunigungssensoren sind sowieso vorgesehen, damit könnte man das
Wackeln zurückrechnen.
Was meinst du mit XY-Korrektur anhand der Motorposition?
Also vom Wissenschaftlichen Gedanken bei der Masterarbeit wäre der
Ansatz mit der hohen Auflösung super, das werde ich mal weiter
verfolgen.
Beim Ultraschall gibt es das Problem, dass vorgesehen ist, dass 10 Autos
gleichzeitig auf der Bahn fahren (an manchen Stellen hat die Bahn 6
Spuren).
Ich bin immer davon ausgegangen, dass die Autos sich stören würden,
besonders, wenn sie nebeneinander fahren. Das weitere Problem war,
glaube ich, dass die Sensoren nicht genügend Messungen Vornehmen (Die
Autos sind mit bis zu 10 m/s unterwegs).
Eine weitere optische Lösung wäre es, 2 Zeilensensoren zu verwenden, und
die mit 1000/s auszulesen, allerdings wollte ich es vermeiden eine
eigene Optik zu bauen.
Trotzdem vielen Dank für die Antwort, die Idee finde ich sehr
interessant.
Es gibt ein e Rheie neuer ultrakleiner IR Abstandsensoren z.b. VCNL4000
so einer wurde ganz gut in eine Carerra Auto passen. Die reichweite von
ca 200 mm must noch brauchbar sein. Ultraschal wird hier nichst bringen
da sich die Sensoren massiv stören wurden. Ich hate mal auf einem
roboter 2 Ultraschalsensoren in ca 160° winkel eingebaut, und die haben
sich massiv gestört wenn der eine etwas in kurzer Distanz angepingt hat.
Was mich aber sehr interessieren wurde, was für ein Controller sollte
die für die Arbeit benutzt werden? in so ein Carrera Auto passt ja nicht
so viel rein...
Ah, das ist auch eine gute Idee, aber leider brauchen die Autos etwa 1m
zum bremsen, deswegen sollten die Sensoren etwa 2m Reichweite haben.
Vermutlich würden diese sich auch gegenseitig stören, wenn 2 oder 3
Autos nebeneinander fahren.
Die Carrera Autos sind im Maßstab 1/24, da passt also einiges rein.
Momentan sind 4 xmega drin. Für die Bildverarbeitung würde ich natürlich
einen DSP nehmen, oder alles direkt in einem FPGA implementieren.
theHL-mod:
wie hast du denn bei der au-85 die aufloesung versucht zu
verringern...?
hast du das subsampling der kamera verwendet ? oder benutzt du die
window funktion ? oder beides ?
zu dem problem das keine daten mehr geliefert werden... es gibt einen
linebuffer den man explizit aktivieren muss... (reg 0x2210 -> [5]: Line
Buffer usage.)
diesen linebuffer braucht man wenn die output clock nicht das doppelte
der imager clock ist...
hast du das mal probiert ? vielleicht braucht die kamera diesen
linebuffer beim subsampling... aber nur eine vermutung...
ich hab zwar noch nichts gemacht mit der kamera aber das datenblatt habe
ich ein wenig gelesen...
lg....
Cool, vielen Dank, den Line buffer habe ich noch nicht ausprobiert. Die
Kamera hat 3 Möglichkeiten für sub sampling allerdings nur eine, die
direkt auf dem Bildsensor arbeitet. Ansonsten habe ich Subsampling und
windowing ausprobiert. Beim Linebuffer dachte ich, dass der automatisch
aktiviert ist, weil beim Default value laut datasheet das Bit auf 1 ist
(Zumindest dachte ich das)
Wenn ich später im Labor bin probier ich das aber auf jeden Fall mal aus
:)
Hallo theHL-mod,
da du ja die Ansteuerung des AU-85B Moduls schon gewältigt hast, wäre es
möglich einige Details zu nenen (verwendeter µC etc.)
Ein Thread zur Verwendung des Moduls läuft gerade hier:
Beitrag "pollin kamera au-85"
Grüße
Smarti
ja stimmt du hast recht...
als default steht beim reg 0x2210 = 0x20 das ist ja genau das bit...
nur auf seite 20 steht:
The use of this buffer must be explicitly enabled.
etwas widerspruechlich...
aber meine kamera ist heute gekommen (bzw. liegt bereits in der
packstation) werd ich dann auch mal ein paar tests machen am
wochenende...
lg...
Also momentan lese ich noch mit dem xmega aus rotwerd, aber später
werde ich einen DSP verwenden. Ich habe noch einen ARM7 und diverse
Hyperstone DSPs hier rumliegen, die von mir noch getestet werden wollen
;)
Den Anderen Thread werde ich mir mal genauer anschauen, danke.
Nettes Projekt,
meinst nicht du willst das noch ein wenig ausbauen?
Wie wäre es damit:
http://www.heise.de/newsticker/meldung/Panorama-im-Flug-1360554.html
Sorry, ist n bissle off topic, aber mit dem Pollinmodul könnte das
günstig machbar sein ;)
Viel Erfolg bei deinem Projekt
Also ich habe letzte Woche mein Testprogramm nochmal angeschaut, dabei
ist mir aufgefallen, dass ich das Register 0x2210 schon auf den Wert
0x20 gesetzt habe.
Wirklich schade, dass es die Firma nicht mehr gibt, sonst würde ich dort
einfach nachfragen.
Hast du denn bei deinem eigenen Projekt auch vor die Auflösung zu
verändern?
Bei der Steuerung mit dem Xmega nehme ich diesen nur zur Konfiguration
über i2c, Bilder lese ich dabei nicht aus, ich zähle nur anhand der
Interrupts, wie groß das Bild ist. Am Oszilloskop schaue ich mir diese
interruptleitungen auch an (VSYNC, HSYNC und Pixel clock), daher sehe
ich, wenn kein Bild mehr kommt :)
am wochenende hab ich das mal soweit geloetet und angefangen mit der
ansteuerung...
der line mode ist immer aktiv stimmt schade. scheint so das die info wo
im datenblatt nicht ganz aktuell ist.
mist hab ich anderen thread geantwortet... dann hier noch mal kurz.
also ich stell 250a ein. starte die aufnahme und hsync und vsync tut
sich was.
ich zaehl nachher auch mal die irqs mal schauen was bei mir rauskommt.
aenderst du eigentlich den pll ? was ich nicht ganz verstehe ist ich geh
zum test mit 8 mhz rein (mainclock) output clock ist 2,6 mhz das kann
ich noch nachvollziehen. internal clock muesste dann 4 mhz sein wenn ich
das mal per hand durchrechne. verstehe ich aber nicht ganz weil im
datenblatt steht das die output clock > der mainclock sein soll.
oder ein fehler im datenblatt ? gibt ja noch am ende ein divider der
durch 2 teilt fuer die internal clock aber der ist eigentlich aus...