Hallo elektrolutz
"die "Doppellichtschranke" an der Locherkennung dient zur Ermittelung der Drehrichtung des Rades und sollte auch nur als ein Zähl-Impuls ausgewertet werden." - Was nützt mir das, wenn die Fkt copro_set Speed(20,20) nicht das macht, was in der Doku steht?
In der Doku der aktuellen NiboLib (und auch in der vorherigen) steht:
uint8_t copro_setSpeed(int16_t left, int16_t right)
Geschwindigkeit für die beiden Motoren setzen. Die Werte werden in Ticks/Sekunde angegeben. 40 Ticks entsprechen einer Radumdrehung. Beispiel:
// mit 29 Ticks/s (=10cm/s) vorwärts fahren
copro_setSpeed(29, 29);
Parameter:
left Sollwert für linkes Rad
right Sollwert für rechets Rad
so, und das heißt für mich, daß der NIBO bei (20,20) mit einer Geschwindigkeit von
7cm/sek fahren soll => bei einer Fahrzeit von
3 sek sind das
21cm;
=> bei mir fährt er aber
42 cm in 3 sek; dies entspricht auch 120 Ticks, die ich auch messe und nicht 60 Ticks (3 sek* 20Ticks/sek), die er machen sollte..
Mach doch selbst mal den Test mit copro_setSpeed(20,20) und lass ihn 3 sek lang fahren und messe:
- die Fahrzeit
- die Ticks
- die gefahrene Strecke...
und berichte über Deine Ergebnisse!
In der Doku steht auch:
int16_t copro_ticks_l
Aktuelle Inkrements des linken Rades in Ticks, 40 Ticks entsprechen einer Radumdrehung.
Ich lasse mir die Ticks anzeigen - nach 3 sek sind es 120 Ticks = 3 Radumdrehungen = ca 42cm (1 Radumdrehung =ca 13,78cm)
Das mag ja mit der Locherkennung zu tun haben - dann ist aber die Funktion copro_setSpeed(20,20) falsch, denn er fährt ja nicht 20Ticks/sek = 7cm/sek, sondern 40 Ticks/sek, denn sonst würde er nach 3 sek nur 21cm weit gefahren sein und nicht 42...
und hierzu möchte ich eine Stellungnahme von workwind, denn m.E. ist da bei der Doku der Lib was falsch beschrieben, und das sollte nicht sein!
Egon