Hallo,
Ich habe mir in Visual Basic 2008 ein kleines Programm geschrieben, welches mir ermöglicht die Positioswerte eines Joysticks zu ermitteln.
Ziel dieses Projekts ist es, dass man den RP6 mit einem Joystick über UART steuern kann. Das Visual Basic Programm funktioniert soweit,
aber bei dem Empfangen von Daten mit dem RP6 haperts noch.

Hier sind ein paar Download-Links:
Joystick.exe (Prototyp)
Joystick.exe (Quellcode)

Und hier der Code für den RP6:
Code:
#include "RP6RobotBaseLib.h" 

int main(void) 
{ 
   
   
   initRobotBase(); 
   powerON(); 
   void bewegdich() 
   {
    char receiveBuffer[5];  // <<-- da kommt der Text rein 
    uint16_t value[5];   // Array deklarieren   
    clearReceptionBuffer();   // Empfangspuffer leeren 
    
   uint8_t buffer_pos = 0;    
   while(buffer_pos < 4)    // Bis 4 Zeichen empfangen sind
    {
      if(getBufferLength())   // Sind neue Zeichen da? 
      {  
         setLEDs(0b111111);     
         receiveBuffer[buffer_pos] = readChar(); // Ein Zeichen lesen 
         value[buffer_pos] = atoi(receiveBuffer[buffer_pos]); //Zahlenwert in Array schreiben
         buffer_pos++;    // um eins erhöhen
      }                               
   } 
    uint8_t richtung = value[0] ;           // Variablen die empfangenen Werte zuweisen
	uint8_t geschwindigkeit = value[1];
    uint8_t r= value[2];
    uint8_t l= value[3];
	
	  if (richtung == 1 )
      {
	   changeDirection(FWD);
       moveAtSpeed(l*geschwindigkeit,r*geschwindigkeit);  
	  }
	  if (richtung == 2 )
      {
	   changeDirection(BWD);
       
	   moveAtSpeed(l*geschwindigkeit,r*geschwindigkeit);  
	  }
	  if (richtung == 3 )
      {
	   rotate(geschwindigkeit, LEFT, 30,true);
	  }
	  if (richtung == 4 )
      {
	   rotate(geschwindigkeit, RIGHT, 30,true);
	  }
	  
	  
   }
   
   while(true) 
   { 
   
   task_RP6System(); 
   bewegdich();
    
   }	  
   }
Jeder der einen Joystick hat kann das Programm ausprobieren. (Framework 3.5 erforderlich)
Vielleicht kann mirja auch jemand mit dem Code vom RP6 helfen.
Er zeigt mir zwar, dass er Daten empfängt (durch das blinken der LED´s), aber er fährt nicht.
Würde mich über Verbesserungsvorschläge freuen.