hi damaltor,
habe die 22er räder gegen die 8er gewechselt - das geht inzwischen wie beim ferrari team - die werte in der asuro.h wurden zunächst unverändert übernommen:
Code:
/* Tastaturabfrage */
/*! Faktor zur Berechnung der gedrueckten Tasten.\n
Der Originalwert ist \b 61L und koennten im Bereich zwischen ca. 58L und
65L schwanken. Dieser Wert gleicht Toleranzen der Wiederstaende an den
Tastern aus.
*/
//#define MY_SWITCH_VALUE 61L /*!< Multiplikator fuer Tasterwerte */
#define MY_SWITCH_VALUE 63L //20_08_2007
/* Odometrie / Encoder */
/*! Wert, der in der Odometrie ueberschritten werden muss, um zum
weiterzaehlen der Ticks in encoder[] zu fuehren bei aktivierter
Automatik\n
Die Originalwerte (links, rechts) sind \b 160.
Diese Werte sind sehr stark vom Umgebungslicht abhaengig.
Sie MUESSEN GROESSER als die Werte fuer MY_ODO_DARK_VALUE_L sein.
*/
//#define MY_ODO_LIGHT_VALUE_L 160 /*!< Encoderschwellwert fuer Hell (linke Seite) */
//#define MY_ODO_LIGHT_VALUE_L 97 //20.08.2007
#define MY_ODO_LIGHT_VALUE_L 105 //16.10.2007 - 8er räder
//#define MY_ODO_LIGHT_VALUE_L 76 //24.10.2007 - 22er räder
/*! Wert, der in der Odometrie unterschritten werden muss, um zum
weiterzaehlen der Ticks in encoder[] zu fuehren bei aktivierter
Automatik\n
Die Originalwerte (links, rechts) sind \b 140.
Diese Werte sind sehr stark vom Umgebungslicht abhaengig.
Sie MUESSEN KLEINER als die Werte fuer MY_ODO_LIGHT_VALUE_L sein.
*/
//#define MY_ODO_DARK_VALUE_L 140 /*!< Encoderschwellwert fuer Dunkel (linke Seite) */
//#define MY_ODO_DARK_VALUE_L 59 //20.08.2007
#define MY_ODO_DARK_VALUE_L 65 //16.10.2007 - 8er räder
//#define MY_ODO_DARK_VALUE_L 47 //24.10.2007 - 22er räder
/*! Wert, der in der Odometrie ueberschritten werden muss, um zum
weiterzaehlen der Ticks in encoder[] zu fuehren bei aktivierter
Automatik\n
Die Originalwerte (links, rechts) sind \b 160.
Diese Werte sind sehr stark vom Umgebungslicht abhaengig.
Sie MUESSEN GROESSER als die Werte fuer MY_ODO_DARK_VALUE_R sein.
*/
//#define MY_ODO_LIGHT_VALUE_R 160 /*!< Encoderschwellwert fuer Hell (rechte Seite) */
#define MY_ODO_LIGHT_VALUE_R 107 //16.10.2007 - 8er räder
//#define MY_ODO_LIGHT_VALUE_R 87 //24.10.2007 - 22er räder
/*! Wert, der in der Odometrie unterschritten werden muss, um zum
weiterzaehlen der Ticks in encoder[] zu fuehren bei aktivierter
Automatik\n
Die Originalwerte (links, rechts) sind \b 140.
Diese Werte sind sehr stark vom Umgebungslicht abhaengig.
Sie MUESSEN KLEINER als die Werte fuer MY_ODO_LIGHT_VALUE_R sein.
*/
//#define MY_ODO_DARK_VALUE_R 140 /*!< Encoderschwellwert fuer Dunkel (rechte Seite) */
#define MY_ODO_DARK_VALUE_R 66 //16.10.2007 - 8er räder
//#define MY_ODO_DARK_VALUE_R 55 //24.10.2007 - 22er räder
/* Werte für 12 Segmente Encoder */
/*! Faktor zur Berechnung von Ticks um aus den in mm angegebenen Parameter
umzurechnen.\n
Der Originalwert ist \b 19363L und ist von der Anzahl der schwarz/weiss
Teilstuecke auf den Odometriescheiben abhaengig.\n
Der Originalwert wurde durch stochri ermittelt.
*/
//#define MY_GO_ENC_COUNT_VALUE 19363L /*!< GO Funktion, Divisor fuer Entfernung */
#define MY_GO_ENC_COUNT_VALUE 15740L //20.08.2007 - 8er räder
//#define MY_GO_ENC_COUNT_VALUE 5723L //24.10.2007 - 22er räder
/*! Faktor zur Berechnung von Ticks um aus den in Grad angegebenen Parameter
umzurechnen.\n
Der Originalwert ist \b 177L und ist von der Anzahl der schwarz/weiss
Teilstuecke auf den Odometriescheiben abhaengig.\n
Der Originalwert wurde durch stochri ermittelt.
*/
//#define MY_TURN_ENC_COUNT_VALUE 177L /*!< Turn Funktion, Mutiplikator fuer Winkel */
//#define MY_TURN_ENC_COUNT_VALUE 197L //20.08.2007
//#define MY_TURN_ENC_COUNT_VALUE 210L //06.09.2007
#define MY_TURN_ENC_COUNT_VALUE 192 //16.10.2007 - 8er räder
//#define MY_TURN_ENC_COUNT_VALUE 350 //24.10.2007 - 22er räder
/* Werte zum ausgleichen unterschiedlicher Motoren */
/*! Differenzangabe zwischen den beiden Motoren.\n
Der angegeben Wert verteilt sich je zur Haelte auf die Vorgaben fuer die\n
Motorgeschwindigkeit.\n
Bei einem \n positiven Wert, wird der \n rechte Motor \b verstaerkt.\n
Bei einem \n negativen Wert, wird der \n linke Motor \b verstaerkt.
*/
#define MY_MOTOR_DIFF 0 /*!< 1/2 PLUS fuer Rechts, 1/2 MINUS fuer Links */
#endif /* MYASURO_H */
asuro dreht nicht.
ich habe das testprogramm etwas erweiter, die LED´s leuchten brav:
Code:
#include "asuro.h"
#include "inka.h"
int main (void)
{
Init();
WaitforStart();
EncoderInit ();
Go(100,100);
StatusLED(GREEN);
Msleep(500);
Turn(100,100);
StatusLED(RED);
Msleep(500);
Go(100,100);
StatusLED(GREEN);
Msleep(500);
Turn(-100,100);
StatusLED(RED);
Msleep(500);
Go(100,150);
StatusLED(GREEN);
Msleep(500);
Turn(100,150);
StatusLED(RED);
Msleep(500);
Go(100,150);
StatusLED(GREEN);
Msleep(500);
Turn(-100,150);
StatusLED(RED);
Msleep(500);
Go(100,200);
StatusLED(GREEN);
Msleep(500);
Turn(100,200);
StatusLED(RED);
Msleep(500);
Go(100,200);
StatusLED(GREEN);
Msleep(500);
Turn(-100,200);
StatusLED(RED);
Msleep(500);
return 0;
}
Dann veränderte ich die werte in die für 8er räder, asuro dreht...
Ich kann mich immer noch nicht des eindrucks erwehren dass es mit der interpretation des turn wertes in der myasuro.h zu tun hat...
Lesezeichen