Fehlerhafte Ansteuerung der Motoren?

Die Mechanik/Elektronik des c't-Bot

Moderator: Moderatoren Team

Fehlerhafte Ansteuerung der Motoren?

Beitragvon tobias » 12. Jan 2008, 01:31

Hallo Experten,
ich habe den Bot erfolgreich zusammen gelötet.
Er scheint leider nicht völlig io zu sein.
Das Testprogramm ct-Bot-test-motor.hex
dreht den Bot nur kurz (keine ganze drehung) im Uhrzeigersinn,
dann setzt er ruckartig zurück und ist fertig.
Die Drehung in die andere Richtung fehlt völlig.
Die Sensorenwerte auf dem Display reagieren weitest gehend korrekt.
Nur F = 1 für Fehler sieht unschön aus. Sollte wohl auch auf 0 stehen oder?
Ich habe auch schon ein eigenens Progamm kompiliert und mit AVR Studio 4 auf den Bot gebracht.
Hier sollte der Bot ein Quadrat abfahren. Macht er auch nicht.
Fährt erst gerade und dann volle pulle zurück. Obwohl die Werte für die Motorsteuerung noch gerade aus
anzeigen (lasse ich mir auf dem Display ausgeben).
Ich vermute meine Lötkünste waren doch nicht so gut.
Hat irgend jemand eine Idee, wie ich dem Problem auf die schliche kommen kann?
Für jede Hilfe schon einmal vielen Dank im voraus,
Tobias
tobias
Friends of Marvin
Friends of Marvin
 
Beiträge: 10
Registriert: 12. Jan 2008, 01:08

Beitragvon marvin » 12. Jan 2008, 19:42

Hallo Tobias,

das Verhalten ist ganz normal. Ich denke da liegt kein Hardware Problem vor. Das der ct-bot rückwärts fährt, liegt an den Abgrundsensoren. Die erkennen einen Abgrund (dunkler Untergrund) und deshalb wird das Ausweichverhalten aktiviert.
Du kannst das Verhalten in der Datei available_behaviours.h auskommentieren.
Code: Alles auswählen
 
// #define BEHAVIOUR_AVOID_BORDER_AVAILABLE   /*!< Abgruenden ausweichen vorhanden? */


Das F für Fehler ist auch normal. Solange kein Servo für die Klappe existiert.

Gruß marvin
marvin
Wiki Master
Wiki Master
 
Beiträge: 432
Registriert: 18. Jan 2006, 17:21
Wohnort: Berlin

Beitragvon tobias » 13. Jan 2008, 00:55

Hallo Marvin,
danke für die Hilfe. Habe ich sofort ausprobiert. Leider ohne Erfolg.
Bei dem Programm das ein Rechteck abfahren soll. Habe ich
#define BEHAVIOUR_AVOID_BORDER_AVAILABLE
auskommentiert. Der Bot zeigt das gleiche Verhalten nach ca 50 cm vorwärts
mit halber Kraft dreht er durch und fährt mit voller Kraft rückwärts. Er weicht nicht vorsichtig einer Kante aus. Das sieht anders aus (habe ich schon mal ausprobiert). Außerdem lasse ich mir die Übergabeparameter aus der funktion void motor_set(int16 left, int16 right) in der Datei motor.c auf dem display mit :
display_clear();
display_cursor(1,1);
display_printf("in moterset:");
display_cursor(2,1);
display_printf("mleft=%03d mright=%03d",left,right);
delay(100);

ausgeben. Sowohl bei der Vorwärtsfahrt mit halber Geschwindigkeit
(Hauptschleifendurchgang 1) als auch bei Rückwärtfahrt mit voller
Geschwindigkeit (geschieht im Hauptschleifendurchgang 3) wird die Funktion
moterset mit 049, 049 aufgerufen.
Hast Du noch eine andere Idee woran das liegen kann?
tobias
Friends of Marvin
Friends of Marvin
 
Beiträge: 10
Registriert: 12. Jan 2008, 01:08

Beitragvon eax » 14. Jan 2008, 12:00

Hi Tobias,

welche Codeversion verwendest du denn?
Von den Testprogrammen gibt es eine relativ neue Version unter http://www.heise.de/ct/projekte/machmit/ctbot/browser/ziped-releases/test-binaries.zip, ist das damit auch so?

Gruß Timo
eax
Friends of Robby
Friends of Robby
 
Beiträge: 747
Registriert: 18. Jan 2006, 17:16
Wohnort: Karlsruhe

Beitragvon tobias » 15. Jan 2008, 00:46

Hallo Timo,
vielen Dank, der Tip war super. mit dieser Version von ct-Bot-test-motor.hex
dreht der bot in beide Richtungen. Komischer Weise reagieren die Distanzsensoren nun nicht mehr. Die hatten mit der Vorversion mehr schlecht als recht funktioniert, nachdem ich die Verbindung zwischen der Platine der Radensensoren und dem Träger mit einer Plastikfolie unterbrochen hatte.
Habe beide Versionen gerade noch einmal ausprobiert.
Alte Version: Bot dreht nicht aber die Distanzsensoren funktionieren.
Neue Version: Bot dreht aber die Distanzsensoren zeigen nur 999.
Ich werde mir trotzdem ersteinmal den neuesten Quellcode holen.
Vielleicht komme ich damit ja weiter.
Hast Du noch einen Tip zu den Distanzsensoren ?
Alle anderen Sensoren reagieren (Display reagiert). Nur F = 1 finde ich nach wie vor irritierend (Bot hat auch eine Transportklappe und Servo)
Vielen Dank für die Tips
Tobias
tobias
Friends of Marvin
Friends of Marvin
 
Beiträge: 10
Registriert: 12. Jan 2008, 01:08

Beitragvon eax » 15. Jan 2008, 16:09

Hi Tobias,

die Distanzsensoren müssen bei den neueren Code-Version erst kalibriert werden. Näheres dazu steht in dieser Anleitung unter Inbetriebnahme oder ist dort verlinkt: http://www.heise.de/ct/projekte/machmit/ctbot/wiki/FirstSteps

F=1 bedeutet "alles OK", F=0 bedeutet, dass entweder die Akkus (fast) leer sind, oder der Servo zu viel Strom zieht (falls er gerade aktiv sein sollte). Somit ist hier alles bestens.

Gruß Timo
eax
Friends of Robby
Friends of Robby
 
Beiträge: 747
Registriert: 18. Jan 2006, 17:16
Wohnort: Karlsruhe

Beitragvon tobias » 17. Jan 2008, 22:03

Hallo Timo,
wie das funktioniert muß ich mir erst einmal in Ruhe anschauen. Für alle die ähnliche Probleme haben: das eigens kompilierte Testprogramm, das den Bot in beide Richtungen drehen soll, funktioniert bei mir nur mit dem Übersetzten Quellcode aus https://www.heise.de:444/svn/ctbot/devel/. Die Stable-version funktionierte nicht.
Vielen Dank für Eure Hilfe,
Tobias
tobias
Friends of Marvin
Friends of Marvin
 
Beiträge: 10
Registriert: 12. Jan 2008, 01:08


Zurück zu Mechanik/Elektronik

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron