- Akku Tests und Balkonkraftwerk Speicher         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Kommunikation ATMega32 <-> CmuCam2 funst nicht !

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.04.2004
    Ort
    München
    Alter
    36
    Beiträge
    288

    Kommunikation ATMega32 <-> CmuCam2 funst nicht !

    Anzeige

    Praxistest und DIY Projekte
    Hi,
    Ich versuche verzweifelt eine vernünftige Verbindung zwischen meinem AtMega32 und meiner CMuCam2 über RS232 aufzubauen.
    Das funst aber nicht ich möchte vom Controler aus der Cmucam sagen dass sie eine OIbjekt von einer best Farbe Verfolgen soll (der Befehl dazu ist "TC 225 255 225 255 225 255").
    Um die Komunikation zu vereinfachen hab ich auf den Pool Mode (der Befehl heißt "PM 1") zurückgegriffen. In diesem Modus sendet die Kammera nur ein einzigen Wert als Rückgabe.
    Als Rückgabe bekommt man zB :
    "ACK
    T 90 80 77 17 85 116 20 45
    :"
    Ich müchte mir von disem Rückgabewert nun die ersten 2 Zahlen nach dem T holen. (das sind die x und die y Koordinate des Farbenschwerpunktes) Dazu habe ich folgendes Programm Entworfen, welches aber leider nicht funktioniert...
    Code:
    $regfile = "m32def.dat"                                     'für den chip
    
    $crystal = 16000000                                         'für einen externen 16 MHz Quarz
    $baud = 9600
    
    Config Serialin = Buffered , Size = 29
    Config Serialout = Buffered , Size = 34
    
    Dim Z1 As String * 1
    Dim Zwert As String * 11 , Werte As String * 11
    Dim Xwert As Byte , Ywert As Byte
    dim Count as Byte
    
    Enable Interrupts 
    
    Print "PM 1"
    
    Zwert = ""
    Count = 0
    Do
       Z1 = Inkey()
       If Z1 = "A" Then
          Do
             Z1 = Inkey()
          Loop Until Z1 = "T"
             Z1 = Inkey()
             Do
                Incr Count
                Z1 = Inkey()
                Zwert = Zwert + Z1
             Loop Until Count >= 6
       Else
          Print "TC 225 255 225 255 225 255" 
          Waitms 100
       End If
    Loop Until Count >= 6
    
    Werte = Mid(zwert , 1 , 2)                                
    Xwert = Val(werte)
    If Xwert < 10 Then
       Werte = Mid(zwert , 3 , 2)
    Else
       Werte = Mid(zwert , 4 , 2)
    End If
    Ywert = Val(werte)
    If Xwert <> 0 then
       Sound portd.7, 2300, 433   'Da beepts dann halt
    End if 
    If Ywert <> 0 then
       Sound portd.7, 2300, 433   'Da beepts dann halt
    End if
    Die Beiden Variablen Xwert und Ywert sollten dann die ersten beiden Zahlen nach dem T enthalten. Da ich aber nie ein Beepen höre geh ich davon aus das er die Werte nicht gescheit bekommt...

    Mach ich das ganze zu Umständlich ?? gibts da vlt was einfacheres ??
    Oder entdeckt jemand da nen Fehler ?
    Ich bräuchte Schnelle Hilfe !! Das muss möglichst bald klappen...

    Vielen Dank schon mal !!

    Gruß Javik

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.05.2004
    Ort
    N Stück rechts von Hamburg
    Alter
    35
    Beiträge
    166
    Ein Tip vom Team Glinde: Benutzt nicht Bascom.
    cu@Erfurt am Samstag

    cht

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.04.2004
    Ort
    München
    Alter
    36
    Beiträge
    288
    Warum denn nich ? was benutzt ihr denn?

    Cu Dann Übermorgen ^^

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    lass dich nicht in die irre führen, arbeite weiter mit bascom. zur zeit weiss ich für dein problem aber keine lösung. ich arbeite mit der vollversion von bascom. in c konnte ich meine Projekte vom küchenbrettroboter nicht so schnell oder garnicht verwirklichen. in Bascom wars wunderbar leicht und alles war nachvollziebar.
    mfg pebisoft

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Hi, Javik
    Nach dem LOOP UNTI Z1 = "T"
    liest du Z1 = INKEY(), diesen wert schaust du aber nie an ??

    mfg robert

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    24.01.2004
    Ort
    z.Zt. Istanbul
    Alter
    69
    Beiträge
    108
    Zitat Zitat von Javik
    Warum denn nich ? was benutzt ihr denn?

    Cu Dann Übermorgen ^^
    Hallo Javic,

    einige Mitglieder des Teams haben mit Bascom schon schlechte Erfahrungen mit der Interruptverwaltung gemacht. Deshalb ist Bascom nicht unbedingt schlecht aber man muss halt wissen was genau ablaeuft .
    Wir benutzen GNU CC / Pony und einige auch Studio 4.
    Bis Samstag

    REB

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.04.2004
    Ort
    München
    Alter
    36
    Beiträge
    288
    @ Picnik: Des Inkey() is da um des Lehrzeichen "rauszuholen"

    Naja, ich hab inzwischen schon ne andere möglichkeit gefunden die super funktioniert (wenn man erst mal versteht was da genau abläuft in dem Buffer wirds leicht...)

    Ich hatte da noch keine Probleme mit den Interrupts. Wo waren da eure ??
    nutzen GNU CC / Pony und einige auch Studio 4.
    Was haben die den für ne Dialekt ? eher Basic oder C++ ??

    Javik

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    hallo, wie setzt man eigentlich die bounding-box, die box, wo die rgb-farben kontrolliert werden vom befehl tc...
    mfg pebisoft

  9. #9
    Gast
    wenn ich mich richtig erinnere vw (virtual window) - für weitere infos rtfm.
    Gruß
    cht

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    bei der farbeingabe über "tc..." brauche ich die farbe vom gegenstand.
    wie ermittle ich mit der cmucam2 die rgbwerte, unter welchen befehl werden die ausgegeben.
    mfg pebisoft

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

12V Akku bauen