- Akku Tests und Balkonkraftwerk Speicher    Werbung      
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 24

Thema: RP6 Terminal über PC ansprechen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    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.

  2. #2
    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

  3. #3
    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

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    35
    Beiträge
    522
    Sieht doch schon mal nicht schlecht aus.

    Das ständige Hin- und Herwackeln kommt wegen der Verzögerung der Webcam. Ich würde das einfach so machen, dass das Servo überhaupt nicht bewegt wird, wenn sich der Laserpunkt innerhalb eines bestimmten Umkreises vom Mittelpunkt befindet, z.B. 5% des Bildes.

    Kenn mich mit der Lib des RP6 nicht aus, aber man kann doch bestimmt auch abfragen, ob überhaut ein Zeichen empfangen wurde oder nicht. Damit könnte verhindern, dass das Programm beim warten auf neue Zeichen blockiert, und das Servo ständig mit Impulsen versorgen.

    MfG Mark

  5. #5
    Benutzer Stammmitglied Avatar von Biohazardry
    Registriert seit
    09.02.2011
    Beiträge
    42
    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.

  6. #6
    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

  7. #7
    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

  8. #8
    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

  9. #9
    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

  10. #10
    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  

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

    Werbung      LiFePO4 Speicher Test