- 3D-Druck Einstieg und Tipps         
Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 47

Thema: [Dringend!] Kamera auslesen

  1. #11
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    31.07.2005
    Beiträge
    224
    Anzeige

    E-Bike
    Jo hab ihm ne Mail geschrieben (Dem Besitzer des Shops von dem ich die Cam hab).

    Also du denkst dass kein weiterer Ram nötig wäre? Weil damals bei den Threads zur Gameboy Cam gab es so massig viele Beiträge ihn denen die Rede von zu wenig Ram wäre, ist ja auch nur 4Kb beim M128.
    Soll ich also den XRAM ganz weglassen?

    Und ich hab das jetzt so verstanden:
    Ein kurzer Impuls, vllt. 5µs lang, bei unter 0,3V beginnt die Zeile, dann kommen Schwarzschultern die ich übergehen kann. Dann werden die Daten gesendet, 0,3V sind schwarz, 1V sind weiß. Irgendwann nach ca. 60µs ist die Datensendezeit vorbei, das signalisiert mir ein wieder ca. 5µs langer Sync der schon der nächsten Zeile angehört, also folgen direkt auf diesen Sync wieder Daten. Irgendwann kommt ein längerer Sync (wie lang?) der Signalisiert dass das nächste Halbbild übertragen wird. Jetzt mal ne Skizze dazu damit ich nicht falsch verstehe was ein Halbbild ist:

    Erst werden alle blauen Zeilen übertragen, dann alle Roten (Oder umgekehrt, geht ja nur ums Prinzip)?
    ist das soweit richtig?
    Geändert von Elektronik303 (02.09.2013 um 21:50 Uhr)

  2. #12
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Jepp, du hast es.

    Es wird dir vermutlich nicht gelingen zwischen Sync und Schwarzschulter zu unterscheiden, interpretiere einfach beides zusammen als Sync. Der Seitensync ist bei mir über 40 mal länger als der Zeilensync.

    Ob du wirklich mehr Speicher benötigst wirst du selbst merken. Ich bin auch nur ein Cam-Newbee und hatte bescheidene 32*32 Bildchen gemacht, verteilt auf mehrere Halbbilder. Aber dann waren für mich andere Dinge interessant und ich habe die Cam eingelagert. Vielleicht gelingt dir ja mehr. Ich mache vermutlich selbst nochmal irgendwann einen neuen Anlauf...

    Noch die Methode für höhere x-Auflösungen: Nach dem Zeilensync wartet man kurz und liest dann zweimal den ADC aus. Erster Wert ist Schrott, der Zweite ist gültig. So kann man zwar nur einen Punkt pro Zeile auslesen, aber die Auflösung ist dann der maximale Zählwert pro Zeile:

    delay=123; // 123. Pixel einlesen
    while(ADCH>20); // warten auf Anfang Syncimpuls
    while(ADCH<30); // warten auf Ende Syncimpuls
    while(delay--); // warten bis gewünschtes Pixel kommt
    *speicherzeiger=ADCH; // Schrott wegwerfen
    *speicherzeiger++=ADCH; // 123. Pixel einlesen

    Den maximalen Wert ermittelt man indem man delay solange vergrößert bis der eingelesene Wert kleiner 0,3V ist, also der nächste Sync beginnt. Das hängt dann vom Takt des Kontrollers ab.

    Viel Erfolg

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #13
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    31.07.2005
    Beiträge
    224
    Ok, dann bin ich schon ein großes Stück weiter.

    Und ich schlussfolgere jetzt einfach mal: Ich brauche kein LM1881, ich schliese die Cam direkt an ADC an, richtig?

    Als ADC benutz ich dann den ADC0820, wie ich den anschliese kommt später, das blick ich bisher nämlich auch noch nich soganz, aber das ist was anderes.

    Ich kann das Signal der Cam auch einfach (übern Cinch auf der einen Seite mit GND) mit dem Fernseher verbinden?

    Mit dem Ram werd ich mal gucken, dazu auch noch ne Frage, macht es nen Geschwindigkeitsunterschied ob ich 32kb XRAM hab oder 64kb? Geht das dann deutlich langsamer drauf zuzugreifen oder ist das scheißegal wie viel XRAM ich nehme von dem Speed her?


    Wenn die Cam da ist werde ich versuchen sie so zu programmieren dass sie auf einer Linie fahren kann, ich bin gespannt!

  4. #14
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Ja, die Cam direkt am ADC, eventuell noch ein Lastwiderstand gegen GND. (Bei mir waren es 10K) )Ich hatte parallel noch eine Cinch-Buchse angeschlossen und darüber ein Kontrollbild zum TV gesendet.

    Warum ein externer ADC? Für den Anfang tuts der im Mega128 auch.

    Mein RP6 hat mit 2KB-SRam die Linie erkannt, ich glaube nicht das mehr Speicher Vorteile bringt. Aber das hatte ich wohl schon erwähnt...

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #15
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    31.07.2005
    Beiträge
    224
    Ja, erstmal kann mans ja auch so probieren, ich werd sehen sobald alles aufgebaut ist. Bis dahin erstmal vielen vielen Dank für deine Hilfe!

  6. #16
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    31.07.2005
    Beiträge
    224

    RE:

    So, ich hab was schönes gefunden, den PCF8591. Ein I²C IC mit 4 Channel ADC und 1 Channel DAC.
    Im Datenblatt (http://www.selectronic.fr/includes_s...ps/PCF8591.pdf) steht dass die Wandlungsgeschwindigkeit vom Quarz abhängt, der kann maximal 1,25Mhz haben (So wie ich das in der Tabelle auf Seite 17 verstanden habe). Wie schnell führt der ADC dann eine Umwandlung durch (in µs)? Bzw. wie lange braucht es dass mein Mega128 den Wert dann auch weiß (Also einschließlich I²C Zeit)? So könnte man abwegen ob es sich lohnen würde den PCF8591 statt dem internen ADC zu nutzen.

    Und auch habe ich noch eine Verständnissfrage zum ADC des AVR's. Im Wiki steht dass eine Geschwindigkeit bis 1000Khz möglich ist. Aber warum nicht mehr? Wenn ich 16Mhz habe, den Prescaler 8 verwende komme ich auf 2000000Hz das entspricht dann schon 2000Khz. Zwar ist es dann nicht sehr genau, aber doch das doppelte von 1000Khz. Warum steht dann im Wiki dass nur 1000Khz möglich sind?

  7. #17
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Beim externen RAM ist es egal wie viel man nimmt, solange man zwischen 512 bytes und 64 kBytes bleibt. Für mehr als 64 K müßte man wohl noch eine extra Bankumschatung nehmen.

    Man kann den ADC takt auch höher als 1 Mhz wählen, aber dann ist mit deutlich größeren Fehlern zu rechnen. Bei 1 MHz ADC takt kann man noch etwa 8 Bit erwarten. Wenn man mehr nimmt, sollte man wenigstens auf einen Eingangswiderstand von unter 5 KOhm achten, denn die Sampling Periode wird ja mit verkürtzt.
    Wenn schon ein externer AD Wandler, dann wohl gleich ein ADS820 oder was ähnliches. Mit etwas Glück sollte man den auch gleich an den Datenbus zum XRAM anschließen können.

  8. #18
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    31.07.2005
    Beiträge
    224
    Ich hab jetzt bei Analog ein gefunden, http://pdf1.alldatasheet.com/datashe...AD/AD7822.html
    mit Parallel Interface, wies funktioniert muss ich noch sehen, ist aber verdammt schnell das Teil, 420ns für eine Umwandlung, das sollte wohl reichen. Sieht das vernünftig und brauchbar aus? Ich kanns ja an jeden beliebigen Port anschliesen oder? Denn PC und PA brauch ich für den XRAM.
    Und geht der AD7822 leicht anzusteuern oder ist das mit Bascom kaum zu schaffen?

  9. #19
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Das Auslesen eines paralleln ADC sollte an jedem port gehen. Es sollte nur ein ganzer Port sein, damit man die 8 Bits auch gleich zusammen hat.
    Die Ansterung solle auch in Bascom gehen, aber um den Wandler voll auszunutzen baucht man wohl Assembler. Soweit ich weiß kann man ja auch in Bascom inline Assembler nutzen um die kleine Einleseschleife zu beschleunigen.

    Als alternativer Wandler wäre auch ein ADS820 möglich, der ist recht gut zu bekommen. Den hatte ich oben eigentlich gemeint.

  10. #20
    Erfahrener Benutzer Roboter-Spezialist Avatar von Thoralf
    Registriert seit
    16.12.2003
    Ort
    Dresden
    Beiträge
    530
    wenn es nur um einen Linienfolger gehen soll, würde ich mir über die RAM-Größe überhaupt keine Gedanken machen. Es genügt, wenn man nur eine Zeile - sagen wir mal - knapp oberhalb der Bildmitte und ein knapp unterhalb der Mitte digitalisiert und abspeichert. Man bildet den Betrag der Differenz der beiden Zeilen und speichert diesen wieder im RAM ab (meinetwegen ab der Adresse der ersten Zeile. Nun sucht man das Maximum in der Differenzzeile. Dessen Adresse ist die Posiotion und damit die Lageabweichung der schwarzen oder weißen Linie.
    Die Digitalisierung würde ich auch mit einem parallelem ADC machen. Damit wäre der µC weitgehendnd entlastet und der RAM-Verbrauch minimal.

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen