Archiv der Kategorie: Aktuelles

Der SR-F-500 IR

Die Arbeiten am SR-F-500 IR haben schon vor ein paar Wochen begonnen. Die Arbeiten mußten aber wegen Lieferengpässe der benötigten Bauteile unterbrochen werden. Inzwischen konnte der erste Prototyp weitestgehend fertiggestellt werden. Es fehlen nur noch die für die Steuerung der Arme benötigten Kettenglieder.

Der SR-F-500 IR basiert auf dem Daniele Benedettellis JohnNXT. Jedoch wurde der Tonsensor durch einen IR-Empfänger ersetzt, wodurch eine Steuerung über eine normale Lego-Fernbedienung möglich wird. Auch habe ich die größeren Lego-Technic-Ketten verwendet, sowie einige Anpassungen am Laser vorgenommen.

Aktuell erfolgt die Steuerung des SR-F-500 ausschließlich über den Master-NXT-Baustein, an dem die beiden Motoren für die Fortbewegung, der Motor für den Torso, sowie der IR-Empfänger angeschlossen ist. Über den Kanal 1 kann der Roboter vorwärts und rückwärts fahren (roter Hebel), sowie sich nach links und rechts drehen (blauer Hebel). Kanal 2 steuert den Torso (roter Hebel).

Der Code für SR-F-500_IR.nxc

#define IR_RECEIVER IN_1
#define DRIVE_CHANNEL 0
#define TORSO_CHANNEL 1

#define RIGHT_MOTOR OUT_B
#define LEFT_MOTOR OUT_C
#define BOTH_MOTORS OUT_BC

#define TORSO_MOTOR OUT_A

void ReadIRReceiver(byte channel, int &Red, int &Blue)
{
  int count;
  byte inI2Ccmd[];
  char outbuf[];

  if (channel > 3)
  {
    return;
  }

  // set the buffer to hold 2 values (initially all are zero)
  ArrayInit(inI2Ccmd, 0, 2);
  inI2Ccmd[0] = 0x02;
  inI2Ccmd[1] = 0x42+channel*2;

  //read count set to 8 bytes
  count = 2;

  //read the acceleration sensor on port 1
  I2CBytes(IR_RECEIVER, inI2Ccmd, count, outbuf);
  Red = outbuf[0];
  Blue = outbuf[1];
}

task main()
{
  int drive, steering;
  int torso, steering_torso_mode;
  SetSensorLowspeed(IR_RECEIVER);

  TextOut(0, LCD_LINE1, "Spitzohr Robotics");
  TextOut(4*6, LCD_LINE2, "SR-F-500 IR");

  while (true)
  {
    ReadIRReceiver(DRIVE_CHANNEL, drive, steering);
    ReadIRReceiver(TORSO_CHANNEL, torso, steering_torso_mode);
    if (steering == 0)
    {
      OnRev(BOTH_MOTORS, drive);
    }

    if (steering != 0)
    {
      OnRev(LEFT_MOTOR, steering);
      OnFwd(RIGHT_MOTOR, steering);
    }
    else if (steering_torso_mode != 0)
    {
      OnRev(LEFT_MOTOR, steering_torso_mode);
      OnFwd(RIGHT_MOTOR, steering_torso_mode);
    }

    OnRev(TORSO_MOTOR, torso);
  }
}
Veröffentlicht unter Aktuelles, Roboterfahrzeuge (SR-F) | Verschlagwortet mit , , , , , | Hinterlasse einen Kommentar

Roboterfahrzeug SR-F-010

Basierend auf den Konstruktionsplänen des Mindstorms NXT 2.0 wurde in unserem Labor ein Roboterfahrzeug vom Typ SR-F-010 gebaut.

Dieser Roboter wurde zusätzlich noch um einen Infrarotsensor der Firma HiTechnic ergänzt. Über den Sensor kann der Roboter jetzt mit Hilfe einer Fernbedinung gesteuert werden.

Der Roboter wurde komplett in NXC programmiert.

#define IR_RECEIVER IN_4
#define DRIVE_CHANNEL 0

#define RIGHT_MOTOR OUT_B
#define LEFT_MOTOR OUT_C
#define BOTH_MOTORS OUT_BC

void ReadIRReceiver(byte channel, int &Red, int &Blue)
{
  int count;
  byte inI2Ccmd[];
  char outbuf[];

  if (channel > 3)
  {
    return;
  }

  // set the buffer to hold 2 values (initially all are zero)
  ArrayInit(inI2Ccmd, 0, 2);
  inI2Ccmd[0] = 0x02;
  inI2Ccmd[1] = 0x42+channel*2;

  //read count set to 8 bytes
  count = 2;
  //read the acceleration sensor on port 1
  I2CBytes(IR_RECEIVER, inI2Ccmd, count, outbuf);

  Red = outbuf[0];
  Blue = outbuf[1];
}

task main()
{
  int drive, steering;
  SetSensorLowspeed(IR_RECEIVER);
  TextOut(0, LCD_LINE1, "Spitzohr Robotics");
  TextOut(4*6, LCD_LINE2, "SR-F-010");

  while (true)
  {
    ReadIRReceiver(DRIVE_CHANNEL, drive, steering);
    if (steering == 0)
    {
      OnFwd(BOTH_MOTORS, drive);
    }
    else
    {
      OnFwd(LEFT_MOTOR, steering);
      OnRev(RIGHT_MOTOR, steering);
    }
  }
}

Die Funktion ReadIRReceiver() wurde aus einem Beispielprogramm von HiTechnic abgeleitet.

Zur Steuerung des Roboters verwende ich die Fernbedienung aus dem Lego Set 8183.

Im nächsten Schritt wird der Roboter noch mit einer Kugelabschussvorrichtung ausgerüstet (Codename “Shooterbot”, SR-F-015). Zur Steuerung der Abschussvorrichtung wird Channel 2 verwendet. Dabei wird mit dem roten Controller die Kugel abgefeuert und der blaue Controller wird für die Drehung zuständig sein (entspricht der gleichen Funktion wie bei Channel 1).

Veröffentlicht unter Aktuelles, Roboterfahrzeuge (SR-F) | Verschlagwortet mit | 1 Kommentar

Die nächsten Roboter

In den nächsten Monaten werden bei Spitzohr Robotics vorallem Roboter von anderen Entwicklern nachbauen und die Feinheiten der ausgeklügelten Mechanik besser zu verstehen.

Neben den bereits vorgestellten Roboter Alpha Rex werden nun die weiteren Modelle des gleichen Entwicklers zusammengebaut und ausführlich getestet.

  • Roboterfahrzeuge (Shooterbot)
  • Tierroboter (RoboGator)
  • Maschinen (Farbsortierer)

Im Anschluss daran werden die Roboter von Daniele Benedettelli aufgebaut. Darunter auch der JohnNXT in einer leicht abgewandelten Form (da nicht alle benötigten Bauteile zur Verfügung stehen).

Veröffentlicht unter Aktuelles | Hinterlasse einen Kommentar