- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 34

Thema: rn control auf ccrp5

  1. #21
    Erfahrener Benutzer Roboter Experte Avatar von ikarus_177
    Registriert seit
    31.12.2007
    Ort
    Grein
    Alter
    31
    Beiträge
    601
    Anzeige

    Powerstation Test
    hallo dirk,

    die RN-Control kann man entweder über ISP oder (mit bootloader) per RS232 schnittstelle und nullmodemkabel (ich verwende dazu das kabel vom ccrp5) flashen.

    wenn mir noch eine frage gestattet ist: die kommunikation zwischen RN-Control und ccrp5 kann ich ja mit den befehlen PUT und GET im robby quelltext realisieren, oder?

    danke schon mal

    lg
    ikarus_177

  2. #22
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Ok, wenn die RN-Control auch über die serielle Schnittstelle geflasht wird, müßte man den CCRP5 wirklich abtrennen. Vorher würde ich aber auch da probieren, ob man durch deaktivieren der RX/TX-Ports (Deact ...) im CCRP5-Programm die Trennung auch so erreichen kann.
    An einer seriellen Verbindung können immer nur zwei Teilnehmer gleichzeitig aktiv sein. Werden es drei (RN-Control, CCRP5 und PC), muss unbedingt einer seine TX-Leitung deaktivieren. Wenn der CCRP5 und die RN-Control aktiv sind, müßte das Kabel vom PC abgezogen werden.

    Ja, beim CCRP5 kannst du die Bytes mit PUT und GET senden/empfangen.

    Gruß Dirk

  3. #23
    Erfahrener Benutzer Roboter Experte Avatar von ikarus_177
    Registriert seit
    31.12.2007
    Ort
    Grein
    Alter
    31
    Beiträge
    601
    hallo dirk,

    nein das bringt auch nichts, egal mache ich mir halt einen zweipoligen stecker, dann kann man das ganz bequem ein- und ausstecken.

    danke sehr

    hochachtungsvoll
    ikarus_177

  4. #24
    Erfahrener Benutzer Roboter Experte Avatar von ikarus_177
    Registriert seit
    31.12.2007
    Ort
    Grein
    Alter
    31
    Beiträge
    601
    Hallo,

    da ihr mich beim Bau meines ersten Roboters so tatkräftig unterstützt habt, möchte ich euch das Ergebnis meiner Bemühungen natürlich nicht vorenthalten.

    Ein kurzes Video findet ihr unter


    http://de.youtube.com/watch?v=SSTvQdfnAus

    Das Video zeigt ein einfaches Hinderniserkennungsprogramm, welches die Daten des US-Sensors auswertet. Der Sharp IR-Sensor wird derzeit noch nicht abgefragt.

    Der Bot ist in erster Linie als Experimentierplattform gedacht, um mich in die unendlichen Weiten der Robotik einzuführen. Da ich diesen Einstieg nach meiner Auffassung gut hingekriegt hab, ist nun schon ein weiteres Projekt in Planung, bei dem ich allerdings mehr selber anfertigen will (in erster Linie die Controllerboards), allerdings müssen dazu erst mal Sponsoren gefunden werden


    über Rückmeldungen/Kritik/Anregungen freut sich
    ikarus_177

  5. #25
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hallo ikarus_177,

    sieht ja gut aus!
    Wie funktioniert die Zusammenarbeit AVR - CC1? Hast du auf der CC1 das Original-Gateway_2.bas genommen oder etwas eigenes geschrieben? Wie sieht das Programm auf der RN-Control aus?

    Du siehst: Ich bin neugierig.

    Gruß Dirk

  6. #26
    Erfahrener Benutzer Roboter Experte Avatar von ikarus_177
    Registriert seit
    31.12.2007
    Ort
    Grein
    Alter
    31
    Beiträge
    601
    Hi Dirk,

    für die CC1 verwende ich folgenden (selbst geschriebenen \/) Code:

    Code:
    '--------------------------
    '------ 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 ---------
    define TX           port[7]
    define RX           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]
    '--------UART BYTE----------
    define status        byte[7]
    define ready         byte[8]
    '--------------------------
    '------ 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:
    RX=off:TX=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_HI 'Kein Interrupt, Power HI
    '------------ ANTRIEB -------------------------
    REV_L=on:REV_R=on:SYS PLM_SLOW
    '----------------------------------------------------------------------
    ' HAUPTPROGRAMM:
    
    #Main
    gosub LED1ON
    get status
    gosub LED2ON
    
    speed_L = 50
    speed_R = 50
    SYS FWD
    
    if (status = 0) then goto links
    if (status = 1) then goto rechts
    if (status = 2) then goto gerade
    
    goto main
    
    
    #links
          speed_L = 60
          speed_R = 60
          SYS ROTL
          pause 3
          goto Main
    
    #rechts
           speed_L = 60
           speed_R = 60
           SYS ROTR
           pause 3
           goto Main
    
    #gerade
           speed_L = 50
           speed_R = 50
           SYS FWD
           pause 3
           goto Main
    
    
    '---------------------------------------------------------------
    
    '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"


    ... der Code am RN-Control sieht so aus:




    Code:
    ' nötige Definitionen
    
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    
    
    Config Servos = 2 , Servo1 = Porta.0 , Servo2 = Porta.1 , Reload = 20
    Config Adc = Single , Prescaler = Auto
    
    Config Porta.0 = Output
    Config Pinc.6 = Output
    Config Pinc.7 = Output
    Config Pind.4 = Output
    'Ports für rechten Motor
    Config Pinb.0 = Output
    Config Pinb.1 = Output
    Config Pind.5 = Output
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
    Pwm1a = 0
    Pwm1b = 0
    Tccr1b = Tccr1b Or &H02
    
    Config Pina.2 = Input
    Config Pina.3 = Output
    Config Pina.4 = Input
    
    Portd.4 = 0
    
    
    
    Enable Interrupts
    
    
    ' Variablen definieren
    
    Dim I As Byte
    Dim Us As Byte
    Dim X As Byte
    Dim Status As Byte
    Dim Zeitmessung As Word
    Dim Entfernung As Word
    
    
    
    ' Hauptprogramm
    
    
    Do
    
    Gosub Usscan
    
    Loop
    
    End
    
    
    
    
    
    ' Unterprogramme
    
    Usscan:
        ' Scanschleife
        For I = 27 To 85
             Servo(1) = I
             Servo(2) = 50
    
             Pulseout Porta , 3 , 40
             Pulsein Zeitmessung , Pina , 4 , 1
             Zeitmessung = Zeitmessung * 10
             Entfernung = Zeitmessung / 58
    
             X = I
             If Entfernung < 40 And I < 50 Then
             Gosub Links
             End If
    
             If Entfernung < 40 And I > 50 Then
             Gosub Rechts
             End If
    
    
             If Entfernung > 40 Then Gosub Gerade
    
    
             Waitms 35
       Next
       Return
    
    
    Links:
       Status = 0
       Printbin Status
       Servo(1) = X
       Servo(2) = 50
       Waitms 50
       Return
    
    
    Rechts:
       Status = 1
       Printbin Status
       Servo(1) = X
       Servo(2) = 50
       Waitms 50
       Return
    
    
    Gerade:
       Status = 2
       Printbin Status
       Return


    Viele Grüße
    ikarus_177

  7. #27
    Neuer Benutzer Öfters hier
    Registriert seit
    19.04.2008
    Beiträge
    22
    Hallo ikarus_177,

    ich hätte da mal ne frage:
    Verwendest du für das RN-Control die akkus vom ccrp5 oder hast du eigene akkus?
    Wenn du die von ccrp5 verwendest dann sag pls welche pins.

    mfg robo-fighter

  8. #28
    Erfahrener Benutzer Roboter Experte Avatar von ikarus_177
    Registriert seit
    31.12.2007
    Ort
    Grein
    Alter
    31
    Beiträge
    601
    Hi,

    ich verwende die Spannung des CCRP5 (7,2V).

    Diese greife ich an Masse (ich glaube das ist Y0? Die einzelnen Pinnummern mit Bezeichnung findest du übrigens auch am Ende der Beschreibung vom CCRP5) und an Pin Y19 (ob diese Nummer stimmt, weiß ich nicht mehr so genau, auf jeden Fall ist es der vorletzte) ab.

    Genauer kann ich dir das erst am Wochenende schreiben, da ich dann wieder zu Hause bin (Wochentags in Steyr).


    Viele Grüße
    ikarus_177

  9. #29
    Neuer Benutzer Öfters hier
    Registriert seit
    19.04.2008
    Beiträge
    22
    Danke für die info!

    Gruß
    robo-fighter

  10. #30
    Erfahrener Benutzer Roboter Experte Avatar von ikarus_177
    Registriert seit
    31.12.2007
    Ort
    Grein
    Alter
    31
    Beiträge
    601
    Hi,

    hab noch mal nachgesehen wegen der Angaben, sie stimmen.

    Viele Grüße
    ikarus_177

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress