- Labornetzteil AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Brauch ein Programm

  1. #11
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2004
    Beiträge
    206
    Anzeige

    E-Bike
    da bin ich schon dabei ein programmm auszuarbeiten, und bin auch schon recht weit.

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    21.01.2005
    Beiträge
    9
    Ciao zusammen. Habe mir vor einer woche auch den robby zugelegt, gleich mit Basiserweiterung und LCD, nur die Control Unit II ist mer noch zu teuer für den anfang. allerdings: wen schon dann richtig. Also zu deiner Frage hab hier zwei Programe:

    1. Dieses proggi lässt den RP5 "allen" gegenständen ausweichen, gestartet wir per klatsch und gestoppt per touch, ich weiss ist ein bischen umständlich aber mit dem klatschsensor hab ich es nicht hingekriegt, entweder ging er von alleine aus (Motoren zu laut) oder er nahm mein klatschen nicht wahr. Ausserdem wollte ich ihn noch schneller fahren lassen wenn nichts im Weg steht jedoch hab ich das ausgetextet da es nicht wirklich gefunzt hat.

    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIII
    'IIIIIIIIII Title IIIIIIIIIIII
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIII
    'Beschreibung:
    '
    '
    '
    '--------------------------
    '------ 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]
    define ACSL_F bit[33]
    define ACSR_F bit[34]
    define IR_F bit[35]
    '--------------------------
    '---- USER MEMORY -------
    '--------------------------
    define GP byte[6]
    define MAXLIGHT byte[7]
    define GP1 byte[8]
    '--- 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
    beep 368,10,0ause 50
    '---- SYSTEM OPERATION MODE (NO INTERRUPT) ----
    gosub NO_ACS_INT:beep 368,10,0:SYS ACS_LO
    '------------ ANTRIEB -------------------------
    REV_L=on:REV_R=on:SYS PLM_SLOW

    'variablen
    define sample byte
    define hsample byte
    define i byte
    define Hi byte
    '--------------------------------------------
    '--- Programm ---
    '--------------------------------------------
    sample=0
    hsample=0

    #warte
    gosub LED1OFF
    gosub LED4ON
    Speed_L=0:Speed_R=0
    pause 100
    #warte1
    hsample=0
    For i=1 to 100
    sample=mic
    if sample>hsample then hsample=sample
    next
    if hsample>75 then goto loop1 else gosub warte1

    '--------------------------------------------------------------------
    #loop1
    gosub LED1ON
    gosub LED4OFF
    pause 100
    #loop
    hsample=0

    if touch>5 then goto warte

    'SYS ACS_HIause 1:SYS COMNAV_STATUS
    'if ((ACSR_F or ACSL_F)=on) and (Hi=1) then goto langsam
    'if ((ACSR_F and ACSL_F)=off) and (Hi=0) then goto schnell

    SYS ACS_LOause 1:SYS COMNAV_STATUS
    if (ACSL_F and ACSR_F)=on then goto turn
    if ACSR_F=on then goto dreherechts
    if ACSL_F=on then goto drehelinks

    SYS FWDR:SYS FWDL:Speed_R=100:Speed_L=100

    goto loop

    #langsam
    Speed_L=70:Speed_R=70:Hi=0:goto loop
    #schnell
    Speed_L=150:Speed_R=150:Hi=1:goto loop
    #dreherechts
    Speed_R=0:Speed_L=0ause 10
    SYS FWDR:SYS REVL:Speed_R=100:Speed_L=100ause 10:goto loop
    #drehelinks
    Speed_R=0:Speed_L=0ause 10
    SYS REVR:SYS FWDL:SPeed_R=100:Speed_L=100ause 10: goto loop
    #turn
    Speed_R=0:Speed_L=0ause 10
    SYS FWDR:SYS REVL:Speed_R=100:Speed_L=100ause 95:goto loop

    '--------------------------------------------
    '--- Prog Ende ---
    '--------------------------------------------

    '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 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
    '---------COM/NAV GERÄTEREIBER -------------
    'syscode "p5driv.s19"

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    21.01.2005
    Beiträge
    9
    2. Dies ist für die Erweiterungsplatine gedacht. Per touchsensor (jenach druck) wird ein Progg gewählt (wird auf LCD angezeigt) und dann lässt es die LED's versch. Blinken.

    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIII
    'IIIIIIIIII Title IIIIIIIIIIII
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIII
    'Beschreibung:
    '
    '
    '
    '--------------------------
    '------ I/O PORTS ---------
    '--------------------------
    '- INTERFACE LCD/EXTPORT --
    define sdio port[1]
    define sclio port[3]
    define strobe port[4]
    define LSTROBE port[7]
    '-- INTERFACE COM/NAV -----
    define DATALINE port[1]
    define CLOCKLINE port[2]
    '-- CC2 INTERFACE -------
    define CC2POWER port[8]
    '------ LCD INTERFACE ------
    define lcd_port byteport[2]
    define lcd_rs port[14]
    define lcd_rw port[13]
    define lcd_e port[15]
    '--------------------------
    '------ 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]
    define LEDPORT byte[6]
    define L1_F bit[41]
    define L2_F bit[42]
    define L3_F bit[43]
    define L4_F bit[44]
    define L5_F bit[45]
    define L6_F bit[46]
    define L7_F bit[47]
    define L8_F bit[48]
    '---- LCD DRIVER -------------
    define lcd_buf byte[7]
    define lcd_param byte[8]
    '--------------------------
    '---- USER MEMORY -------
    '--------------------------
    '--- BIN-DEZIMAL-CONVERTER ---
    define hunderter byte [10]
    define zehner byte[11]
    define einer byte[12]
    define value byte[13]
    define value16 word [12]
    define TIM byte[7]
    define PGM byte[8]
    '--- SYSTEMROUTINEN -----------
    define PLM_SLOW &H01C2
    define SYSTEM &H01C7
    define LED_DRIVE &H01CA
    define COMNAV &H0144
    '- 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 &H01E0 'ACS POWER LO
    define ACS_HI &H01E8 '
    define ACS_MAX &H01F0 '
    define SEND_TLM &H013A 'SENDET TELEMETRIE (CH=HBYTE,DATEN=LBYTE)
    define SEND_SYSSTAT &H0134 'SENDET TLM KANAL 0,SYSTEM STATUS
    '(FLAGS für ACS,FWD/REV, ACS_LO/HI/MAX)
    '---------- INIT---------------
    LSTROBE=off:CC2POWER=on
    gosub SUBSYS_PWR_ON:REV_L=off:REV_R=off
    beep 368,10,0ause 50
    '--------------------------------------------
    '--- DEMO BERÜHRUNGSSENSOR UND LEDs ---
    '--------------------------------------------
    #NO_SELECT
    on PGM goto LOOP,PGM1,PGM2,PGM3,PGM4
    gosub LEDSOFF
    #LOOP
    if TOUCH < 20 then goto NO_SELECT
    if TOUCH < 50 then goto SEL1
    if TOUCH < 80 then goto SEL2
    if TOUCH < 120 then goto SEL3
    if TOUCH < 180 then goto SEL4
    goto LOOP
    '------------- AUSWAHL ---------------------------
    #SEL1
    gosub prog11ause 10:PGM=1:goto LOOP
    #SEL2
    gosub prog21ause 10:PGM=2:goto LOOP
    #SEL3
    gosub prog31ause 10:PGM=3:goto LOOP
    #SEL4
    gosub prog41ause 10:PGM=4:goto LOOP
    '-------- AUSGEWÄHLTE PROGRAMME ----------------------
    #PGM1
    gosub prog1ause 20:goto loop
    #PGM2
    gosub prog2ause 20:goto loop
    #PGM3
    gosub prog3ause 20:goto loop
    #PGM4
    gosub prog4ause 20:goto loop
    '-------------------------------------------------------

    '--------------------------------------------
    '- DEMO LED LAUFLICHT AUF DER ERWEITERUNG --
    '--------------------------------------------
    #prog11
    gosub lcd_cls
    lcd_param = 1: gosub lcd_gotoline
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H50: gosub lcd_writechar 'P
    lcd_param = &H52: gosub lcd_writechar 'R
    lcd_param = &H4F: gosub lcd_writechar 'O
    lcd_param = &H47: gosub lcd_writechar 'G
    lcd_param = &H31: gosub lcd_writechar '1
    lcd_param = 58 : gosub lcd_writechar '
    return

    #prog21
    gosub lcd_cls
    lcd_param = 1: gosub lcd_gotoline
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H50: gosub lcd_writechar 'P
    lcd_param = &H52: gosub lcd_writechar 'R
    lcd_param = &H4F: gosub lcd_writechar 'O
    lcd_param = &H47: gosub lcd_writechar 'G
    lcd_param = &H32: gosub lcd_writechar '2
    lcd_param = 58 : gosub lcd_writechar '

    return

    #prog31
    gosub lcd_cls
    lcd_param = 1: gosub lcd_gotoline
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H50: gosub lcd_writechar 'P
    lcd_param = &H52: gosub lcd_writechar 'R
    lcd_param = &H4F: gosub lcd_writechar 'O
    lcd_param = &H47: gosub lcd_writechar 'G
    lcd_param = &H33: gosub lcd_writechar '3
    lcd_param = 58 : gosub lcd_writechar '

    return

    #prog41
    gosub lcd_cls
    lcd_param = 1: gosub lcd_gotoline
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H50: gosub lcd_writechar 'P
    lcd_param = &H52: gosub lcd_writechar 'R
    lcd_param = &H4F: gosub lcd_writechar 'O
    lcd_param = &H47: gosub lcd_writechar 'G
    lcd_param = &H34: gosub lcd_writechar '4
    lcd_param = 58 : gosub lcd_writechar '

    return

    #prog1
    gosub lcd_cls
    lcd_param = 1: gosub lcd_gotoline
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H50: gosub lcd_writechar 'P
    lcd_param = &H52: gosub lcd_writechar 'R
    lcd_param = &H4F: gosub lcd_writechar 'O
    lcd_param = &H47: gosub lcd_writechar 'G
    lcd_param = &H31: gosub lcd_writechar '1

    gosub L1ONause 5:gosub L1OFF
    gosub L2ONause 5:gosub L2OFF
    gosub L3ONause 5:gosub L3OFF
    gosub L4ONause 5:gosub L4OFF
    gosub L5ONause 5:gosub L5OFF
    gosub L6ONause 5:gosub L6OFF
    gosub L7ONause 5:gosub L7OFF
    gosub L8ONause 5:gosub L8OFF
    gosub L7ONause 5:gosub L7OFF
    gosub L6ONause 5:gosub L6OFF
    gosub L5ONause 5:gosub L5OFF
    gosub L4ONause 5:gosub L4OFF
    gosub L3ONause 5:gosub L3OFF
    gosub L2ONause 5:gosub L2OFF
    if touch>10 then return
    goto prog1

    #prog2
    gosub lcd_cls
    lcd_param = 1: gosub lcd_gotoline
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H50: gosub lcd_writechar 'P
    lcd_param = &H52: gosub lcd_writechar 'R
    lcd_param = &H4F: gosub lcd_writechar 'O
    lcd_param = &H47: gosub lcd_writechar 'G
    lcd_param = &H32: gosub lcd_writechar '2

    gosub L4ON:gosub L5ONause 5:gosub L4OFF:gosub L5OFF
    gosub L3ON:gosub L6ONause 5:gosub L3OFF:gosub L6OFF
    gosub L2ON:gosub L7ONause 5:gosub L2OFF:gosub L7OFF
    gosub L1ON:gosub L8ONause 5:gosub L1OFF:gosub L8OFF
    if touch>10 then return
    goto prog2

    #prog3
    gosub lcd_cls
    lcd_param = 1: gosub lcd_gotoline
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H50: gosub lcd_writechar 'P
    lcd_param = &H52: gosub lcd_writechar 'R
    lcd_param = &H4F: gosub lcd_writechar 'O
    lcd_param = &H47: gosub lcd_writechar 'G
    lcd_param = &H33: gosub lcd_writechar '3

    gosub L2OFF:gosub L4OFF:gosub L6Off:gosub L8OFF
    gosub L1ON:gosub L3ON:gosub L5ON:gosub L7ONause 10
    gosub L1OFF:gosub L3OFF:gosub L5OFF:gosub L7OFF
    gosub L2ON:gosub L4ON:gosub L6ON:gosub L8ONause 10

    if touch>10 then return
    goto prog3

    #prog4
    gosub lcd_cls
    lcd_param = 1: gosub lcd_gotoline
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H20: gosub lcd_writechar
    lcd_param = &H50: gosub lcd_writechar 'P
    lcd_param = &H52: gosub lcd_writechar 'R
    lcd_param = &H4F: gosub lcd_writechar 'O
    lcd_param = &H47: gosub lcd_writechar 'G
    lcd_param = &H34: gosub lcd_writechar '4

    gosub L4ON:gosub L5ONause 5
    gosub L3ON:gosub L6ONause 5
    gosub L2ON:gosub L7ONause 5
    gosub L1ON:gosub L8ONause 5

    gosub L4OFF:gosub L5OFFause 5
    gosub L3OFF:gosub L6OFFause 5
    gosub L2OFF:gosub L7OFFause 5
    gosub L1OFF:gosub L8OFFause 5
    if touch>10 then return
    goto prog4

    '-------------------------------------------
    '++++++++++++ CONVERT BINARY TO DECIMAL +++++++++++++++
    #convert
    hunderter=value/100
    if hunderter>0 then lcd_param=hunderter+&H30 else lcd_param=&H20
    gosub lcd_writechar
    'zehner abfragen
    zehner=(value-(hunderter*100))/10
    lcd_param=zehner+&H30
    gosub lcd_writechar
    'einer abfragen
    einer=value-(hunderter*100)-(zehner*10)
    lcd_param=einer+&H30
    gosub lcd_writechar
    return

    '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
    #EXTPORT_WRITE
    SYS SYSTEMulse STROBE:RETURN
    '--- LEDS AUF DER BASIS ERWEITERUNG ------
    #L1ON
    L1_F=on:goto LEDPORT_WRITE
    #L1OFF
    L1_F=off :goto LEDPORT_WRITE
    #L2ON
    L2_F=on:goto LEDPORT_WRITE
    #L2OFF
    L2_F=off :goto LEDPORT_WRITE
    #L3ON
    L3_F=on:goto LEDPORT_WRITE
    #L3OFF
    L3_F=off :goto LEDPORT_WRITE
    #L4ON
    L4_F=on:goto LEDPORT_WRITE
    #L4OFF
    L4_F=off :goto LEDPORT_WRITE
    #L5ON
    L5_F=on:goto LEDPORT_WRITE
    #L5OFF
    L5_F=off :goto LEDPORT_WRITE
    #L6ON
    L6_F=on:goto LEDPORT_WRITE
    #L6OFF
    L6_F=off :goto LEDPORT_WRITE
    #L7ON
    L7_F=on:goto LEDPORT_WRITE
    #L7OFF
    L7_F=off :goto LEDPORT_WRITE
    #L8ON
    L8_F=on:goto LEDPORT_WRITE
    #L8OFF
    L8_F=off :goto LEDPORT_WRITE
    #LOFF
    LEDPORT=0
    #LEDPORT_WRITE
    SYS LED_DRIVEulse LSTROBE:RETURN
    '---------------------------------------
    '------------- LCD ROUTINES -------------
    '----------------------------------------
    #LCD_INIT
    ' alle ports 0
    lcd_port = OFF

    ' 8-Bit-Modus aktivieren
    lcd_param=&H38 : gosub LCD_WRITECMD

    ' mit 8-Bit-Command in 4-Bit-Modus umschalten
    lcd_port=&B00000010
    tog lcd_e
    tog lcd_e

    ' ab jetzt 4-Bit-Modus
    lcd_param = &H28 : gosub LCD_WRITECMD
    lcd_param = &H0C : gosub LCD_WRITECMD

    ' Display loeschen
    #LCD_CLS
    lcd_param = &H02 : gosub LCD_WRITECMD
    lcd_param = &H01 : gosub LCD_WRITECMD
    return
    ' Zeilenwechsel
    #LCD_GOTOLINE
    if lcd_param = 1 then lcd_param = &H80
    if lcd_param = 2 then lcd_param = &HC0
    goto LCD_WRITECMD

    ' LCD-Kommando
    #LCD_WRITECMD
    lcd_buf = OFF
    goto LCD_WRITE

    ' Zeichenausgabe
    #LCD_WRITECHAR
    lcd_buf = &B00100000

    ' Kommando oder Zeichen an Display senden
    #LCD_WRITE
    lcd_port = lcd_buf or (lcd_param shr 4) ' Hi-Nibble
    tog lcd_e
    tog lcd_e
    lcd_port = lcd_buf or (lcd_param and &H0F) ' Lo-Nibble
    tog lcd_e
    tog lcd_e
    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 "p5driv12.s19"

  4. #14
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803

    Programmauswahl

    Hallo Lord Weed,

    gutes Prog, aber wäre es nicht mit IR-Fernbedienung deutlich einfacher?
    Dafür gibts auch Beispiele im Download-Bereich.

    Gruß Dirk

  5. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    21.01.2005
    Beiträge
    9
    Was meinst du? Ihn ein-auszuschalten, Programmswitch? Oder herumfahren zu lassen. Beim zweiteren währe da ja der Sinn verfehlt.

  6. #16
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803

    Fernbedienung

    Hallo Lord Weed,

    Ihn ein-auszuschalten, Programmswitch? Oder herumfahren zu lassen.
    Da geht doch alles! Man kann ihn mit IR steuern, zwischen Programmen umherschalten oder ihn ein-/ausschalten. Alles eine Sache Deines Programms.
    Beispiel:
    Die Tasten 1..5 der Fernbedienung wählen ein Programm aus.
    Das Programm 2 erlaubt die Steuerung des Robby mit den Richtungstasten und STOP/START o.ä. Dieser Steuermodus wird durch eine weitere Taste (z.B. ON/OFF) verlassen.
    Danach kann man mit 1..5 ein neues Programm auswählen.

    Gruß Dirk

  7. #17
    Mein Favorit ist im Moment das Programm von Henk.
    http://home.planet.nl/~winko001/Robby003.bas

    Zum Selbstbrogramieren bin ich bisher leider noch nicht gekommen. Hab nur die Beispielprogramme getestet, und hier im Forum über das Listing gestolpert.

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    21.01.2005
    Beiträge
    9
    Hab gester noch versucht ob unsere Fernbedienung funktioniert jedoch hatte ich keinen Erfolg. Und ausserdem sehe ich den Sinn in dem Robby dass er seine Abläufe selbständig macht. Eben nur für den Switch zwischen den Einzelnen Programmen oder dem Start wäre eine Fernbedienung nicht zu verachten. Was mich vor allem reitzen würde währe den Roboter per Fernbedienung zu steuern und ihn danach wieder an den Ausgangspunkt zurückkehren zu lasen.

    Greez

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

LiFePO4 Speicher Test