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} |