PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauch ein Programm



raptor_79
15.12.2004, 22:41
hallo

ich hab meinen rp5 noch nicht getestet. aber ich hab mir die foren angesehen, und bin immer wieder über codeschnipsel gestolpert.

manchmal hab ich nicht wirklich verstanden, von was die reden.
meine frage:
kann mir jemand ein komplettes proggi von sich schicken?? eines, mit dem er selber fährt? ich würde gerne die .bas haben wollen, damit ich mir sowas mal ansehen kann. ich will ausdrücklich kein beispielprog. von der cd.

wäre eine super sache.

prog bitte per email an:
raptor_79@antichriss.com

dank euch schon mal.

freakysteve
16.12.2004, 13:16
am leichtesten erklärt ist aber das CD-Beispiel ;-)

mfg

robertthronhill
16.12.2004, 14:30
Was hast du denn gegen die Beispiele auf der CD?

mfg
robertthronhill

raptor_79
16.12.2004, 15:27
ich will einfach mal sehen, was ihr so macht, und habt. die beispiele, mei....

will halt mal ein "richtiges" programm sehen, daß auch funktiniert, und was weiß ich nicht alles kann.

pebisoft
16.12.2004, 17:39
es stehen auf der cd richtige gute beispiele zum testen. einige beispiele sind auch voraussetzungen für den start des robby.
mfg pebisoft

raptor_79
16.12.2004, 17:55
jo, das hab ich mir schon alles angesehen auf den cd. kann den roboter aber noch nicht in betrieb nehmen. (sind halt "so" gründe)

ich will nur so viel vorabinfos haben wie möglich, und kann mich nur mit der theorie beschäftigen. aber das halt ausführlich. je mehr desto gut!

dank euch jedenfalls sehr!

freakysteve
16.12.2004, 19:00
naja. Ich baue meine Programme immer auf den Grundprogrammen, die auf der CD sind auf, weil es mir einfach zu blöd ist den Code für die Ansteuerung einer LED noch einmal abzutippen, also kopiere ich. Natürlich lösche ich das, was ich nicht brauche raus, aber im großen und ganzen ist die CD sehr gut für den Einstieg.

mfg Stefan

pebisoft
16.12.2004, 22:20
das verstehe ich nicht "kann den roboter nicht in betrieb nehmen". musst du mal näher erklären.
mfg pebisoft

raptor_79
16.12.2004, 22:27
ja gut.... ich bekomm ihn zu wihnachten.
mei, ich weiß scho......

hoffe, problem erkannt, daß mir die hände gebunden sind.

bähhh und noch bis zum 24. warten!!! ich halts doch eh schon nicht mehr aus!

pebisoft
17.12.2004, 07:47
hier im forum habe ich auch leider festgestellt, das es vom robby noch nicht viele programme gibt, die eine ausgereifte tätigkeit durchführen. fast alle beschäftigen sich mich den robby aufmotzen oder verbessern in seiner lauffähigkeit oder laufzeitverlängerung in betriebsstunden.
ich habe manchmal den eindruck , das die leute keine programme schreiben können sondern nur kopieren. nimm die cd, teste die programme durch, dadurch wird auch festgestellt, ob der robby alle funktionen durchführen kann. dann nimmst du dir einen zettel und denkst dir selber mal was aus, was der robby machen soll. eine idee festhalten, die an die pinwand heften, unsd solange am programm arbeiten bis es fertig ist.
mfg pebisoft

raptor_79
17.12.2004, 11:09
da bin ich schon dabei ein programmm auszuarbeiten, und bin auch schon recht weit.

Lord Weed
21.01.2005, 19:23
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,0:pause 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_HI:pause 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_LO:pause 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=0:pause 10
SYS FWDR:SYS REVL:Speed_R=100:Speed_L=100:pause 10:goto loop
#drehelinks
Speed_R=0:Speed_L=0:pause 10
SYS REVR:SYS FWDL:SPeed_R=100:Speed_L=100:pause 10: goto loop
#turn
Speed_R=0:Speed_L=0:pause 10
SYS FWDR:SYS REVL:Speed_R=100:Speed_L=100:pause 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 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"

Lord Weed
21.01.2005, 19:23
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,0:pause 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 prog11:pause 10:PGM=1:goto LOOP
#SEL2
gosub prog21:pause 10:PGM=2:goto LOOP
#SEL3
gosub prog31:pause 10:PGM=3:goto LOOP
#SEL4
gosub prog41:pause 10:PGM=4:goto LOOP
'-------- AUSGEWÄHLTE PROGRAMME ----------------------
#PGM1
gosub prog1:pause 20:goto loop
#PGM2
gosub prog2:pause 20:goto loop
#PGM3
gosub prog3:pause 20:goto loop
#PGM4
gosub prog4:pause 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 L1ON:pause 5:gosub L1OFF
gosub L2ON:pause 5:gosub L2OFF
gosub L3ON:pause 5:gosub L3OFF
gosub L4ON:pause 5:gosub L4OFF
gosub L5ON:pause 5:gosub L5OFF
gosub L6ON:pause 5:gosub L6OFF
gosub L7ON:pause 5:gosub L7OFF
gosub L8ON:pause 5:gosub L8OFF
gosub L7ON:pause 5:gosub L7OFF
gosub L6ON:pause 5:gosub L6OFF
gosub L5ON:pause 5:gosub L5OFF
gosub L4ON:pause 5:gosub L4OFF
gosub L3ON:pause 5:gosub L3OFF
gosub L2ON:pause 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 L5ON:pause 5:gosub L4OFF:gosub L5OFF
gosub L3ON:gosub L6ON:pause 5:gosub L3OFF:gosub L6OFF
gosub L2ON:gosub L7ON:pause 5:gosub L2OFF:gosub L7OFF
gosub L1ON:gosub L8ON:pause 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 L7ON:pause 10
gosub L1OFF:gosub L3OFF:gosub L5OFF:gosub L7OFF
gosub L2ON:gosub L4ON:gosub L6ON:gosub L8ON:pause 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 L5ON:pause 5
gosub L3ON:gosub L6ON:pause 5
gosub L2ON:gosub L7ON:pause 5
gosub L1ON:gosub L8ON:pause 5

gosub L4OFF:gosub L5OFF:pause 5
gosub L3OFF:gosub L6OFF:pause 5
gosub L2OFF:gosub L7OFF:pause 5
gosub L1OFF:gosub L8OFF:pause 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 SYSTEM:pulse 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_DRIVE:pulse 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"

Dirk
22.01.2005, 07:35
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

Lord Weed
22.01.2005, 10:09
Was meinst du? Ihn ein-auszuschalten, Programmswitch? Oder herumfahren zu lassen. Beim zweiteren währe da ja der Sinn verfehlt.

Dirk
23.01.2005, 17:33
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

M112
23.01.2005, 18:24
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.

Lord Weed
24.01.2005, 17:23
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