PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CCRP5 Einstieg



5Volt-Junkie
12.09.2008, 18:14
Hallo an alle!

Habe gerade meinen Robby ausm Keller geholt, und wollte mal wieder versuchen die Programmierung zu verstehen. Hat jemand zufällig ein Programm für Robby CCRP5, damit ich bisschen Überblick bekomme, wie das ganze ungefähr funzt! Habe ne Weile im Internet gegoogelt und fand keine passende Tutorials und mit den Demos auf der mitgeliferten CD kann ich auch nicht viel anfangen.

Würde mich freuen wenn das so eins wäre, wo die Infrarotsensoren angesprochen werden um Hindernisse auszuweichen.

Oder noch besser einen Tutorial dafür wie man den Robby programmiert!

Vielen Dank im vorraus!

ikarus_177
12.09.2008, 19:16
Schau mal im ausführlichen Manual auf der CD nach. Da sind alle Befehle genau erklärt. Das hat mir zumindest viel geholfen.

Viele Grüße
ikarus_177

5Volt-Junkie
12.09.2008, 19:55
hi ikarus_177! Danke für deine schnelle Antwort!
Das was du vorgeschlagen hast, hab ich ganz am Anfang gemacht und ein paar Einblicke bekommen, aber die Befehle sind in Demos zestreut. Vor einigen Monaten habe ich Progs geschrieben, aber nie zum laufen gekriegt. So habe ich das ganze ausprobiert bis ich keine Lust mehr hatte und das ding in den Keller gebracht habe! Weiss halt nicht wie ich anfangen soll und wie man so einProg aufbaut.
Deswegen würde ich gerne so ein Beispiel haben damit ich ungefähr weiss wie das aufgebaut ist!

ikarus_177
12.09.2008, 20:03
Hi,

ich könnte dir am Wochenende ein Beispielprog zusammenstellen. Ich stells dir dann hier rein. Könnte aber noch dauern bis Morgen bis Sonntag, da die Schule zur Zeit Vorrang hat.

lg ikarus_177

5Volt-Junkie
13.09.2008, 11:45
Ja na klar hat ja Zeit, werde dir sehr dankbarsein (bin ich ja jetztschon)!


MfG Sheff

ikarus_177
13.09.2008, 18:34
Hi Sheff,

ich hab mal ein Programm geschrieben (bin ja auch schon ne Weile weg vom RP5), in dem man *meiner Meinung nach* ganz gut erkennen kann, wie die einzelnen Befehle arbeiten.


'nötige Definitonen am Anfang, können direkt übernommen werden:




'--------------------------
'------ 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]
'---- FREIE PORTS ---------
'hier gegebenenfalls andere Namen für die einzelnen Ports verwenden
Define Freip7 Port[7]
Define Freip8 Port[8]
Define Freip9 Port[9]
Define Freip10 Port[10]
Define Freip11 Port[11]
Define Freip12 Port[12]
Define Freip13 Port[13]
Define Freip14 Port[14]
Define Freip15 Port[15]
Define Freip16 Port[16]
'--------------------------
'------ SENSORS ---------
'--------------------------
Define Freiad8 Ad[8] 'freier A/D-Wandler
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 Deviceaddress Byte[6]
'User Memory ab BYTE[7] frei!
'--- 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---------------'
'Freie Ports initialisieren (Namensänderung beachten):
FREIP7=off
Freip8 = Off
Freip9 = Off
Freip10 = Off
Freip11 = Off
Freip12 = Off
Freip13 = Off
Freip14 = Off
Freip15 = Off
Freip16 = Off
' Subsysteme einschalten:
Gosub Subsys_pwr_on

Beep 368 , 10 , 0 : Pause 50
Gosub Ledsoff 'Alle LEDs auf Robby aus
' ACS initialisieren:
Gosub No_acs_int : Beep 368 , 10 , 0 : Sys Acs_lo 'Kein Interrupt, Power LO
'------------ ANTRIEB -------------------------
Rev_l = On : Rev_r = On : Sys Plm_slow

'----------------
' HAUPTPROGRAMM:
'----------------

'Sprungmarke (einfache Schleife)

#loop

'Quellcode

Goto Loop


'Abfrage des IR-Sensors:

Sys Comnav_status

If Acsl_f = On Then Gosub Unterroutine 'Sensor für linke Seite spricht an, verzweigen ins Unterprogramm
If Acsr_f = On Then Gosub Andere_unterroutine 'Sensor für rechte Seite spricht an


'Geschwindigkeitskontrolle

Speed_l = 100 'geschwindigkeit linke Kette
Speed_r = 100 'Geschwindigkeit rechte Kette




'Ab hier Unterroutinen für LED-Ansteuerung sowie IR-System


'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
#ledson
Extport = Extport Or &HF0
#extport_write
Lbyte = Extport : Sys System : Return

'IIIIII SYSTEMROUTINEN COMM/NAV SYSTEM IIIII
#get_irdata
Subcmd = 1 : Sys Comnav : Return
#send_irdata
Subcmd = 0 : Sys Comnav : Return
#get_tlm
Subcmd = 1 : Sys Comnav : Lbyte = Lbyte Or(hbyte Shl 6)
Hbyte = Hbyte Shr 2 : 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
#addressed_mode_on
Subcmd = 4 : Sys Comnav : Lbyte =(hbyte Or &H10)
Hbyte = 00 : Subcmd = 2 : Sys Comnav : Return
#addressed_mode_off
Subcmd = 4 : Sys Comnav : Lbyte =(hbyte And &HEF)
Hbyte = 00 : Subcmd = 2 : Sys Comnav : Return
#wait_ping
Subcmd = 8 : Sys Comnav : Return
#set_address
Subcmd = 4 : Sys Comnav : Lbyte =(hbyte Or &H10)
Hbyte = 00 : Subcmd = 2 : Sys Comnav
Lbyte = Deviceaddress : Subcmd = 5 : Sys Comnav : Return
#get_addressed_data
Subcmd = 1 : Sys Comnav : Hbyte = Hbyte And &H7 : RETURN
#send_addressed_data
Hbyte =(hbyte Shl 3)or Deviceaddress : Subcmd = 0 : 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"


Recht viel steht halt noch nicht drinnen, hab mal das von dir oben angesprochene IR-System eingebaut. Wenn du noch weitere Fragen zu Befehlen hast, frag ruhig. Ich werde mich bemühen, es dir zu erklären, wenn ich es selber weiß.


Viele Grüße
ikarus_177

5Volt-Junkie
14.09.2008, 13:44
Vielen dank für deine mühe ikarus_177. Werde es demnächst ausprobieren wenn ich den kompiler auf mein rechner kriege, weil ich vor paar tagen Linux instaliert habe! Keine Lust mehr auf Vista!

Werde bestimmt noch fragen haben :)

MfG Sheff