- LiFePO4 Speicher Test         
Ergebnis 1 bis 4 von 4

Thema: RP6 mit M32 mit kleinem Greiferumbau und Problemen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    RP6 mit M32 mit kleinem Greiferumbau und Problemen

    Hallo an alle
    Als Frischling habe ich ein paar Probleme was mein Projekt angeht. Es sieht wie folgt aus:

    Ich habe den RP6v2 mit der Erweiterung M32 und dem Display darauf versehen. Habe vorn auf dem RP6 einen Greifer der über 3 Servos realisiert ist aufgebaut. Dazu noch einen Sharp 2D120X mit kleiner Elektronik zu stabiliserung der Spannungen. 2 Servos für die beiden Greiferarme links und rechts und einen für das heben und senken des kompletten Arms. Sinn sollte sein, den kompletten Arm nach unten zu fahren, eine Dose oder Flasche zu greifen über die beiden Servos und über den 3. Servo die Flasche nach oben zu transportieren und hinten auf dem RP6 in ein Behälter fallen zu lassen.

    Die Servos sind über eine Platine auf I/O Ports des M32, PC2-PC4. Den Sharp Sensor auf ADC 7.

    Ich habe 2 Programme geschrieben um einfach zu testen ob dies passt. Die Funktion des Greifens und der Ablauf, passt perfekt. Wie auch die Auswertung des Sensors und Anzeige auf dem Display eines Wertes wie weit der Gegenstand weg ist. Dazu habe ich ein kleines Programm geschrieben um zu sehen wie der Robby per Fernbedienung läuft. Dies passt auch inkl. allen Bewegungen. Was I²C betrifft, da blick ich im Moment gar nicht durch auch was die Beispielprogramme angeht wie ich am besten Master-Slave herrichte und dann das Programm verschachteln muss.

    Nun habe ich zuerst mal 2 Fragen:

    1. Wie bekomme ich am besten das Signal des RC5, also der Auswertung des IR-Sensors auf das M32? Da steh ich auch was I²C angeht komplett danabene.
    2. Wenn ich die Base als Slave nutze, muss ich auch ein Programm schreiben für den M32 um die Servos der Base anzutreiben oder?


    Entschuldigt die Anfängerfragen, aber ich steh grad bei der I²C Verschachtelung und verbindung der einzelnen Programm ordentlcih daneben.
    Danke euch schonmal vorab.
    LG Marcel

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi Marcel,

    zu 1:
    - Auf der RP6v2 Base würde dann das I2C-Slave-Programm (RP6Base_I2CSlave.c) laufen.

    zu 2:
    - Dein Programm auf der M32 müßte dann die I2C-Master-Lib (RP6I2CmasterTWI) einbinden.
    - Der Aufbau kann so etwa wie im Beispiel RP6Control_06_I2CMaster.c aussehen,- enthält also mindestens:
    Code:
    #include "RP6ControlLib.h"
    #include "RP6I2CmasterTWI.h"
    #define I2C_RP6_BASE_ADR 10
    
    void I2C_transmissionError(uint8_t errorState)
    {
        writeString_P("\nI2C ERROR - TWI STATE: 0x");
        writeInteger(errorState, HEX);
        writeChar('\n');
    }
    
    
    int main(void)
    {
        initRP6Control();
        initLCD();               
    
        I2CTWI_initMaster(100);                            
        I2CTWI_setTransmissionErrorHandler(I2C_transmissionError);
    
        while(true) 
        { // ... Dein Hauptprogramm
        }
    }
    Gruß
    Dirk

  3. #3
    Danke vorab Dirk
    Noch was kleines, wie rufe ich jetzt z.B. Auf dem M32 die Daten der Base für meinen IR-Enpfänger ab um ihn mit einer Fernbedienung zu bedienen? Und muss ich die Ansteuerung der Servos vom Antrieb jetzt über das M32 machen?
    Ich hab ein paar Probleme mit dem Verständnis was hier das ziehen der Daten von der Base aufs M32 angeht.

    LG
    Geändert von spriti1988md (07.07.2014 um 17:49 Uhr)

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

    Hier ein Beispiel für das Abfragen der RC5-Werte:
    Code:
    #define I2C_REG_RC5_ADR              27
    uint8_t readBuf[3];
    
    // ...
    
        I2CTWI_transmitByte(I2C_RP6_BASE_ADR, I2C_REG_RC5_ADR);
        I2CTWI_readBytes(I2C_RP6_BASE_ADR, readBuf, 2);
        uint16_t rc5data;
        rc5data = (readBuf[0] << 6) | (readBuf[1]);
    Und muss ich die Ansteuerung der Servos vom Antrieb jetzt über das M32 machen?
    Meinst du die Ansteuerung der Motoren des RP6v2?
    Wenn ja: Ja, das must du jetzt von der M32 (als I2C-Master) aus machen.
    Gruß
    Dirk

Ähnliche Themen

  1. Verkaufe RP 6 Roboter mit RP6 Control M32 und allerhand Zubehör
    Von andij84 im Forum Kaufen, Verkaufen, Tauschen, Suchen
    Antworten: 5
    Letzter Beitrag: 17.01.2014, 18:16
  2. Verkaufe RP6 mit M32
    Von Morpheus1997 im Forum Kaufen, Verkaufen, Tauschen, Suchen
    Antworten: 5
    Letzter Beitrag: 05.02.2013, 10:16
  3. Antworten: 5
    Letzter Beitrag: 15.03.2012, 17:03
  4. RP6 Probleme mit M32 Erweiterunsplatine
    Von fulltime im Forum Robby RP6
    Antworten: 4
    Letzter Beitrag: 16.10.2011, 15:16
  5. RP6 mit m32 steuern
    Von Momo2712 im Forum Robby RP6
    Antworten: 32
    Letzter Beitrag: 23.01.2011, 12:25

Berechtigungen

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

Labornetzteil AliExpress