sitemap link mailform link home

RobotC

Ein einfaches Testprogramm für die wichtigsten Komponenten:

S1 Ultraschallsensor

S2 Color-Sensor

#pragma config(Sensor, S1,     sonar,          sensorEV3_Ultrasonic)
#pragma config(Sensor, S2,     colour,         sensorEV3_Color, modeEV3Color_Color)
//*!!Code automatically generated by 'ROBOTC' configuration wizard               !!*//

task main()
{
    displayBigTextLine(1, "Testprogramm");
    delay(2000);
    displayBigTextLine(3, "PlayTone");
    delay(1000);
    // Achtung: -> playTone(Tonhöhe, 10x(Länge in ms))
    playTone(261, 30);
    delay(400);
    playTone(293, 30);
    delay(400);
    playTone(330, 30);
    delay(1000);
  displayBigTextLine(5, "Rotation A + D");
  delay(1000);
  moveMotorTarget(motorA, 1000, 80);
  moveMotorTarget(motorD, 1000, 80);
  delay(3000);
  displayBigTextLine(7, "Reverse A + D");
  delay(1000);
  moveMotorTarget(motorA, 1000, -80);
  moveMotorTarget(motorD, 1000, -80);
  delay(3000);
  while(true)
      {
          int Abstand = SensorValue[sonar]; // Sensor auslesen
          displayBigTextLine(9, "Abst: %3d cm", Abstand);
          int Color = SensorValue[colour];
          displayBigTextLine(11, "Color: %6d Raw", Color);
          switch(Color)
                 {
                     case 0: displayCenteredBigTextLine(4, "keine"); break;
                     case 1: displayCenteredBigTextLine(4, "schwarz"); break;
                     case 2: displayCenteredBigTextLine(4, "blau"); break;
                     case 3: displayCenteredBigTextLine(4, "gruen"); break;
                     case 4: displayCenteredBigTextLine(4, "gelb"); break;
                     case 5: displayCenteredBigTextLine(4, "rot"); break;
                     case 6: displayCenteredBigTextLine(4, "weiss"); break;
                     case 7: displayCenteredBigTextLine(4, "braun"); break;
                     default: displayCenteredBigTextLine(4, "unbekannt");
                 }
            delay(100);

        }
}

Quadrat fahren:

task main()

{

for(int i=0; i<5; i++)
    {
    setMotorSpeed(motorA, 50); // Motor A mit 50 %
     setMotorSpeed(motorD, 50);
     delay(2000);
     setMotorSpeed(motorA, 0); // Motor A und D mit 0 %
     setMotorSpeed(motorD, 0);
     delay(500);
     moveMotorTarget(motorA, 720, 50);
     moveMotorTarget(motorD, 720, -50);
     delay(1000);
     setMotorSpeed(motorA, 0); // Motor A und D mit 0 %
     setMotorSpeed(motorD, 0);
     delay(500);
     }
}

Musik aus Arrays abspielen:

// Musik mit dem EV3
// Autor: Niels Nikolaisen

// Definieren der Noten und Tonlängen:
#define C4 262
#define D4 294
#define E4 330
#define F4 349
#define G4 392
#define A4 440
#define H4 494
#define C5 523
#define ACHTEL 50
#define PAUSE 100

// Noten und Tonlängen stecken in Arrays:
int Tonarray[] = {C4, D4, E4, F4};
int Tonlaenge[] = {ACHTEL, ACHTEL, 2*ACHTEL, 2*ACHTEL};

task main()
{
    displayBigTextLine(1, "Musik!");
    // Die "4" ist die Anzahl der Noten im Tonarray!
    for(int i = 0; i < 4; i++)
        {
        playTone(Tonarray[i], Tonlaenge[i]); // Zeit = Wert * 10 ms
        delay(PAUSE+(Tonlaenge[i])*10); // Zeit in ms
        }
    delay(1000);
}

Hindernis erkennen mit Ultraschall und "zufälliges" Ausweichen

#pragma config(Sensor, S2,     taster,         sensorEV3_Touch)
#pragma config(Sensor, S4,     ultraschall,    sensorEV3_Ultrasonic)
//*!!Code automatically generated by 'ROBOTC' configuration wizard               !!*//
#define MIN_ENTFERNUNG 20

task main()
{
    // BigText braucht 2 Zeilen
    displayBigTextLine(1, "Hindernislauf");
    delay(1000);
    while(SensorValue(taster)==false)
    {}
    while(true)
    {
        setMotorSpeed(motorA, 50);
        setMotorSpeed(motorD, 50);
        if(SensorValue(ultraschall)<MIN_ENTFERNUNG)
        {
            setMotorSpeed(motorA, 0);
            setMotorSpeed(motorD, 0);
            delay(500);
            setMotorSpeed(motorA, -30);
            setMotorSpeed(motorD, -30);
            delay(500);
            setMotorSpeed(motorA, 0);
            setMotorSpeed(motorD, 0);
            delay(500);
            setMotorSpeed(motorA, 30);
      delay(random(1000));
            setMotorSpeed(motorA, 0);
            setMotorSpeed(motorD, 0);
            delay(500);
        }

    }
}

Letzte Änderung:
March 23. 2023 21:04:40
«    top    »