- 3D-Druck Einstieg und Tipps         
Seite 1 von 6 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 55

Thema: C# Kommunikation zwischen RP6 und Computer

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.03.2010
    Beiträge
    205

    C# Kommunikation zwischen RP6 und Computer

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo an alle,
    Ich würde gerne wissen, wie ich eine Datenübertragung zwischen dem RP6 und meinem Computer mithilfe des USB-Interfaces herstellen kann. Ich würde das gerne in Visual C# realisieren.

    Ziel soll es sie, dass man einen Button licken kann und daraufhin wird ein Befehl vom Computer zum RP6 gesendet. Der RP6 lässt, nachdem er den Befehl empfangen hat seine LEDs aufleuchten.
    Vielleicht gibt es schon Leute die mehr Erfahrung damit haben als ich. Dann bitte den minimal C#-Code zur initialisierung und senden eines Wortes posten. Oder irgendwelche Vorschläge.

    Danke!
    Nichts existiert durch sich allein!
    Bild hier  

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.04.2009
    Beiträge
    523
    Ähm, du hast doch die ganze Zeit auf mein Projekt verwiesen in deinen Beiträgen...
    Bei mir ist alles in C# geschrieben...
    Schau dir einfach mal im Projekt die Datei "RP6PortWrapper.cs" an.
    Du kannst aber auch mal bei Google nach "C#" und "Serial Port" suchen.
    Da solltest du was finden.

    Vom Prinzip her:
    Code:
    //Init
    Port = new SerialPort(portName, baudRate, Parity.None, 8, StopBits.One);
    //Öffnen
    Port.Open();
    //Senden
    Port.Write(str);
    //Empfangen
    string received = Port.ReadExisting();
    //Schließen
    Port.Close();

  3. #3
    shedepe
    Gast
    Du verwendest einfach die Serialportklasse im Namespace System.IO.Ports, die hat zwar die ein oder andere Macke funktioniert aber ansich ganz gut.

    Wie die verwendet wird hat bereits Fabian E. ganz gut beschrieben. Eventuell braucht du noch das SerialPort.DataRecieved Event.

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.03.2010
    Beiträge
    205
    Danke erst mal für deine Antwort.
    Das Minimalprogramm (eine Form und ein Button zum senden) ist jetzt fertig und es treten keine Errors auf.)
    Nun ist die Frage, wie kann ich mit dem RP6 das gesendete Datenwort auslesen? Kann ich dafür die Standart RP6-lib benutzten? Aus deinen Programmcodes werde ich nicht so richtig schlau. Könntest du bitte wieder nur das minimale posten. Wäre wirklich super.
    Code:
    private void button1_Click(object sender, EventArgs e)
            {
                SerialPort port = new SerialPort("com1", 9600, Parity.None, 8, StopBits.One);
                MessageBox.Show("connecting......");
                port.Open();
                port.Write("connect");
            }
    Nichts existiert durch sich allein!
    Bild hier  

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.04.2009
    Beiträge
    523
    Dazu kannst du doch einfach mal in die Anleitung gucken. Dort steht, wie man Daten von UART liest.

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.03.2010
    Beiträge
    205
    Die anleitung vom RP6 oder vom Mega 32?
    Nichts existiert durch sich allein!
    Bild hier  

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.04.2009
    Beiträge
    523
    Beides, wenn du aber auf der M32 auslesen willst musst du natürlich in die anleitung gucken

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.03.2010
    Beiträge
    205
    Ok,
    jetzt habe ich ein Programm was mir anzeigt, wenn "connect" gesendet wird. Es funktioniert auch, weil wenn ich im Terminal connect eingebe und dann Enter drücke leuchten die LEDs auf. Doch meine Form funktioniert noch nicht einwandfrei. Die LEDs blinken nicht wenn ich auf Button1 klicke sondern erst wenn ich Die MSGBox bestätige.
    Hast du eine Ahnung woran das liegen könnte?
    Nichts existiert durch sich allein!
    Bild hier  

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.03.2010
    Beiträge
    205
    Code:
    #include "RP6RobotBaseLib.h" 
    
    int main(void) 
    { 
       initRobotBase(); 
       char receiveBuffer[7]; 
       while(true) 
       { 
          receiveBytes(7); 
          waitUntilReceptionComplete(); 
          copyReceivedBytesToBuffer(&receiveBuffer[0]); 
          if(strcmp(receiveBuffer,"connect")) 
          { 
             setLEDs(0b111111); 
          } 
       } 
    }
    hätte ich fast vergessen!
    Nichts existiert durch sich allein!
    Bild hier  

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.04.2009
    Beiträge
    523
    Naja dafür brauche ich schon den C# Code

Seite 1 von 6 123 ... LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests