Hallo,

im Rahmen eines Unterrichtsprojektes sollen wir einen Asuro-Roboter zusammenbauen und ein Linienlaufprogramm erstellen.

Natürlich kann man da einfach den Quelltext von irgendwoher aus dem Internet kopieren, aber es soll ja auch ein bisschen eigene Leistung dahinterstecken

Nun ja, der Quelltext ist wie folgt:
PS: Es wird die Asuro Lib von Sourceforge verwendet (SVN)

Code:
#include <asuro.h>
void GoLeft(void)
{
        SetMotorPower (0, 70);
        BackLED (ON, OFF);
        StatusLED(YELLOW);
}
void GoRight(void)
{
        SetMotorPower (70, 0);
        BackLED (OFF, ON);
        StatusLED(YELLOW);
}
void GoStraight(void)
{
        SetMotorPower (70, 70);
        BackLED (OFF, OFF);
        StatusLED (GREEN);
}

int main (void)
{
    Init();
    // Benoetigt fuer Linienfahrt
    // Enthaelt Helligkeitsdaten
    unsigned int lData[2];
    int InitOffset;
    int diff;
    // Spasseshallber lassen wir die gruene LED leuchten
    // "Betriebsbereitschaft"
    StatusLED (GREEN);

    // "Tischbeleuchtung"
    FrontLED (ON);
    LineData (lData);
    InitOffset = lData [0] - lData [1];
    // Vor Losfahren warten [ms]
    Msleep (750);

    //Endlosschleife ...
    while (1)
        {
         LineData (lData); // aktuelle Helligkeitswerte der
        // Fototransistoren einlesen

       diff = (lData [0] - lData [1]) - InitOffset;
       if (diff < -5)
      {
              GoLeft();
      }

      else if (diff > 5)
     {
            GoRight();
      }
/* else{  GoStraight();} */

     }

  while (1);
    return 0;
}
Nunja...
Nach dem Einschalten schaltet der Roboter die Front-LED ein, wartet und fängt dann an im Kreis zu laufen (beide Back-LEDs scheinen zu leuchten, vll blinkt eine nur sehr schnell...)

Wenn ich nun ein weißes Blatt mit einer schwarzen Linie unterschiebe ... passiert nichts. Verschiedene Winkel wurden versucht, ohne Erfolg.

Das Komische: Vor den Ferien hat das Programm noch funktioniert... Nun geht es nicht mehr (ich habe soweit ich weiß auch nichts verändert).

An den Motoren liegt es jedenfalls nicht, ich hab ein kurzes Testprogramm geschrieben, dass den Roboter erst geradeaus, dann links, dann geradeaus, dann rechts und dann nochmal geradeaus fahren lässt... hat geklappt.

Woran könnte es noch liegen? Ein anderer aus der Gruppe meinte, die Kondensatoren müssten entladen werden...

Allerdings frage ich mich, ob es daran liegen könnte, dass der Asuro keine Isolierung um die Helligkeitssensoren hat....

Wäre froh, wenn mir jemand mitteilen könnte, ob ich Mist programmiert habe oder ob es an der Hardware liegt