- Labornetzteil AliExpress    Werbung      
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 24

Thema: RP6 Terminal über PC ansprechen

  1. #11
    Benutzer Stammmitglied Avatar von Biohazardry
    Registriert seit
    09.02.2011
    Beiträge
    42
    Anzeige

    LiFePo4 Akku selber bauen - Video
    aso... den ausdruck "strcmp" hab ich nicht gefunden. Aber die while schleife macht ja genau das was ich brauche.

    Hab jetzt nur das Problem das er irgendwie nicht zwischen den eingaben unterscheidet...
    Code:
    #include "RP6BaseServoLib.h"
    #include "RP6RobotBaseLib.h"
    
    int8_t deltaX = 0;
    int8_t deltaY = 0;
    char receiveBuffer[UART_RECEIVE_BUFFER_SIZE];
    
    
    uint8_t test = 0;
    
    void getCMD(void)
    {
    	receiveBytesToBuffer(1, &receiveBuffer[0]);
    	
    	test = receiveBuffer[0] - 48;
    	
    	if(receiveBuffer[0] == '0')
    		{
    			deltaX = deltaX;deltaY = deltaY;
    		}
    	else if(receiveBuffer[0] == 'w')
    		{
    			deltaX++;
    		}
    	else if(receiveBuffer[0] == 's')
    		{
    			deltaX--;
    		}
    	else if(receiveBuffer[0] == 'a')
    		{
    			deltaY++;
    		}
    	else if(receiveBuffer[0] == 'd')
    		{
    			deltaY--;
    		}
    
    
    }
    
    int main(void)
    {
       initRobotBase();
       
       writeString_P("\n\n   _______________________\n");
       writeString_P("   \\| RP6  ROBOT SYSTEM |/\n");
       writeString_P("    \\_-_-_-_-_-_-_-_-_-_/\n\n");
    
       writeString_P("################\n");
       writeString_P("<<RP6     Base>>\n");
       writeString_P(" Servo - Test 1 \n");
       writeString_P("  Version 1.20  \n");
       writeString_P("################\n\n");
       mSleep(2500);
    
       setLEDs(0b111111);
       mSleep(500);
       powerON();
       
       initSERVO(SERVO1 | SERVO2);
    
         
       while(true) 
       {
       
       servo1_position = MIDDLE_POSITION+deltaX;
       servo2_position = MIDDLE_POSITION+deltaY;
    	
    	getCMD();
    	
          task_SERVO();
          task_RP6System();
    	  
    	  
       }
       return 0;
    }
    das test = receiveBuffer[0] - 48; hab ich der vollständigkeit halber übernommen.

  2. #12
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    41
    Beiträge
    1.516
    Hallo,

    > den ausdruck "strcmp" hab ich nicht gefunden

    Suchfunktion von Texteditor? Bild


    > das test = receiveBuffer[0] - 48; hab ich der
    > vollständigkeit halber übernommen.

    48 ist ASCII für 0 Bild
    Das ist nur für die Abfrage nach Zahlen von 0 bis 9 in dem switch case - brauchst Du also nicht.

    Hab leider keine Zeit deinen Code nachzuvollziehen / Fehler zu suchen da musst Du selbst testen woran das liegt.


    MfG,
    SlyD

  3. #13
    Benutzer Stammmitglied Avatar von Biohazardry
    Registriert seit
    09.02.2011
    Beiträge
    42
    tja die eingebaute suchfunktion findet leider nix...
    werde mich aber schon irgendwie durchschlagen...
    Thx SlyD

  4. #14
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    41
    Beiträge
    1.516
    > tja die eingebaute suchfunktion findet leider nix...

    Bild Die Anführungszeichen hast Du aber hoffentlich weggelassen...

    z.B. Zeile 1003

  5. #15
    Benutzer Stammmitglied Avatar von Biohazardry
    Registriert seit
    09.02.2011
    Beiträge
    42
    ja hab ich und bei zeile 1003 steht bei mir mSleep(500);.... hoffentlich reden wir beide von der gleichen datei Bild
    ich habe RP6Base_SELFTEST.c offen

  6. #16
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    41
    Beiträge
    1.516
    Vielleicht hast Du eine alte Version?
    Lad mal die aktuelle runter.

    Die stellen in dem Programm sind aber auch per durchscrollen und hinschauen sehr einfach zu finden - ein paar if-then-else konstrukte mit strcmp drin.

    Bild

  7. #17
    Benutzer Stammmitglied Avatar von Biohazardry
    Registriert seit
    09.02.2011
    Beiträge
    42
    Ok passt jetzt hab ich auch diese strcmp gefunden... dank der neuen version Bild
    Bisher hat das Programm immer blockiert wenn es auf eine neue eingabe gewartet hat... hoffentlich lässt sich das damit irgendwie lösen..

    Gruß Biohazard

  8. #18
    Neuer Benutzer
    Registriert seit
    13.07.2007
    Beiträge
    2

    RTS setzen mit Eigenschaftsknoten

    RTS kann man mit einem Eigenschaftsknoten jederzeit in LabVIEW setzen. Im Buch "Praxiseinstieg LabVIEW" ISBN 3772340393, ist auf Seite 192 ein Beispiel, wie man mit der RS232 Schnittstelle eine LED ansteuert. Ein, wie oben beschriebener Reset, müsste auf diese Weise möglich sein.

  9. #19
    Benutzer Stammmitglied Avatar von Biohazardry
    Registriert seit
    09.02.2011
    Beiträge
    42
    Thx fritzyyy für die antwort aber ich hab es ehh gewusst wie ich RTS auf Low/High setzten konnte Bild Toll zu sehen das auch noch andere mit LabView da draußen sind....
    Gruß Biohazard

  10. #20
    Benutzer Stammmitglied Avatar von Biohazardry
    Registriert seit
    09.02.2011
    Beiträge
    42
    So die Ansteuerung funktioniert mal fürs erste...
    http://www.youtube.com/watch?v=rOhR0VNoDxY

    Hab sie mit einer Webcam über Labview gesteuert... noch gibt es "Kinderkrankheiten" aber die werden auch noch gelöst: Der Servo wird nicht ständig gepulst sondern nur wenn das Programm einen Befehl sendet; Der Servoarm ist eigentlich nie mit seiner Position zufrieden, deshalb umkreist er die Soll-Position auch bei Stillstand des Lasers.

    Bin für Wünsche, Anregungen und Beschwerden offen Bild

    Gruß Biohazard

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

    Werbung      Solar Speicher und Akkus Tests