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