-         

Ergebnis 1 bis 9 von 9

Thema: Brauche Hilfe!!!

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    19.09.2007
    Alter
    23
    Beiträge
    15

    Brauche Hilfe!!!

    Anzeige

    Hallo,
    ich versteh nicht warum mein robby bei vogendem Code immer weiter fährt! (Warscheinlich nur ein Blöder anfängerfehler):
    Code:
    SPEED_L=100:SPEED_R=100
    pause 100
    SPEED_L=0:SPEED_R=0
    if TOUCH then goto SEL1  
    
    #SEL1 
    SPEED_L=100:SPEED_R=100
    pause 100
    end
     wer froh wenn mir jemand sagen könnte was ich falsch mache!!
    
    und Danke schon mal im vorraus!

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Könntest du mal den vollständigen Code posten?

    jon
    Nice to be back after two years
    www.roboterfreak.de

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    19.09.2007
    Alter
    23
    Beiträge
    15
    Ja, natürlich:
    define sdio port[1]
    define sclio port[3]
    define strobe port[4]
    define DATALINE port[1]
    define CLOCKLINE port[2]
    define LIGHT_L ad[7]
    define LIGHT_R ad[6]
    define SYS_VOLTS ad[3]
    define CHRG_CURRENT ad[2]
    define SYS_CURRENT ad[1]
    define MIC ad[4]
    define TOUCH ad[5]

    define SPEED_L da[1]
    define SPEED_R da[2]
    define REV_L port[6]
    define REV_R port[5]

    define LBYTE byte[1]
    define HBYTE byte[2]
    define SUBCMD byte[3]

    define EXTPORT byte[4]
    define LED1_F bit[29]
    define LED2_F bit[30]
    define LED3_F bit[31]
    define LED4_F bit[32]
    define SYSTEM_STATUS byte[5]
    define ACSL_F bit[33]
    define ACSR_F bit[34]
    define IR_F bit[35]

    define TIM byte[6]
    define PGM byte[7]

    define PLM_SLOW &H01C4
    define SYSTEM &H01C9
    define COMNAV &H0154

    define REVR &H0101
    define REVL &H0106
    define FWDR &H010B
    define FWDL &H0110
    define ROTR &H0115
    define ROTL &H0119
    define REV &H011D
    define FWD &H0121
    define COMNAV_STATUS &H0125
    define ACS_LO &H01E1
    define ACS_HI &H01E9
    define ACS_MAX &H01F1
    define SEND_TLM &H014A
    define SEND_SPEEDR &H0134
    define SEND_SPEEDL &H013A
    define SEND_SYSSTAT &H0144






    gosub SUBSYS_PWR_ON
    beep 368,10,0ause 50

    gosub NO_ACS_INT:beep 368,10,0:SYS ACS_HI

    REV_L=on:REV_R=on:SYS PLM_SLOW

    SPEED_L=100:SPEED_R=100
    pause 100
    SPEED_L=0:SPEED_R=0
    if TOUCH then goto SEL1

    #SEL1
    SPEED_L=100:SPEED_R=100
    pause 100
    end


    #LED1ON
    LED1_F=on:goto EXTPORT_WRITE
    #LED1OFF
    LED1_F=off :goto EXTPORT_WRITE
    #LED2ON
    LED2_F=on:goto EXTPORT_WRITE
    #LED2OFF
    LED2_F=off:goto EXTPORT_WRITE
    #LED3ON
    LED3_F=on:goto EXTPORT_WRITE
    #LED3OFF
    LED3_F=off:goto EXTPORT_WRITE
    #LED4ON
    LED4_F=on:goto EXTPORT_WRITE
    #LED4OFF
    LED4_F=off:goto EXTPORT_WRITE
    #LEDSOFF
    EXTPORT=EXTPORT and &H0F:goto EXTPORT_WRITE
    #EXTPORT_WRITE
    SYS SYSTEMulse STROBE:RETURN

    'IIIIII SYSTEMROUTINEN COMM/NAV SYSTEM IIIII

    #GET_IRDATA
    SUBCMD=1:sys COMNAV:return
    #SEND_IRDATA
    SUBCMD=0:sys COMNAV:return
    #RC5
    SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFC
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #RC5_INT
    SUBCMD=4:sys COMNAV:LBYTE= (HBYTE and &HFE)or 2
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #REC80
    SUBCMD=4:sys COMNAV:LBYTE= (HBYTE or &H01)and&HFD
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #REC80_INT
    SUBCMD=4:sys COMNAV:LBYTE= (HBYTE or &H03)
    HBYTE=00:SUBCMD=2:sys COMNAV:return

    'IIIIII SYSTEMROUTINEN SYSTEM IIIIIIIIIIII
    #NO_ACS_INT
    SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFB
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #ACS_INT_200
    SUBCMD=4:sys COMNAV:LBYTE= HBYTE or &H04
    HBYTE=50:SUBCMD=2:sys COMNAV:return
    #SUBSYS_PWR_ON
    sdio=on:sclio=on:strobe=off:EXTPORT=(EXTPORT and &HFE)or 8
    sys SYSTEM:return
    #SUBSYS_PWR_OFF
    EXTPORT=(EXTPORT and &HF7)or 1:sys SYSTEM
    deact sdio:deact sclio:return
    #CLR_DISTANCE
    SUBCMD=3:sys COMNAV:return
    #L_DISTANCE
    SUBCMD=6:sys COMNAV:return
    #R_DISTANCE
    SUBCMD=7:sys COMNAV:return

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Ich kann CCBASIC nicht mehr so wirklich, aber ich versuche mal dir zu helfen.
    Wie lange ist die Pause, wenn du "pause 100" hast? sind das 100ms oder 100s?
    Du musst auf jeden Fall einen Wert >xx bei "If touch then gosub SEL1" also so:
    "If touch > 100 then gosub SEL1"
    Ich habe die Programme zum Abfragen des Touchsensors nicht mehr. Wie sah der Algo zum abfragen aus? Kannst du den nochmal Posten? Du findest ihn bei den Beispielprogrammen, die mit dem Robby geliefert werden.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    19.09.2007
    Alter
    23
    Beiträge
    15
    Schon mal fielen Dank!
    Hier ist der Code vom Beispiel:

    Code:
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
    'IIIIIIIIII       MOBILE ROBOT EVALUATION PROGRAM          IIIIIIIIIIII
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
    '  EINFACHES BEISPIEL ZUR BENUTZUNG DES TOUCHSENSORS
    'Die Ein/Ausgabemöglichkeiten des Roboters sind sehr beschränkt, sind
    'aber jedoch für einen normalen Betrieb ausreichend.
    'Den TOUCH-SENSOR könne Sie z.B. benutzen um verschiedene Betriebszustände
    'einzustellen.
    'Dieses Beispiel soll Ihnen ein Gefühl dafür geben, welche Spannugswerte der
    'Touchsensor erzeugt, wenn man ihn auf verschiedene Art berührt.
    'Ohne Berührung liefert der Sensor den Wert 0 am AD-Wandler mit dem
    'Bezeichner TOUCH. Je jach Grösse der berührten Fläche, Druck und Feuchtigkeit
    'des Fingers nimmt der Wert zu.
    ' ---------------------------------------------------------------------
    '                       FUNKTION DES PROGRAMMS
    '----------------------------------------------------------------------
    ' Schieben Sie den Finger langsam von vorne mit wechselndem Druck über die
    ' Kontaktfläche und beobachten Sie welche LEDs leuchten. In der Tabelle
    ' sehen Sie, welchen Wert der A/D-Wandler (TOUCH) dabei liefert.
    ' Die Spannugswerte werden mit den LEDs als Balken angezeigt
    ' LED 1 - blinkend: 25 (dauernd:  50)
    ' LED 2 - blinkend: 75 (dauernd: 100)
    ' LED 3 - blinkend:125 (dauernd: 150)
    ' LED 4 - blinkend:175 (dauernd: 200)
    '
    '------------------------------------------------------------------------
    'RESOURCEN:
    'Sie finden in allen Beispielen sämtliche Systemroutinen die zum Betrieb des
    'Roboters notwendig sind.
    'Viele davon greifen auf Hardwareresourcen zu, die Sie von C-Control her nicht
    'kennen, deren genaue Funktionsweise aber im File "Project5_intern" erklärt ist.
    '
    ' Für dieses Beispiel sind folgende SYSTEMROUTINEN relevant:
    
    ' POWER:
    ' gosub SUBSYS_PWR_ON  ;Schaltet die Subsysteme EIN/AUS
    ' gosub SUBSYS_PWR_OFF
    
    ' AUSGABE:
    ' gosub LED1ON   ;zum Ein/Ausschalten der LED1 analog auch LED 2bis 4
    ' gosub LED1OFF  ;
    ' gosub LEDSOFF  ;schaltet alle LEDS aus
    
    
    '--------------------------
    '------ I/O PORTS ---------
    '--------------------------
    '- INTERFACE LCD/EXTPORT --
    define sdio         port[1]
    define sclio        port[3]
    define strobe       port[4]
    '-- INTERFACE COM/NAV -----
    define DATALINE     port[1]
    define CLOCKLINE    port[2]
    '--------------------------
    '------ SENSORS ---------
    '--------------------------
    define LIGHT_L      ad[7]
    define LIGHT_R      ad[6]
    define SYS_VOLTS    ad[3]
    define CHRG_CURRENT ad[2]
    define SYS_CURRENT  ad[1]
    define MIC          ad[4]
    define TOUCH        ad[5]
    '---------------------------
    '------  DRIVE -------------
    '---------------------------
    define SPEED_L        da[1]
    define SPEED_R        da[2]
    define REV_L        port[6]
    define REV_R        port[5]
    '--------------------------
    '---- SYSTEM MEMORY -------
    '--------------------------
    '--- INTERFACE BUFFER ----
    define LBYTE         byte[1]
    define HBYTE         byte[2]
    define SUBCMD        byte[3]
    '---- OPERATION DATA ------
    define EXTPORT       byte[4]
    define LED1_F        bit[29]
    define LED2_F        bit[30]
    define LED3_F        bit[31]
    define LED4_F        bit[32]
    define SYSTEM_STATUS byte[5]
    '--------------------------
    '----  USER MEMORY  -------
    '--------------------------
    define TIM           byte[6]
    define PGM           byte[7]
    '--- SYSTEMROUTINEN -----------
    define PLM_SLOW      &H01C4
    define SYSTEM        &H01C9
    define COMNAV        &H0154
    '- ERWEITERTE SYSTEM ROUTINEN -
    define REVR          &H0101   'ANTRIEB RECHTS RÜCKWÄRTS
    define REVL          &H0106   'ANTRIEB LINKS RÜCKWÄRTS
    define FWDR          &H010B   'ANTRIEG RECHTS VORWÄRTS
    define FWDL          &H0110   'ANTRIEB LINKS VORWÄRTS
    define ROTR          &H0115   'RECHTS DREHEN
    define ROTL          &H0119   'LINKS DREHEN
    define REV           &H011D   'RÜCKWÄRTS
    define FWD           &H0121   'VORWÄRTS
    define COMNAV_STATUS &H0125   'UPDATED ALLE FLAGS IM STATUS-REGISTER
    define ACS_LO        &H01E1   'ACS POWER LO
    define ACS_HI        &H01E9   '
    define ACS_MAX       &H01F1   '
    define SEND_TLM      &H014A   'SENDET TELEMETRIE (CH=HBYTE,DATEN=LBYTE)
    define SEND_SPEEDR   &H0134   'SENDET TLM KANAL 8,PLM RECHTS
    define SEND_SPEEDL   &H013A   'SENDET TLM KANAL 7,PLM LINKS
    define SEND_SYSSTAT  &H0144   'SENDET TLM KANAL 0,SYSTEM STATUS
                                  '(FLAGS für ACS,FWD/REV, ACS_LO/HI/MAX)
    '---------- INIT---------------
    gosub SUBSYS_PWR_ON:REV_L=off:REV_R=off
    beep 368,10,0:pause 50
    PGM=1
    '--------------------------------------------
    '--- DEMO BERÜHRUNGSSENSOR UND LEDs       ---
    '--------------------------------------------
    #NO_SELECT
    #WATCH
    if TOUCH > 200 then print "200"
    if TOUCH > 175 then print "175"
    if TOUCH > 150 then print "150"
    if TOUCH > 125 then print "125"
    if TOUCH > 100 then print "100"
    if TOUCH > 75 then print "75"
    if TOUCH > 50 then print "50"
    if TOUCH > 25 then print "25"
    gosub LEDSOFF:goto WATCH
    '--------------------------------------------
    
    #L4ON
    gosub LED1ON:gosub LED2ON:gosub LED3ON
    gosub LED4ON:goto WATCH
    #L4BLINK
    gosub LED1ON:gosub LED2ON:gosub LED3ON
    gosub LED4ON:pause 20:gosub LED4OFF:pause 20:goto WATCH
    #L3ON
    gosub LED1ON:gosub LED2ON
    gosub LED3ON:goto WATCH
    #L3BLINK
    gosub LED1ON:gosub LED2ON
    gosub LED3ON:pause 20:gosub LED3OFF:pause 20:goto WATCH
    #L2ON
    gosub LED1ON:gosub LED2ON:goto WATCH
    #L2BLINK
    gosub LED1ON
    gosub LED2ON:pause 20:gosub LED2OFF:pause 20:goto WATCH
    #L1ON
    gosub LED1ON:goto WATCH
    #L1BLINK
    gosub LED1ON:pause 20:gosub LED1OFF:pause 20:goto WATCH
    
    
    'IIIIIIIIIII LED DRIVER IIIIIIIIIIIIIIIII
    #LED1ON
    LED1_F=on:goto EXTPORT_WRITE
    #LED1OFF
    LED1_F=off :goto EXTPORT_WRITE
    #LED2ON
    LED2_F=on:goto EXTPORT_WRITE
    #LED2OFF
    LED2_F=off:goto EXTPORT_WRITE
    #LED3ON
    LED3_F=on:goto EXTPORT_WRITE
    #LED3OFF
    LED3_F=off:goto EXTPORT_WRITE
    #LED4ON
    LED4_F=on:goto EXTPORT_WRITE
    #LED4OFF
    LED4_F=off:goto EXTPORT_WRITE
    #LEDSOFF
    EXTPORT=EXTPORT and &H0F:goto EXTPORT_WRITE
    #EXTPORT_WRITE
    SYS SYSTEM:pulse STROBE:RETURN
    
    'IIIIII SYSTEMROUTINEN COMM/NAV SYSTEM  IIIII
    #GET_IRDATA
    SUBCMD=1:sys COMNAV:return
    #SEND_IRDATA
    SUBCMD=0:sys COMNAV:return
    #RC5
    SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFC
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #RC5_INT
    SUBCMD=4:sys COMNAV:LBYTE= (HBYTE and &HFE)or 2
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #REC80
    SUBCMD=4:sys COMNAV:LBYTE= (HBYTE or &H01)and&HFD
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #REC80_INT
    SUBCMD=4:sys COMNAV:LBYTE= (HBYTE or &H03)
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    'IIIIII   SYSTEMROUTINEN SYSTEM  IIIIIIIIIIII
    #NO_ACS_INT
    SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFB
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #ACS_INT_200
    SUBCMD=4:sys COMNAV:LBYTE= HBYTE or &H04
    HBYTE=50:SUBCMD=2:sys COMNAV:return
    #SUBSYS_PWR_ON
    sdio=on:sclio=on:strobe=off:EXTPORT=(EXTPORT and &HFE)or 8
    sys SYSTEM:return
    #SUBSYS_PWR_OFF
    EXTPORT=(EXTPORT and &HF7)or 1:sys SYSTEM
    deact sdio:deact sclio:return
    
    
    #CLR_DISTANCE
    SUBCMD=3:sys COMNAV:return
    #L_DISTANCE
    SUBCMD=6:sys COMNAV:return
    #R_DISTANCE
    SUBCMD=7:sys COMNAV:return
    '---------COM/NAV GERÄTEREIBER -------------
    'syscode "p5driv.s19"

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Dann wird dein Code wahrscheinlich so aussehen müssen:
    Code:
    define sdio port[1]
    define sclio port[3]
    define strobe port[4]
    define DATALINE port[1]
    define CLOCKLINE port[2]
    define LIGHT_L ad[7]
    define LIGHT_R ad[6]
    define SYS_VOLTS ad[3]
    define CHRG_CURRENT ad[2]
    define SYS_CURRENT ad[1]
    define MIC ad[4]
    define TOUCH ad[5]
    
    define SPEED_L da[1]
    define SPEED_R da[2]
    define REV_L port[6]
    define REV_R port[5]
    
    define LBYTE byte[1]
    define HBYTE byte[2]
    define SUBCMD byte[3]
    
    define EXTPORT byte[4]
    define LED1_F bit[29]
    define LED2_F bit[30]
    define LED3_F bit[31]
    define LED4_F bit[32]
    define SYSTEM_STATUS byte[5]
    define ACSL_F bit[33]
    define ACSR_F bit[34]
    define IR_F bit[35]
    
    define TIM byte[6]
    define PGM byte[7]
    
    define PLM_SLOW &H01C4
    define SYSTEM &H01C9
    define COMNAV &H0154
    
    define REVR &H0101
    define REVL &H0106
    define FWDR &H010B
    define FWDL &H0110
    define ROTR &H0115
    define ROTL &H0119
    define REV &H011D
    define FWD &H0121
    define COMNAV_STATUS &H0125
    define ACS_LO &H01E1
    define ACS_HI &H01E9
    define ACS_MAX &H01F1
    define SEND_TLM &H014A
    define SEND_SPEEDR &H0134
    define SEND_SPEEDL &H013A
    define SEND_SYSSTAT &H0144
    
    
    
    
    
    
    gosub SUBSYS_PWR_ON
    beep 368,10,0:pause 50
    
    gosub NO_ACS_INT:beep 368,10,0:SYS ACS_HI
    
    REV_L=on:REV_R=on:SYS PLM_SLOW
    
    SPEED_L=100:SPEED_R=100
    pause 100
    SPEED_L=0:SPEED_R=0
    if TOUCH > 100 then goto SEL1
    
    #SEL1
    SPEED_L=100:SPEED_R=100
    pause 100
    end
    
    
    #LED1ON
    LED1_F=on:goto EXTPORT_WRITE
    #LED1OFF
    LED1_F=off :goto EXTPORT_WRITE
    #LED2ON
    LED2_F=on:goto EXTPORT_WRITE
    #LED2OFF
    LED2_F=off:goto EXTPORT_WRITE
    #LED3ON
    LED3_F=on:goto EXTPORT_WRITE
    #LED3OFF
    LED3_F=off:goto EXTPORT_WRITE
    #LED4ON
    LED4_F=on:goto EXTPORT_WRITE
    #LED4OFF
    LED4_F=off:goto EXTPORT_WRITE
    #LEDSOFF
    EXTPORT=EXTPORT and &H0F:goto EXTPORT_WRITE
    #EXTPORT_WRITE
    SYS SYSTEM:pulse STROBE:RETURN
    
    'IIIIII SYSTEMROUTINEN COMM/NAV SYSTEM IIIII
    
    #GET_IRDATA
    SUBCMD=1:sys COMNAV:return
    #SEND_IRDATA
    SUBCMD=0:sys COMNAV:return
    #RC5
    SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFC
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #RC5_INT
    SUBCMD=4:sys COMNAV:LBYTE= (HBYTE and &HFE)or 2
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #REC80
    SUBCMD=4:sys COMNAV:LBYTE= (HBYTE or &H01)and&HFD
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #REC80_INT
    SUBCMD=4:sys COMNAV:LBYTE= (HBYTE or &H03)
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    
    'IIIIII SYSTEMROUTINEN SYSTEM IIIIIIIIIIII
    #NO_ACS_INT
    SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFB
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #ACS_INT_200
    SUBCMD=4:sys COMNAV:LBYTE= HBYTE or &H04
    HBYTE=50:SUBCMD=2:sys COMNAV:return
    #SUBSYS_PWR_ON
    sdio=on:sclio=on:strobe=off:EXTPORT=(EXTPORT and &HFE)or 8
    sys SYSTEM:return
    #SUBSYS_PWR_OFF
    EXTPORT=(EXTPORT and &HF7)or 1:sys SYSTEM
    deact sdio:deact sclio:return
    #CLR_DISTANCE
    SUBCMD=3:sys COMNAV:return
    #L_DISTANCE
    SUBCMD=6:sys COMNAV:return
    #R_DISTANCE
    SUBCMD=7:sys COMNAV:return
    Nice to be back after two years
    www.roboterfreak.de

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    19.09.2007
    Alter
    23
    Beiträge
    15
    Vielen Dank,
    aber leider fährt Robby immer noch immerweiter geradeaus!
    Ich verstehe es auch nicht!!!

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    26
    Beiträge
    3.467
    Dann weiß ich auch nicht mehr weiter...

    jon
    Nice to be back after two years
    www.roboterfreak.de

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    19.09.2007
    Alter
    23
    Beiträge
    15
    jo, Aufjedenfall Danke

Berechtigungen

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