Projekte
BirgerT
nibo2_MyWorx
nibo2_tour.c
Projekte
Forum
Doku
Öffentliche Projekte
Startseite
Beispielprogramme
Projekte von anderen
Welcome
Username
Passwort
Eingeloggt bleiben
Zugangsdaten vergessen?
Registrieren
Projektverwaltung
⇨ Please choose! ⇦
——————————————————
✎ Create new project...
★ Browse existing projects...
——————————————————
⚬ MotorTest#1
⚬ C Tutorial 8#1
⚬ NIBO2 C Project#1
⚙ C Tutorial 15#1
⚬ 2010_11_18_el_test001#1
nibo2_MyWorx
liesmich.txt
main.c
nibo2_akku.c
nibo2_akku.h
nibo2_audio.c
nibo2_audio.h
nibo2_audio_titels.c
nibo2_globaldef.h
nibo2_parameter.c
nibo2_parameter.h
nibo2_sensors.c
nibo2_sensors.h
nibo2_timer2.c
nibo2_timer2.h
nibo2_tour.c
nibo2_tour.h
nibo2_xbmgfx.c
nibo2_xbmgfx.h
Studio6_m...x_hex.txt
Project details
Compiler settings
Nachrichten
Sie sind nicht eingeloggt.
Neuigkeiten
★
NiboRoboLib 3.6
2017-01-17: Neue Version 3.6
★
NiboRoboLib 3.4.1
2016-04-16: Neue Version 3.4.1
★
Coding Tutorial
2015-11-22: Jetzt auch für den NIBO burger!
Site-Statistic
7427 private projects
385 public projects
16181052 lines compiled
58220 builds
NIBO
@
nibo2_MyWorx/nibo2_tour.c [read only]
/****************************************************************** Nibo2 Tour - Vorgegebenes Fahrprogramm - BirgerT 14.07.2012 BSD License see "liesmich.txt" Ergänzungen am 11.05.2014 ******************************************************************/ #include "nibo2_tour.h" #define SPEED_1 30 #define SPEED_2 50 #define SPEED_3 60 #define SPEED_4 70 // Anzahl der TICKS für eine 360 Grad Drehung mit einem Rad #define KREISEN 262 // Anzahl der TICKS für 10cm Strecke #define FAHRE10 28 // damit die Tourtabelle hübscher aussieht ;-) #define STOPPEN 0 // Mit TARGET_OFFS wird der CoPro Regler "ausgetrickst": // Das Erreichen von copro_target_distance == 0 funktioniert nur sehr langsam, // und nicht selten nur, wenn der Nibo2 für den letzten fehlenden Tick angeschoben wird. #define TARGET_OFFS 2 int16_t tour1[] = {\ // Command/Speed, TargetL, TargetR, MAKEWORD(1,00), 0, 0, // ?? MAKEWORD(1,SPEED_3), -KREISEN/8, KREISEN/8, // LINKS TURN 90 GRAD MAKEWORD(1,SPEED_3), KREISEN/4, -KREISEN/4, // RECHTS TURN 180 GRAD MAKEWORD(1,SPEED_3), -KREISEN/8, KREISEN/8, // LINKS TURN 90 GRAD MAKEWORD(1,SPEED_2), 5*FAHRE10, 5*FAHRE10, // 5 x 10cm Vorwärts fahren MAKEWORD(1,SPEED_3), KREISEN/8, -KREISEN/8, // RRECHTS TURN 90 GRAD MAKEWORD(1,SPEED_3), -KREISEN/4, KREISEN/4, // LINKS TURN 180 GRAD MAKEWORD(1,SPEED_3), KREISEN/8, -KREISEN/8, // RECHTS TURN 90 GRAD MAKEWORD(1,SPEED_4), STOPPEN, KREISEN/2, // LINKS FLIP VOR 180 GRAD MAKEWORD(1,SPEED_4), 5*FAHRE10, 5*FAHRE10, // 5 x 10cm Vorwärts fahren MAKEWORD(1,SPEED_4), STOPPEN, KREISEN/2, // LINKS FLIP VOR 180 GRAD MAKEWORD(1,SPEED_3), -KREISEN, STOPPEN, // RECHTS FLIP ZUR 360 GRAD MAKEWORD(1,SPEED_3), STOPPEN, -KREISEN, // LINKS FLIP ZUR 360 GRAD MAKEWORD(0,0),0,0 , // ************ TOURENDE /* MAKEWORD(1,SPEED_2), -KREISEN/8, KREISEN/8, // LINKS TURN 90 GRAD MAKEWORD(1,SPEED_2), 3*FAHRE10, 3*FAHRE10, // 2 x 10cm Vorwärts fahren MAKEWORD(1,SPEED_2), -KREISEN/8, KREISEN/8, // LINKS TURN 90 GRAD MAKEWORD(1,SPEED_2), 3*FAHRE10, 3*FAHRE10, // 2 x 10cm Vorwärts fahren MAKEWORD(1,SPEED_2), -KREISEN/8, KREISEN/8, // LINKS TURN 90 GRAD MAKEWORD(1,SPEED_2), 3*FAHRE10, 3*FAHRE10, // 2 x 10cm Vorwärts fahren MAKEWORD(1,SPEED_2), -KREISEN/8, KREISEN/8, // LINKS TURN 90 GRAD MAKEWORD(1,SPEED_2), 5*KREISEN/8, -5*KREISEN/8, // LINKS TURN 90 GRAD MAKEWORD(1,SPEED_2), -4*FAHRE10, -4*FAHRE10, // 2 x 10cm Vorwärts fahren MAKEWORD(0,0),0,0 , // ************ TOURENDE MAKEWORD(1,SPEED_1), STOPPEN, KREISEN, // LINKS FLIP VOR 360 GRAD MAKEWORD(1,SPEED_1), KREISEN, STOPPEN, // RECHTS FLIP VOR 360 GRAD MAKEWORD(1,SPEED_2), STOPPEN, 2*KREISEN, // LINKS FLIP VOR 720 GRAD MAKEWORD(1,SPEED_2), 2*KREISEN, STOPPEN, // RECHTS FLIP VOR 720 GRAD MAKEWORD(1,SPEED_3), STOPPEN, -KREISEN, // LINKS FLIP ZUR 360 GRAD MAKEWORD(1,SPEED_3), -KREISEN, STOPPEN, // RECHTS FLIP ZUR 360 GRAD MAKEWORD(1,SPEED_3), STOPPEN, -2*KREISEN, // LINKS FLIP ZUR 720 GRAD MAKEWORD(1,SPEED_3), -2*KREISEN, STOPPEN, // RECHTS FLIP ZUR 720 GRAD MAKEWORD(1,SPEED_4), KREISEN/2, -KREISEN/2, // LINKS TURN 360 GRAD MAKEWORD(1,SPEED_4), -KREISEN/2, KREISEN/2, // RECHTS TURN 360 GRAD */ MAKEWORD(0,0),0,0 // ************ TOURENDE }; int16_t * tour_ptr = 0; uint8_t tour_play(int16_t * tour){ // Gesetztes Ziel erreicht? // if(copro_target_distance != 0) return(1); // if((copro_target_distance <= -TARGET_OFFS) && (copro_target_distance >= TARGET_OFFS) ) return(1); //18.05.2014 copro_target_distance ist ein uint16_t, also immer positv if(copro_target_distance >= TARGET_OFFS) return(1); // Tour neu oder fortsetzen if((tour_ptr == 0) && (tour != 0)){ // neue Tour tour_ptr = tour; } // Tour fortsetzen uint16_t Speed = *tour_ptr++; uint8_t Command = HIBYTE(Speed); if(Speed == 0) copro_stop(); // DREHPAUSE if(Command == 0) { // TOURENDE copro_stop(); tour_ptr = 0; return(0); } // uint16_t Speed maskieren und begrenzen auf max.80 // Mehr Speed verträgt der Nibo2 nicht, und die Motoren spinnen. // Vielleicht kommen da zuviele Impulse von der Odometrie ?! Speed &= 0x00ff; if(Speed > 89) Speed = 80; int16_t RelPosL = *tour_ptr++; int16_t RelPosR = *tour_ptr++; if (RelPosL > 0) RelPosL += TARGET_OFFS; if (RelPosL < 0) RelPosL -= TARGET_OFFS; if (RelPosR > 0) RelPosR += TARGET_OFFS; if (RelPosR < 0) RelPosR -= TARGET_OFFS; copro_setTargetRel(RelPosL,RelPosR,Speed); return(1); }
Compiler results:
Werbung
Online
Bogdancmd
bradlygoi441228704773
irvinschutt28551
josch
josettecostantino862
sashaserrano161
taracfj57630663