...
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 Block |
---|
} 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 Block |
---|
} 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 Block |
---|
} task main() { nMotorEncoder[motorB] = 0; nMotorEncoder[motorC] = 0; while(nMotorEncoder[motorB] < 1800) { motor[motorC] = 50; motor[motorB] = 50; } } {code} |