Hier:
https://www.roboternetz.de/phpBB2/vi...=149110#149110
habe ich mal meinen Code gepostet (hatte versehentlich auf neues Thema geklickt).
Druckbare Version
Hier:
https://www.roboternetz.de/phpBB2/vi...=149110#149110
habe ich mal meinen Code gepostet (hatte versehentlich auf neues Thema geklickt).
HI!
Ich habe jetzt die Vref auf knapp 2V geändert.
Ich bekomm aber nur 255...
Und nun?
VLG Tobi
Es kann sein, dass dein AVR, das nicht mit macht. Ich weiß grad nicht mehr, verwendest du grade einen externen AD-Konverter? Dann geht das natürlich. Beim AVR darfst du eine bestimmte Grenze nicht unterschreiten, da sonst der AD-Wandler nicht mehr vernünftig arbeiten kann.
Diese Grenze ist ca. bei 2,3-2,5V hab ich gelesen.
Gruß
Timo
hallo, ich übertrage 20x20 pixel in das sram vom avr16.
dieses fenster ist entscheidend für das hindernis.
die auswertung habe ich noch nicht geschrieben.
Castle
Minimale Spannung am externen Vref Pin ist 1V (s. Datenblatt).
Tobi, wenn Du immer 255 (also ein weisses Bild) liest, ist entweder Deine Belichtungszeit zu lang oder der Gain zu hoch.
Setze den Gain mal auf minimale Werte und fang bei der Belichtungszeit mit niedrigen Werten (z.B. 4.5 ms, wie in meinen Settings) an.
Du musst auch darauf achten, dass die Kamera keinen Infrarotfilter hat. Also am Besten mit weissen oder blauen LEDs (geringer Infrarotanteil) beleuchten. Die 40W Schreibtischglühlampe ist am wenigsten geeignet.
Bei der JUFO im Saal zum Testen wird der Raum nicht mit weissen oder blauen LEDs beleuchtet.
Um dort zurechtzukommen, muss er schon mit mehreren Lichtverhältnissen klarkommen.
Castle
Ps:"Du musst auch darauf achten, dass die Kamera keinen Infrarotfilter hat. Also am Besten mit weissen oder blauen LEDs (geringer Infrarotanteil) beleuchten. Die 40W Schreibtischglühlampe ist am wenigsten geeignet."
Die CAM hat kein Infrafilter.
Mit einer Schreibtischlampe und LEDs wird wohl kaum jemand den Raum ausleuchten.
IR-Filter: Am einfachsten ist es im Fotoladen in der Grabbelkiste einen gebrauchten Filter zu nehmen und ein Stück davon vor die Linse zu setzen. Vielleicht gibt es auch Folien, die preiswerter sind. Ansonsten ist eine Belichtungseinstellung die Hölle und Objekterkennung unterschiedlicher Objekte kann ein echtes Problem werden.
Reicht ja schon, dass die Kamera keinen elektronischen Shutter hat :wink:
CMOSCam haben Analoge Signale nach Fernsehnorm und keine Pixel.
Meine CMUCAM2 macht einmal Schnappschüsse in das RAM auf der gleichen Platine(Pixel) oder Sendet über Funk bei Bedarf auch ein Fernsehanalogsignal.
Folge : Das Analogsignal der CMUCAM2 wird auch in Pixel umgewandelt.
Der Chip arbeitet dort mit 25Mhz.
Castle
super_castle: Das ist so nicht richtig.
Ein CMOS Chip gibt analoge Werte der einzelnen Pixel aus. Die Fernsehnorm beschreibt etwas ganz anderes (s. wikipedia). Wenn die Ausleseelektronik der CMU2Cam PAL oder NTSC Signale liefert ist das eine Eigenschaft der Kamera, aber nicht des verwendeten CMOS Chips (den man übrigens auch ohne C3088 Modul kaufen kann). Die Informationen eines CMOS Chips werden pixelweise als analoge Werte ausgelesen, so wie die bei der GBKamera.
Ein gute Beschreibung der verschiedenen Verfahren bei CCD und CMOS findet sich hier: http://www.informatik.hu-berlin.de/~...cd-vs-cmos.pdf
Daraus kann man auch sehr schön sehen, warum die GBCam keinen Shutter hat: Hätte nämlich pro Pixel einen Transistor mehr gekostet und damit wäre der Chip zu teuer geworden.
na dann viel spass....ist ja einfach...und wir machen uns solche gedanken.
das bisschen werdet ihr dann wohl bis 11.11 uhr schaffen , gelle.
Castle
ps: meine gameboycam macht bei der auswertung 20x20 gute fortschritte.
mit lampe, ohne lampe, mit led und ohne led.
es klappt doch. nur gewusst wie.
die funkfarbcam von pollin(39 euro) macht saubere funkbilder(farbe).
am pc habe ich jetzt die auswertung mit purebasic fertig.
ein roter ball 5cm wird erkannt und der robby steuert dahin (befehl über easy-usb-funk vom pc zum robby)
die cmucam2 am robby hat überhaupt keine probleme mehr (sorgenfreies kind).
Hi!
Ich habe jetzt noch nicht viel an den registern rumgespielt. Kommt ehute dran.
Ich benutze einen E X T E R N E N ADC!!
Ich bin ja mal auf eure Auswertung gespannt...
Ich werde die Ganzen 128*123 Pixel aus... ;D
VLG Tobi
Habe gestern abend meine Hardware wieder zum zucken gebracht. Mit 2.5V VRef sind die Bilder super. Gain ist 0, und die Werte gehen von 30-255.
Das ist ja perfekt!
Kann ich mal ein Bild sehen?
Wegen dem Vref: Ich glaube, dass da außerdem stand, dass sich Vref nicht signifikant von VCC unterscheiden darf. Dass Vref 2,5V überhaupt noch geht, liegt schon außerhalb der Spezifikation.
Ich schaue das aber nochmal nach... falls ich mich irre. Ich habs aber hier auch schon so gelesen.
Muss heute abend mal ein paar neue Bilder machen. Irgendwas stimmt mit meinem Board immer noch nicht so richtig. ISP geht nicht, aber geproggte chips laufen einwandfrei. Drecksfädelei, sollte mich mal in eagle einarbeiten. (edit: oder besser löten lernen ](*,) )
Laut Datenblatt muss AVcc = Vcc +/- 0.3V sein. VRef muss zwischen 1V und AVcc liegen.
Dabei muss man allerdings beachten, dass VRef eine Eingangsimpedanz von 32kOhm hat. Einen Spannungsteiler muss dann dann entsprechend auslegen. Ich habe bei mir 5.1k und 4.7 kOhm genommen.
AVcc ist mit 47uH und 100nF Kondensator von Vcc entkoppelt (sonst sind die Bilder _richtig_ schlecht). VRef liegt auf 2.2Volt. Dementsprechend liefert die Kamera etwas mehr als 2Vpp oder hat einen Offset beim Schwarzwert.
Definiere "richtig schlecht" Evtl kenne ich das Problem auch und würde es gern lösen :D
Das Bild bekommt dann ein hässliches Moirée (bei 144 kHz ADCClock, prescaler = 128). Ich nehmen mal an, dass das Taktsignal der XCLK für das Pixelaustakten den ADC beeinflusst. Digital Input Disable ist für den ADC gesetzt.
Bei 288 kHz (die ich jetzt verwende, prescaler = 64) gibt es ein sichtbares aber noch nicht störendes Streifenmuster im Bild. Das liegt aber daran, dass der Takt 44% über dem Grenzwert liegt. Laut Datenblatt kann man bei reduzierter Auflösung den ADC schneller takten, aber ich schätze 44% mehr sind ein Hauch zu viel :wink: . Im Moment stört mich das aber nicht weiter.
"edit: oder besser löten lernen"
ich lasse meine boards im auftrag fertigmachen.
es gibt menschen die haben das drauf mit den platinenenlöten und haben auch das entsprechende werkzeug dazu. eine anschaffung des werkzeuges ist zu teuer und das können fehlt dazu.
wer beides nur halb kann, bekommt nur fehler in sein system und kann darüber auch nur mutmassungen anstellen wo der fehler liegt.
es sollten einige schon froh sein, den avr zu verstehen, ich meine hier das datenblatt. dieses datenblatt sollte derjenige mal einpaar tage lang studieren dann kommen nicht so viele fehler rein und vref-intern usw wird dann nicht mehr verwechselt.
ein einfaches oszi sollte auf keinen fall bei uns robby-avr-hobbysten fehlen.
und da sparen sehr viele und haben keins.
Castle
super_castle, wo lässt Du denn die Platinen fertigen (und zu welchem Preis).
Löten ist normalerweise kein Problem, nur hat die Fädelei manchmal ihre Macken, die Boards sind dann halt empfindlicher als eine "richtige" Platine.
Vielleicht ist nicht jeder des Englischen so mächtig, dass er/sie ein Datenblatt auf Anhieb immer richtig versteht. Da sollten die "Kenner" den anderen eben weiter helfen. Dazu ist das Forum doch (auch) da, oder?
HI!
So...
Nachdem ich jetzt mit meinen Registern ausreichend Mensch ärgre dich nicht gespielt habe, bin ich durchaus über die Korrektur glücklich... ;D
Obwohl es noch ein bisschen graue Suppe ist...
Wer genau hinsieht kann sehen, dass ich auch eine Korrektur meiner beiden Kameras auf der Nase habe.
Meine neue Brille.
VLG Tobi
HI!
Ich habe jetzt so lange mit den Registern 'Mensch ärgere dich nicht' gespielt, dass es jetzt garnicht schlecht passt.
Allerdings habe ich das Bild direkt übertragen, und im schnellen RAM-Modus ist das Bild viel zu dunkel. Aber das ist ja kein Problem... :D
VLG Tobi
Sieht doch super aus!
in der Tat ein gutes Ergebnis!
Hi!
Wie gesagt... das ist direkt auf dem COM hinausgeschoben...
wenn ich das Bild ins Ram schiebe, dann ist es wesentlich dunkler!
VLG Tobi
Hier mal zwei Bilder die ich mit dem internen ADC aufgenommen habe (direkt, während des grabbens zum Host übertragen). Wie bereits geschrieben: Der ADC ist hoffnungslos übertaktet, aber es funktioniert trotzdem. Die AVRs sind da schon sehr robust.
Das erste Bild ist ein normal aufgenommenes Bild (288KHz ADC Samplefrequenz, 112400bd Serielle Übertragungsrate).
Das zweite Bild ist ein Dunkelbild der Kamera (Linse zugehalten). Hier kann man den Effekt des Übetaktens gut erkennen: Die quer laufenden Streifen im Bild.
Leider sind die Streifen nicht druch Subtraktion weg zu bekommen, da sie im Bild wandern.
Da mir das mit dem ewigen neu flashen zu müßig ist (SIProg dran, Proggen, SIPRog ab, Kamera dran, Serielles Kabel umstecken, Serielle App starten,....) schreibe ich jetzt erst mal die Hostsoftware fertig, so dass man die Parameter im Betrieb umstellen kann. Dann schiebe ich auch noch ein paar Bilder mit 144 kHz ADC Takt nach.
edit: Der Schwarze Rand unten in den Bildern sind die ungenutzen Zeilen der Kamera.
edit: Bilder wg. platzmangel gelöscht. Bei bedarf bitte PN an mich. Grüße, /Ingo.
"wenn ich das Bild ins Ram schiebe, dann ist es wesentlich dunkler! "
..ist doch klar tobi. ins ram schreiben geht schneller als serielle ausgabe direkt.
fazit: wenn es schneller geht, verblassen die pixel nicht so schnell (die haltezeit ist nur begrenzt vom chip).
ich habe ein spruch für euch und dieses thema:
manche menschen glauben sie werden ein christ, wenn sie in die kirche gehen.
aber man wird ja auch kein auto wenn man in der garage steht.
Castle
Kannst Du mir den Spruch im Zusammenhang mit diesem Thema mal übersetzen, bitte?
Er meint warscheinlich, dass wir nicht selbst zur Camera werden, wenn wir uns mit dem Kopf auf den Tisch legen... O_o
oder so..
Was meinst du damit?
21 seiten glauben die bastler daran, das man mit den registereinstellungen die gameboycam im griff hat.
aber ohne eine hardwareänderung an der gameboycam läuft nichts.
Castle
Versteh' ich immer noch nicht. Die Bilder von der Kamera sind doch OK.
Bei 128x128 Pixeln ohne Shutter kann man kaum mehr erwarten. Was soll man denn an der Kamerahardware ändern?
Dass andere Chips, wie der von der CMUCam, vielleicht bessere Bilder liefern bestreitet ja niemand. Die sind halt nur 50 mal teurer. Von daher finde ich immer noch, dass die GBCam "the best bang for the buck" ist.
Und da hier ja eine gewisse Atmel-Präferenz da ist:
Wem die Bilder zu schlecht sind, sei die Camelia von Atmel ans Herz gelegt. http://www.atmel.com/dyn/products/pr...p?part_id=3141 Die hat dann eine Auflösung, die die größten Nörgler zufrieden stellen sollte. Kostet halt einen Tick mehr (ca. 5000 GBCams, oder 100CMUCams) :) .
Brauch man zwar auch einen externen Shutter, aber OMG, DIE macht Bilder.
HI
Jup eben. Aber das Freut mich, weil ich mit den anderen Einstellungen immer seht knapp war von der Belichtung her... jetzt gehts gut!
Spielst du mit deinem Spruch auf die CMU-Cam an?
VLG Tobi
Hier ein update für 144kHz (rest ist gleich). Wichtig ist auch, dass die Kabel zwischen Kamera und ADC so kurz wie möglich sind. Evtl. abgeschirmtes Kabel (Shield nach AGND) nehmen.
Den Grauwert im Dunkelbild bekomme ich zumindest durch setzen von Voffset (O-Register in der GBCam) nicht kleiner.
Da Vref = 0 ist und Z = 10 sollte die Kamera eigentlich auf 0V kalibrieren, aber das scheint nicht so gut zu klappen. Kann sein, dass das erst besser wird , wenn man nicht direkt zum Host überträgt. Tobi, was misst Du denn als Schwarzwert?
edit: Bilder wg. platzmangel gelöscht. Bei bedarf bitte PN an mich. Grüße, /Ingo.
warum klappt das bei euch mit den bildern so schlecht.
meine gameboycam liefert mit einem avr16-16 astreine kontrastreiche und streifenfreie bilder , auch mit übertragung zum pc (bild wird mit purebasic dargestellt).
was macht ihr falsch?
kalte lötstellen, zu lange strippen, funkstörquellen???
Castle
HI!
Ich habe meine Technik jetzt erstmal in den Roboter eingebaut.
Da ist das Kabel auch ein bisschen länger.
Den maximalen Schwarzwert kann ich dir leider nicht sagen...
Aber vllt. kann ich da ein kleines Feature in den GBCViewer einbauen...
(hast du den mal probiert?)
Frage@ogni: Warum übertaktest du den ADC so stark? Nimm dir nen ADC0820 von RS, der ist sauschnell und kostet auch nicht die welt.
RETTET DIE ADCs!
Und das erste bild ist doch absolut super, wenn auch ein Bisschen überbelichtet...
@castle: Mal sehen... Weitere Tests folgen, es war zuerst wichtig für mich, die Sache zum laufen zu bringen.
Gute Nacht... :D
Tobi
Ich wollte das Ganze ebenfalls erst mal Laufen sehen. Deswegen der interne ADC und deswegen die Übertaktung. Natürlich geht das auch mit externem ADC (kommt als nächstes Projekt). Aber irgendwo muss man ja mal anfangen.
super_castle, bekommst Du mit dem internen ADC bessere Bilder? Wenn ja, wie sind denn Deine Einstellungen? Wie lang ist das Kabel zwischen Kamera und ADC? Kannst Du uns mal Bilder zeigen?
Ich würde immer noch gerne wissen, was Du mit Hardwareänderungen an der Kamera meinst.
normale deckenbeleuchtung.
avr16 8mhz.
geproggt mit fastavrbasic und purebasic.
meine daten:
Sub init_cam()
reset_cam()
Regadr = 1
Regvalue = 1
Loadreg_cam()
Regadr = 2
Regvalue = 0
Loadreg_cam()
Regadr = 3
Regvalue = 27
Loadreg_cam()
Regadr = 4
Regvalue = 1
Loadreg_cam()
Regadr = 5
Regvalue = 0
Loadreg_cam()
Regadr = 6
Regvalue = 1
Loadreg_cam()
Regadr = 7
Regvalue = 1
Loadreg_cam()
Regadr = 0
Regvalue = 128
Loadreg_cam()
End Sub
datenleitungen sind ca 14cm lang.
Castle
Also, wenn man mal die reduzierte Größe in Betracht zieht ist das Bild keinen Deut besser als bei Tobi, mir oder irgend jemand anderem. Oder übersehe ich da etwas?
Beleuchtung ist bei den Bildern die ich gerade gepostet habe normales Tageslicht, Kamerakabel 10 cm + 5 cm Fädeldraht auf der Platine.
Was meinst Du denn jetzt mit "an der Kamerahardware ändern"?
edit: reduzierte Auflösung heisst in diesem Fall 128x128 Pixel. Mein Anzeigeprogramm "bläst" das Bild in x und y um Faktor zwei auf.
Register [0..7] =
{0x80, 0x10, 0x01, 0x19, 0x01, 0x00, 0x01, 0x01}
edit2:Vergleiche ich die Bilder, die ich bisher gemacht habe, zeigt sich, dass die Kamera bei Halogenbeleuchtung sehr schnell überbelichtet. Bei Tageslicht (hier ist es bewölkt), sehen die Bilder einfach besser aus. Grund ist mit hoher Wahrscheinlichkeit der fehlende IR Filter. Vielleicht find ich in der Grabbelkiste beim Fotoladen ja gleich etwas.
darum... ihr macht soviel daher, dann klappt dieses nicht, dann klappt da nichts...
ich mache die normalen routinen ohne andere aufstände und klappt super. für meine auswertung genial.
auch die automatisch belichtungsanpassung funktioniert.
natürlich in purebasic geproggt.
man sollte auch das darstellungsfenster selber proggen, macht mehr her in dieser gameboycam-aktion
ich habe dieses javaviewfenster auch mal benutzt, ist nichts....
Castle
Hi!
@castle:
Könntest du mir erklären, wie du die Belichtung automatisch anpasst?
Ich kann jetzt allerdings ein Bild so schnell aufnehmen, dass ich eine Belichtungsmessung dürchführen könnte. ich weis allerdings noch nciht wie...
Wie wertest du das Bild aus?
Ich habe auch meine Grundroutinen genommen, und nur die Registereinstellungen geändert. Jetzt funktioniert die Sache...
VLG Tobi
Das javaview fenster "ist nichts", weil....
Das solltest Du uns schon erklären.
(Frei nach dem Motto: "Lieber eine starke Behauptung als ein schwaches Argument.")
Was ist denn nun mit Kamerahardware ändern?