-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 29

Thema: GameBoy-Cam mit RN-Control

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2005
    Ort
    Stuttgart
    Beiträge
    260

    GameBoy-Cam mit RN-Control

    Anzeige

    Hio. Also ich habe mir jetzt eine GameBoy-Kamera zukommen lassen um die als Einsteigskamera für meinen Roboter zu verwenden. Ich weiß das es hier im Forum schon eine längere Diskussion zum Thema gab. Allerdings waren die verwendeten µC's immer C-Controlls.
    Jetzt kurz zu dem Sinn dieses Themas: Ich habe eigentlich vor das ganze (fast) alleine zu konstruieren. Allerdings habe ich noch nicht so viel Erfahrung. Und mein teures RN-Controll will ich auch nicht gleich nach den ersten paar Tagen schrotten, das ist klar . Deswegen schreibe ich jetzt hier wie und wo ich was anschließe und wie meine Software dann später aussehen wird. Ihr müsst (könnt) mir dann schreiben ob das so okay ist. Das ist alles! Danke für euer Verständnis. Wenn das ganze dann am Schluss läuft schreib ich auch sicher ein kleines Tutorial welches die Verwendung der GB-Cam zusammen mit RN-Controll erläutert.
    Ich habe mich in das ganze u. a. mit dem GB-Tutorial von http://www.destroy-yourself.de/julia.../amr/gbcam.htm eingearbeitet. Da sind die ganzen Ausgänge der Kamera beschrieben. Insgesamt sind das neun. Einer davon bekommt +5V ein anderer Masse (GND). Die kann ich ja jetzt beliebig bei einem der Ports die 5V/GND liefern reinstecken, oder? Ich hab mal nachgemessen. Bei mir liegen nicht ganz 5V an, sondern 4,85V oder so... (Ich denke das ist normal). Alle anderen Anschlüsse würde ich für den Anfang einfachheitshalber in Port A mit der Steckklemme reinstecken....
    Kurze Zwischenfrage: Muss ich da dann irgendwas beachten damit ich den µC nicht schrotte?? Ein kaputter Port A wäre nicht so fein.
    Dann wäre das „mechanische“ getan. D. h. ich kann jetzt loslegen mit dem Programmieren, oder? Muss ich beim Programmieren was beachten. Kann man auch was schrotten, wenn man irgendwo nen kleinen Bug drin hat? Ich denke mal nicht.

    Jetzt noch ein bisschen theoretisches zum Programmieren. Ich weiß das man immer einen Puls auf die Leitung Xck (die Taktleitung ) legen muss damit irgendetwas anderes übertragen wird. Frage: Wie lange muss der Puls sein? Würde es reichen wenn ich z. B. so Programmieren würde (angenommen Xck wäre an PA0 angeschlossen):
    Code:
    DDRA |= (1 << PA0);
    // High,
    PORTA |= (1 << PA0);
    // Hier kommt dann, dass was man übertragen möchte
    // dann sofort wieder low
    PORTA &= ~(1 << PA0);
    Das wäre dann aber ein ziemlich kurzer Puls. Oder sollte ich da eine Pause einlegen? Und wenn ja wie lange? (Mein µC taktet mit 16MHz.). Wenn man dann Programmieren nichts irgendwie schrotten kann versuch ich dann mein Glück alleine. Wenn die Cam dann läuft poste ich das dann natürlich hier.

    Grüße
    Lutz

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.06.2004
    Ort
    Bad Schussenried in Oberschwaben
    Alter
    28
    Beiträge
    1.461
    Hi!

    Bist du dir da auch GGGAAANNNNZZZZZZ sicher, dass das alles C-Controlls waren?
    Kann hierfür nur AVRs empfehlen, die sind um einiges schneller...

    Nun, wenn du den PortA schrotten solltest(Das haben wir alle schon durchgemacht... ;D) Kannst du im RN-Controll den AVR wechseln, und direkt weiterarbeiten.

    Zur Spannung der GBC: 4,8 sind glaub ich noch OK, aber ab so ca. 4,5 wirds kritisch.

    Naja, VCC und GND der Cam, und man braucht einen ADC-Eingang und einen digitalen Eingang.

    Eine hale Periode des Takts muss glaub ich min. 2µs lang sein, auf jeden Fall darf der Takt 500kHz nicht überschreiten.

    Wie dass mit den Timings ist, würde ich mich komplett an die Diagramme im Datasheet halten und ein Bisschen damit spielen.

    Viel Glück!

    VLG Tobi
    http://www.tobias-schlegel.de
    "An AVR can solve (almost) every problem" - ts

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    hallo luma, ich habe ein programm aus der winavr-c-scene.
    habe es für mich funtionsfähig gemacht.
    schreibe mir ein mail: pebisoft@arcor.de wenn du es als hilfe haben möchtest.
    mfg pebisoft

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2005
    Ort
    Stuttgart
    Beiträge
    260
    Hauptsache ich kann von der programmiertechnischen Seite nichts schrotten, oder??? Das ist mir am wichtigsten...

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    05.05.2005
    Ort
    ZH-Winterthur
    Beiträge
    99
    Ich glaube ich war bis jetzt der einzige der die Cam mit ner C-Control angesteuert hat. Alle anderen Versionen sind mit avr's aufgebaut.

    Der Tackt darf 500kHz micht übersteigen.

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2005
    Ort
    Stuttgart
    Beiträge
    260
    Was ist wenn ich den Takt überschreite? Geht dann was kaputt?

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.06.2004
    Ort
    Bad Schussenried in Oberschwaben
    Alter
    28
    Beiträge
    1.461
    Hi!

    Nein. Dann kommt nur die Cam nciht mit, und du bekommst Datenmüll.
    Die Cam kann man fast nicht kaputt machen. (Halt keine 6V an den AD-Ausgang und so... Der sollte hochohmig sein.)

    VLG Tobi
    http://www.tobias-schlegel.de
    "An AVR can solve (almost) every problem" - ts

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2005
    Ort
    Stuttgart
    Beiträge
    260
    (Halt keine 6V an den AD-Ausgang und so... Der sollte hochohmig sein.)
    Das kapier ich jetzt nicht ganz... Ich denke du meinst den AD-Ausgang des AVR. Klar der darf nicht über 5V und nehme mal an die Cam liefert auch nicht mehr. Aber was heist bitte hochohmig?

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.06.2004
    Ort
    Bad Schussenried in Oberschwaben
    Alter
    28
    Beiträge
    1.461
    Hi!

    Nein, die Cam hat einen Analog-Ausgang. Den solltest du direkt mit einem AD-Eingang des AVRs verbinden.
    Hochohmig ist einfach... hm. hochomig. Also ein ein sehr hoher Widerstand.

    VLG Tobi
    http://www.tobias-schlegel.de
    "An AVR can solve (almost) every problem" - ts

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2005
    Ort
    Stuttgart
    Beiträge
    260
    Hio. Jaaa ich habs geschaft nen (und nicht nur eins ) Bild mit der Gamelboy-Kamera zu schießen. Saß gestern noch ein paar (viele) Stunden vorm Rechner und hab dann ganz spät in der Nacht die ersten Bilder geschossen. Grauenhaft allerdings ist die Empfindlichkeit der Kamera, was hier ja schon besprochen wurde. Da muss ich noch tuenen. Sonst ist alles perfekt. Keine komischen Streifen oder sonst was im Bild. Nur ein Problem habe ich noch (und das hat mich einige Nerven gekostet). Und zwar war mir das direkte Übertragen jedes einzelnen Pixels (also z. B. Pixel x,y lesen durch den AD-Wandler laufen lassen und dann via USART an PC schicken) viel zu langsam. Bei mir dauert das bei 38400 Baud etwa 4 Sekunden. Dann habe ich gedacht das ich ein uint8_t-Array mit genügend Speicherplatz für alle Bildpunkte erstelle und das dann am Stück schicke... Das habe ich gemacht und hin und her Programmiert und dann ging nichts mehr. Mein µC (so bin ich am Schluss draufgekommen) ist gar nicht erst richtig gestartet. Vor lauter *******-Flüchen habe ich dann auch noch fälschlicherweise den ISP-Programmer in den PORT-D gesteckt. (Klar, dass es in diesem Fall dann auch Fehler gab). Der ISP-Programmer ist ganz sicher nicht kaputt, ich kann ihn immernoch verwenden ohne das Fehler beim Übertragen eines Programms entstehen. Wie bekomme ich heraus ob mein armer PORT-D jetzt kaputt ist oder nicht? Ist dann da alles kaputt oder wie ist das? Nunja und irgendwan habe ich dann KamAVR beschuldigt und gedacht das Programm macht nur noch Schrott. Bin dann auf ProgrammersNotepad umgestiegen und fand dann nach einigen stressigen Momenten im Output folgende Zeile:
    Data: ...(768.0% Full)...
    Dann war mir klar was los war. Mein SRAM ist ja nur 2kB groß... Viel zu klein um so ein riesiges Array zu speichern. Naja am Schluss ging dann wieder alles. Was mit dem Port-D los ist weiß ich halt noch nicht.
    Im Anhang sind 2 Bilder. Die sind von der Qualität noch nicht so optimal. Da muss ich wohl an den Einstellungen der Cam noch ein wenig rumspielen...

    Jetzt noch eine Frage nebenbei: Die höchste Baudrateneinstellungen die im Datenblatt des Atmega32 zu finden ist (Seite 166) ist 1M Baud. Ziemlich schnell. Nur kann ich, wenn ich diese Baudrateneinstellung verwende, nichts mit dem BrayTerminal empfangen (bei HypterTerminal lässt sich das gar nicht erst einstellen)... Auch das Javaprogramm Camera Image Viewer lässt sich da nicht ändern. Es gibt ne Exception wenn ich die Baudrate im Code auf 1M Baud setze. Für alle Nichtjavakenner. Ne Exception ist ganz einfach ein Fehler. Die sagt mir das die Baudrate zu hoch ist. Mit welcher Baudrate kann man den maximal mit nem PC kommunizieren. Das höchste was ich rausholen konnte waren die genannten 38400 Baud. Ein bisschen wenig denke ich. Was sagt ihr?

    Grüße
    Lutz


    EDIT: Ich posten später noch den Code. Aber mein Hund sah schon auf dem Foto nicht so erfreut aus. Ich glaub der muss mal um die Ecke...
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken bild_2.jpg   bild_1.jpg  

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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