[infostudents] Re: HWP

  • From: "Mirko Friedrich" <mirkofriedrich@xxxxxx>
  • To: <infostudents@xxxxxxxxxxxxx>
  • Date: Fri, 22 Jun 2007 14:52:11 +0200

Hi,

glaube das Problem liegt daran das es bei dem Code dazu kommen kann das obwohl rightDir bzw leftDir false bzw true ist sich die Räder trotzdem noch in die "falsche" Richtung drehen solange der Wert von leftSpeed oder leftSpeed hoch genug ist um den Offset auszugleichen.

Um das zu korrigieren reicht es imho leftSpeed + Offset einfach jedes mal von den 175 abzuziehen bzw hinzuzuaddieren.

Hoffe ich habe nicht totalen Bullshit geschrieben :)

lg Mirko


----- Original Message ----- From: "Jonas Koenemann" <its-me@xxxxxxxxxxxx>
To: <infostudents@xxxxxxxxxxxxx>
Sent: Friday, June 22, 2007 2:11 PM
Subject: [infostudents] Re: HWP


danke !

hmm dann hatten wir doch eigentlich (fast) alles richtig, ich versteh
nicht warum der tutor schreibt  "denn so würdet ihr keine/kaum Punkte
bekommen" ...

Am 22.06.2007 um 13:59 schrieb Jendrik Seipp:

Hi Jonas,
habe die 1+2 (s.Anhang) mal etwas verändert, müsste so funktionieren, wenn eure Motoren genau so angeschlossen sind wie unsere. (räder drehen sich in unterschiedliche Richtungen, ist aber anscheinend so gewollt)
die 3 müsste so stimmen.

Gruß,
Jendrik


Jonas Koenemann wrote:
Hi,

wir haben wegen unserer kaputten Hardware vom Tutor noch Zeit bis heute bekommen, allerdings hat der Jere die Hardware und ist aufs Southside gefahren. Deswegen könnt ihr vielleicht mal unsere Abgabe anschauen, ob ihr Fehler entdeckt ? Unser Tutor meinte, wir würden auf die jetzige Abgabe kaum Punkte bekommen :( aber wir brauchen die Punkte dingend !

Danke
Grüße Jonas
// Einbinden der Javelin-Klassen.
import stamp.core.*;

public class Blatt5_1_und_2{


                static int leftSpeed = 175;
                static int rightSpeed = 175;


                static PWM ServoMotorL = new PWM(CPU.pin12,175,2304);
                static PWM ServoMotorR = new PWM(CPU.pin13,175,2304);

static void ServoControl(int Offset, boolean leftDir, boolean rightDir) {

                        if (leftDir) {
                                leftSpeed = leftSpeed + Offset;
                        }
                        else {
                                leftSpeed = leftSpeed - Offset;
                        }
                        if (rightDir) {
                                leftSpeed = rightSpeed - Offset;
                        }
                        else {
                                leftSpeed = rightSpeed + Offset;
                        }
                        ServoMotorL.update(leftSpeed,2304);
                        ServoMotorR.update(rightSpeed,2304);

                }



        // Hauptroutine.
        public static void main(){


                ServoControl(5,true,true);       // gerade aus
                CPU.delay(1500);
                ServoControl(5,false,false);     // halte an
                CPU.delay(1500);
                ServoControl(5,false,true);      // Drehung
                CPU.delay(1500);
                ServoControl(5,true,false);      // halte an
                CPU.delay(1500);
                ServoControl(5,true,true);       // gerade aus
                CPU.delay(1500);
                ServoControl(5,false,false);     // halte an
                CPU.delay(1500);
                }
}



Other related posts: