Hi
Ich hab mir vor kurzem den NiboBee gekauft und haben nun versucht ihm beizubringen genau kurven zu fahren.
Meine Vorgehensweise:
-Programm geschrieben welches ein Rad um eine Umdrehung dreht,(mit Odometriesensoren)
-Winkel gemessen
-in Odometrieschritte umgerechnet
Dabei kam raus:
Eine radumdrehung entspricht 55° und 19 "Odometrieschritten"
Alle bisauf 45° gerundet:
45°=15.5 (15 oder 16)
90°=31
180°=62
225°=78
270°=93
315°=109
360°=124
Bei höreren Geschwindigkeiten gilt dies nicht weil die Reifen ersteinmal durchdrehen.
Mein code Dazu
Ich denke der Code ist selbserklärendCode:#include <nibobee/motpwm.h> #include <nibobee/delay.h> #include <nibobee/led.h> #include <nibobee/odometry.h> #define right 1 #define left 2 void dreh(uint8_t side,uint8_t steps) { odometry_reset(); switch(side) { case left: for (; odometry_getLeft(0)<steps; ) { motpwm_setLeft(300); } break; case right: for (steps=steps-1; odometry_getRight(0)<steps; ) { motpwm_setRight(300); } break; } motpwm_stop(); } int main() { motpwm_init(); odometry_init(); sens_init(); while(1==1) { enable_interrupts(); delay(1000); dreh(left,124); delay(1000); dreh(right,124); } return(0); }
Marlon
PS:Ich denke dass Kann man auch wunderbar in die Libarys einbauen, was mein ihr







Zitieren

Lesezeichen