Motors | |
a, | selects motor A to be controlled. |
b, | selects motor B to be controlled. |
ab, | selects motors A and B to be controlled. |
c, | selects motor C to be controlled. |
d, | selects motor D to be controlled. |
cd, | selects motors C and D to be controlled. |
abcd, | selects all motors to be controlled. |
on | turns the selected motors on. |
off | turns the selected motors off. |
brake | actively applies a brake to the selected motors. |
onfor duration | turns the selected motors on for a duration of time, where duration is given in tenths-of- seconds. E.g., onfor 10 turns the selected motors on for one second. |
thisway | sets the selected motors to go the "thisway" direction, which is defined as the way that makes the indicator LEDs light up green. |
thatway | sets the selected motors to go the "thatway" direction, which is defined as the way that makes the indicator LEDs light up red. |
rd | reverses the direction of the selected motors. Whichever way they were going, they will go the opposite way. |
setpower level | sets the selected motor(s) power level. Input is in the range of 0 (coasting with no power) to 8 (full power). |
Servo Motors | |
setsvh direction | sets the servo heading. direction for a typical servo motor should range between 15-45. |
svr steps | turns right (counter clock wise) for a number of steps. |
svl steps | turns left (clock wise) for a number of steps. |
Timing | |
timer | reports value of free-running elapsed time device.
Time units are reported in 1 millisecond counts. |
resett | resets elapsed time counter to zero. |
wait duration | delays for a duration of time, where duration is given in tenths-of-seconds. E.g., wait 10 inserts a delay of one second. |
Sound | |
beep | plays a short beep. |
Sensors and Data Collecting | |
sensor1 | reports the value of sensor 1, as a number from 0 to 1023. |
sensor2 | reports the value of sensor 2, as a number from 0 to 1023. |
sensor3 sensor4 sensor5 sensor6 sensor7 sensor8 |
same as sensor1 and sensor2, but report values of the corresponding sensor. |
switch1 | reports ¨true¨ if the switch plugged into sensor A is pressed, and ¨false¨ if not. |
switch2 | reports ¨true¨ if the switch plugged into sensor B is pressed, and ¨false¨ if not. |
switch3 switch4 switch5 switch6 switch7 switch8 |
same as switch1 and switch2, but report values of the corresponding sensor. |
resetdp | reset the value of data pointer to 0. |
record value | records value in the data buffer and advances the data pointer. |
recall value | reports the value of the current data point and advances the data pointer. |
erase number | sets the value of the first number elements of the data array to zero and then sets the data pointer to zero. Because the process of recording data is relatively slow (about 20 milliseconds per data point) it could take as long as 50 seconds for the erase 2500 command to be executed. |
Control | |
loop [body] | repetitively executes body indefinitely. |
repeat times [body] | executes body for times repetitions. times may be a constant or a calculated value. |
if condition [body] | if condition is true, the cricket executes body. Note: a condition expression that evaluates to zero is considered "false"; all non-zero expressions are "true". |
ifelse condition [body1] [body2] | if condition is true, executes body-1; otherwise, executes body-2. |
waituntil [condition] | loops repeatedly testing condition, continuing subsequent program execution after it becomes true. Note that condition must be contained in square brackets; this is unlike the conditions for if and ifelse, which do not use brackets. |
stop | terminates execution of procedure, returning control to calling procedure. |
output value | terminates execution of procedure, reporting value as result. |
Numbers | |
+ | infix addition |
- | infix subtraction |
* | infix multiplication |
/ | infix division |
% | infix modulus (remainder after integer division) |
and | infix logical "and" operation (bitwise and) |
or | infix logical "or" operation (bitwise or) |
xor | infix logical "xor" operation (bitwise xor) |
not | prefix logical not operation. use only with boolean values (1 and 0). |
random | reports pseudo-random number from 0 to 32767. |
Globals and Arrays | |
global [foo bar] | creates two globals, named foo and bar |
array [array1-name, array1-length, array2-name, array2-length, etc.] | creates two arrays, one named foo, which can hold 50 numbers and another named bar, which can hold 25 numbers. Elements in the array are set and read using the aset and aget primitives: |
aset array-name item-number value | sets the item-numberth element of array-name to value |
aget array-name item-number | reports the item-numberth element of array-name |
Serial Communication | |
send value | transmits value via Com port. |
serial | reports the byte most recently received by the serial port. |
newserial? | reports true if a new byte has been received by the serial port since last time serial was used, and false if not. It does not effect the content of the serial buffer. |