Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0
Wiki Markup
h1. Moottorien ohjaaminen

...



Lego-robotin moottorit toimivat tilakoneena eli kun niille on kerran annettu nopeusohje, robotti muistaa sen kunnes annetaan uusi ohje. Moottorien nopeusohjeiden arvoalue on \-100...100. Positiiviset nopeudet tarkoittavat koulun robottien tapauksessa nopeutta eteenpäin, negatiiviset nopeutta taaksepäin.

...



Esimerkki 1. Asetetaan moottorit B ja C täyteen nopeuteen eteenpäin. Robotti ajaa eteenpäin 10 sekunnin ajan.

...


{code
}
task main()
{
    motor[motorB] = 100;
    motor[motorC] = 100;
    wait1Msec(10000);
}
{code}

Esimerkki 2. Moottorit voidaan ajaa haluttuun asemaan hyödyntäen nMotorEncoder ja nMotorEncoderTarget käskyjä.

...


{code
}
task main()
{
  nMotorEncoder[motorB] = 0;
  nMotorEncoder[motorC] = 0;

  nMotorEncoderTarget[motorB] = 1800;
  nMotorEncoderTarget[motorC] = 1800;//laita kohteeksi aina nollasta eroava arvo, muuten moottori ei mene idle -tilaan

  motor[motorC] = 50;//muista, että kohteen ja nopeusasetuksen tulee olla samanmerkkisiä, muussa tapauksessa kohdetta ei saavuteta koskaan
  motor[motorB] = 50;

  while(nMotorRunState[motorB] != runStateIdle || nMotorRunState[motorC] != runStateIdle)
  {
    //tyhjä silmukka, jossa odotellaan, että moottorit ovat pysähtyneet
  }
}
{code}
Esimerkki 3. kohteen odottelu voidaan tehdä myös seuraavalla tavalla.

...


{code
}
task main()
{
  nMotorEncoder[motorB] = 0;
  nMotorEncoder[motorC] = 0;

  while(nMotorEncoder[motorB] < 1800)
  {
    motor[motorC] = 50;
    motor[motorB] = 50;
  }
}
{code}