- 3D-Druck Einstieg und Tipps         
Seite 30 von 51 ErsteErste ... 20282930313240 ... LetzteLetzte
Ergebnis 291 bis 300 von 503

Thema: Gameboy Camera, Probleme bei dem Auslesen des Bildes

  1. #291
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.11.2004
    Beiträge
    263
    Anzeige

    Praxistest und DIY Projekte
    So, hier ist dann mein Plan und mein Programm.

    Der Plan passt nicht ganz zu dem Programm. Das liegt daran, das ich meine Schaltung im Moment noch auf nem Steckbrett habe und noch nicht geätzt habe.

    Wer aber das Programm mit dem Schaltplan nutzen will, muß nur die Pins des A/D-Wandlers und die Pins der Cam anpassen. Sonst passt alles.

    Code:
    'Gameboy Kamera
    
    $regfile = "m8515.dat"                                      'ATmega8515-Deklarationen
    $crystal = 4000000                                          'Quarz: 4 MHz
    $baud = 9600
    
    Declare Sub Register_laden(addr As Byte , Wert As Byte)
    
    Dim Regwert(8) As Byte
    Dim Regaddr(8) As Byte
    
    Dim I As Byte
    
    Dim Bild(16384) As Xram Byte
    Dim Z As Word
    
    'Register festlegen:
    Regaddr(1) = 1
    Regaddr(2) = 2
    Regaddr(3) = 3
    Regaddr(4) = 4
    Regaddr(5) = 5
    Regaddr(6) = 6
    Regaddr(7) = 7
    Regaddr(8) = 0
    
    Regwert(1) = 0
    Regwert(2) = 0
    Regwert(3) = 15
    Regwert(4) = 0
    Regwert(5) = 0
    Regwert(6) = 0
    Regwert(7) = 7
    Regwert(8) = 0
    
    Main:
    
    'C1 und C0 laden:
    I = 0
    Do
       If Ucsra.rxc = 1 Then
          Regwert(2) = Udr
          I = 255
       End If
    Loop Until I <> 0
    I = 0
    Do
       If Ucsra.rxc = 1 Then
          Regwert(3) = Udr
          I = 255
       End If
    Loop Until I <> 0
    Wait 5
    
    
    Config Scl = Portb.2
    Config Sda = Portb.3
    
    'A/D-Wandler einstellen:
    I2cinit
    I2cstart
    I2cwbyte &B10010000
    I2cwbyte &B00000000
    I2cstop
    
    
    Config Portb.0 = Output                                     'XCK
    Config Portb.1 = Output                                     'Reset
    Config Portb.4 = Output                                     'Sin
    Config Portd.3 = Input                                      'read
    Config Portd.4 = Output                                     'Load
    Config Portd.5 = Output                                     'Start
    
    Config Portd.2 = Output
    Portd.2 = 1
    
    Xckpin Alias Portb.0
    Resetpin Alias Portb.1
    Sinpin Alias Portb.4
    Loadpin Alias Portd.4
    Startpin Alias Portd.5
    Readpin Alias Pind.3
    
    Resetpin = 1                                                'Reset High
    Xckpin = 1                                                  'XCK High
    Loadpin = 0                                                 'Load Low
    Startpin = 0                                                'Start Low
    
    'Reset:
    
    Waitus 5
       Xckpin = 0
    Waitus 2
       Resetpin = 0
    Waitus 3
       Xckpin = 1
    Waitus 2
       Resetpin = 1
    Waitus 3
       Xckpin = 0
    Waitus 2
    
    'Register Laden
    Call Register_laden(regaddr(1) , Regwert(1))
    Call Register_laden(regaddr(2) , Regwert(2))
    Call Register_laden(regaddr(3) , Regwert(3))
    Call Register_laden(regaddr(4) , Regwert(4))
    Call Register_laden(regaddr(5) , Regwert(5))
    Call Register_laden(regaddr(6) , Regwert(6))
    Call Register_laden(regaddr(7) , Regwert(7))
    Call Register_laden(regaddr(8) , Regwert(8))
    
    'Start:
    Startpin = 1
    Waitus 3
    Xckpin = 1
    Waitus 2
    Startpin = 0
    Waitus 3
    Xckpin = 0
    Waitus 4
    
    'Warten Bis Bild Fertig:
    While Readpin = 0
       Xckpin = 1
       Waitus 4
       Xckpin = 0
       Waitus 4
    Wend
    
    Z = 0
    I2cstart
    I2cwbyte &B10010001
    I2crbyte I , 8
       While Readpin = 1
          Xckpin = 1
          Waitus 1
          Incr Z
          I2crbyte I , 8
          Bild(z) = I
          Xckpin = 0
          Waitus 1
       Wend
       I2crbyte I , 9
       Incr Z
       Bild(z) = I
    I2cstop
    Portd.2 = 0
    
    For Z = 1 To 16384
       Printbin Bild(z);
    Next
    
    I = 0
    Portd.2 = 1
    Do
       If Ucsra.rxc = 1 Then
          I = Udr
       End If
    Loop Until I = 1
    
    Goto Main
    
    Do
    Loop
    
    End                                                         'end program
    
    Sub Register_laden(addr As Byte , Wert As Byte)
       'Registeraddr übertragen:
       For I = 2 To 0 Step -1
          Sinpin = Addr.i
          Waitus 3
          Xckpin = 1
          Waitus 5
          Xckpin = 0
          Waitus 2
       Next
       'Registerwert übertragen:
       For I = 7 To 0 Step -1
          Sinpin = Wert.i
          Waitus 3
          Xckpin = 1
          Waitus 2
          If I = 0 Then
             Loadpin = 1
          End If
          Waitus 3
          Xckpin = 0
          Waitus 2
          Loadpin = 0
       Next
       Sinpin = 0
    End Sub
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken board_630.png  

  2. #292
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.09.2004
    Ort
    In der Nähe von Esslingen am Neckar
    Beiträge
    706
    Hi Roboter,
    danke dass du den Schaltplan und deinen Code reingestellt hast!!
    Ich verstehe Tobi schon dass er seinen Schaltplan nicht reinstellt sonst klaut jemand noch sein Jufo Projekt!!
    Gruß Michi

  3. #293
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    hallo, meine bilder von der gameboycam sind noch nicht verwerdbar für den robby für die selbstständige reaktion. habe aber trotzdem eine v0-messung durch geführt für bestimmte anzufahrende flächen. der AVR ist zu langsam für die auswertung. die helligkeitswertenkontrolle für ein vernünftiges bild ist zu krass, man kann garnictt so schnell reagieren, wie sich die kontrastwerte der game-cam ändern, es müssen dauernd neue messregeln reingeschmissen werden. ich habe noch kein bild zur kontrolle, abe die messwerte schwanken wie verrückt . als alternative könnte die c-controlII in frage kommen, die ist aber zu teuer mit dem weiteren zubehör, der robby hat zuviel pause. eine weitere möglich wäre einen teil-pc auf dem robby zu setzen ist nicht so teuer.
    ein pda zur auswertung schlägt immerhin mit mindestens 250 euro zu buche. also bleibt die gameboy-cam nur als anschauungsobjekt für bilder zur verfügung.
    da ich mich damit nicht zu frieden gab, habe ich mir die cmucam 2 angeschafft.
    ich spare eine weitere platine, einen pc auf dem robby oder einen pda.
    habe eine farbliche visuelle kontrolle auf dem pc im visualbasic-fenster (life)..
    die cam hat einen festwertspeicher für die abgelegten bilder, die einmal die cam bearbeiten kann zur objektkontrolle (robby bekommt ein signal, wenn ein bestimmter farbwert erkannt wird, bzw in das bild hineinkommt und aus dem bild verschwindet), man weiss denn genau aus welcher richtung der farbpunkt kommt und der robby kann nach diesem signal links rechts vorwärts oder rückwärts fahren. weiterhin kann ich aus neugierde dann auch die bilddaten als digitale werte über die serielle schnittstelle übertragen zum visual-basic-programm. die experiemente mit der cmucam 2 sind erste sahne, freu..freu. ich kann mich jetzt auf die experiementielle auswertung konzentrieren im zusammenhang mit der robbysteuerung.
    das ansprechen der camera mit visualbasic ist wunderbar, obwohl eine visuelle steuerung in java dabei ist, die auch auf anhieb lief und ich sogar die java-programme selber ändern kann und neu compilieren für die eigenen bedürfnisse. werde aber trotzdem auf dem visualbasic-trip bleiben, weil es darauf wunderbar geht.
    werde aber weiterhin die experiemente der gameboy-cam weitermachen.
    schwerpunkt ist jetzt aber die cmucam2 im zusammenhang mit dem robby.
    mfg pebisoft

  4. #294
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.06.2004
    Ort
    Bad Schussenried in Oberschwaben
    Alter
    34
    Beiträge
    1.461
    HI!

    @roboter:
    Kannst du mal ein Bild posten? Hast du Staub auf der Linse?

    @Michi:
    Hast Recht! Genau deshalb!

    @pebisoft:
    Naja, die Sache mit der Belichtung Kontrast usw. ist schon schwer, habe da aber eine tolle Idee... (wg. JuFo kann ich die euch leider auch erst in nem 3/4 Jahr verzapfen...)
    We'll see...

    Habe vor, das gesamte JuFo Projekt nach JuFo auf meine Homepage zu stellen.

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

  5. #295
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.11.2004
    Beiträge
    263
    Zitat Zitat von tobimc
    HI!
    Naja, die Sache mit der Belichtung Kontrast usw. ist schon schwer, habe da aber eine tolle Idee...
    Haben wir da vielleicht dir gleiche Idee?

  6. #296
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.06.2004
    Ort
    Bad Schussenried in Oberschwaben
    Alter
    34
    Beiträge
    1.461
    Hi roboter!

    Hm... kommt drauf an. Hat deine Idee mit speziellen Siliziummischungen zu tun?

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

  7. #297
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    hallo tobi, zeig mir mal wie die cam funktioniert mit direktübertragung ohne ram für die 16k. würde mich freuen.
    mfg pebisoft
    ps: die gamecam wird knapp!!!!. bei Ebay gib es noch eine für 9,99 sofortkauf.
    hast du die genehmigung, die ganzen jufo-projekte zu veröffentlichen.
    ich vermute, das auch einige firmen an der sache zum kauf interessiert sind.
    viele firmen schicken ihre adju als interessenten und kupfern das konzept, ohne das du es sofort merken tust. erst nach einer gewissen zeit sieht du auf dem markt Projekte , wo du dann sagt:" die kenn ich doch, das habe ich auch gemacht". teilweise sind die leute, die die auswertung betreiben auch bei bestimmten firmen ansässig.

  8. #298
    Benutzer Stammmitglied
    Registriert seit
    05.05.2005
    Ort
    ZH-Winterthur
    Beiträge
    99
    Ich versuche gerade eine GB-Cam mit einer C-Control auszulesen. Dies sollte teoretisch kein Problem sein da die Cam keinen wirklichen mindesttakt hat. Jedoch scheitere ich schon am read signal. Das signal geht sechs täkte nach reset wieder auf HI.

    Das CCBasic Programm:
    Code:
    define start port[16]
    define sin port[15]
    define load port[14]
    define rst port[13]
    define xck port[12]
    define reade port[11]
    define pixel ad[1]
    
    define addr byte
    define wert byte
    
    define x byte
    
    #reset
    rst = 0
    xck = 0
    rst = 0
    xck = 1
    rst = 1
    xck = 0
    
    #Register
    addr = 0
    wert = 0 
    gosub reg_write
    addr = 1
    wert = 0
    gosub reg_write
    addr = 2
    wert = 15
    gosub reg_write
    addr = 3
    wert = 0
    gosub reg_write
    addr = 4
    wert = 0
    gosub reg_write
    addr = 5
    wert = 0
    gosub reg_write
    addr = 6
    wert = 7
    gosub reg_write
    addr = 7
    wert = 0
    gosub reg_write
    goto start
    
    #reg_write
    'send addr'
    sin = &H30 - ((addr AND &H04)<>0)
    xck = 1
    xck = 0
    sin = &H30 - ((addr AND &H02)<>0)
    xck = 1
    xck = 0
    sin = &H30 - ((addr AND &H01)<>0)
    xck = 1
    xck = 0
    'send wert'
    sin = &H30 - ((wert AND &H80)<>0)
    xck = 1
    xck = 0
    sin = &H30 - ((wert AND &H40)<>0)
    xck = 1
    xck = 0
    sin = &H30 - ((wert AND &H20)<>0)
    xck = 1
    xck = 0
    sin = &H30 - ((wert AND &H10)<>0)
    xck = 1
    xck = 0
    sin = &H30 - ((wert AND &H08)<>0)
    xck = 1
    xck = 0
    sin = &H30 - ((wert AND &H04)<>0)
    xck = 1
    xck = 0
    sin = &H30 - ((wert AND &H02)<>0)
    xck = 1
    xck = 0
    sin = &H30 - ((wert AND &H01)<>0)
    xck = 1
    load = 1
    xck = 0
    load = 0
    return
    
    #start
    start = 1
    xck = 1
    start = 0
    xck = 0
    
    #wait
    xck = 1
    if reade = -1 then goto scan
    xck = 0
    goto wait
    
    #scan
    xck = 1
    print pixel
    xck = 0
    if reade = 0 then end
    goto scan
    Das Problehm
    Code:
    define start port[16]
    define sin port[15]
    define load port[14]
    define rst port[13]
    define xck port[12]
    define reade port[11]
    define pixel ad[1]
    
    define addr byte
    define wert byte
    
    define x byte
    
    #reset
    rst = 0
    xck = 0
    rst = 0
    xck = 1
    rst = 1
    xck = 0         'read geht low wenn er nicht von anfang an low war'
    
    pause 100       'pause um zu messen
    
    xck = 1
    xck = 0
    xck = 1
    xck = 0
    xck = 1         'read geht HI'
    xck = 0
    
    pause 1000      'noch eine pause um zu messen

  9. #299
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    hallo, z80 es geht nur mit der control-II nicht mit der c-control I.
    das basic in der c-control I ist zu langsam. die c-control II wird in c-ähnlichen-code geproggt und die v0 reicht da aus, natürlich ist der interne adc auch da wieder zu langsam.
    mfg pebisoft

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

    Zitat Zitat von pebisoft
    hallo tobi, zeig mir mal wie die cam funktioniert mit direktübertragung ohne ram für die 16k. würde mich freuen.
    Klar, kann ich machen, muss nur etwas Zeit haben... (morgen Französisch Klassenarbeit... )

    Zitat Zitat von pebisoft
    hast du die genehmigung, die ganzen jufo-projekte zu veröffentlichen.
    Wie meinst du das?

    viele firmen schicken ihre adju als interessenten und kupfern das konzept, ohne das du es sofort merken tust.
    Tjaja... C'est la vie. Da kann man nix machen.
    Aber daran kann man gut sehen, warum ich das so geheim halte...

    @Z80:
    Leider kenne ich mich mit der CControl nicht so aus...
    Aber wie meinst du das nach Reset auf high?

    Viele liebe Grüße,
    Tobi
    http://www.tobias-schlegel.de
    "An AVR can solve (almost) every problem" - ts

Seite 30 von 51 ErsteErste ... 20282930313240 ... LetzteLetzte

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad