In the advanced programming function, you can write
simple codes for specific conditions and actions.
The Advanced programming supports the symbols for C arithmetic
operations and relational operators.
Fig. 8-26: C arithmetic operations and
relational operators
You can use all variables including system variables and self-defined
variables in the advanced conditions and actions.
Pre-defined variables |
What it means … |
US_Front |
The
distance between obstacles and the front ultrasonic sensor. Range: 0 – 255 cm |
US_Left |
The
distance between obstacles and the left ultrasonic sensor. Range: 0 – 255 cm |
US_Right |
The
distance between obstacles and the right ultrasonic sensor. Range: 0 – 255 cm |
CSLeft_R |
The red channel
value of left RGB colour sensor. Range: 0 - 255 |
CSLeft_G |
The green
channel value of left RGB colour sensor. Range: 0 - 255 |
CSLeft_B |
The blue
channel value of left RGB colour sensor. Range: 0 - 255 |
CSRight_R |
The red
channel value of right RGB colour sensor. Range: 0 - 255 |
CSRight_G |
The green
channel value of right RGB colour sensor. Range: 0 - 255 |
CSRight_B |
The blue
channel value of right RGB colour sensor. Range: 0 - 255 |
Compass |
Compass
sensor. It is 0o when facing score board. Range 0 – 360o |
Time |
The clock
runs when game starts |
WheelLeft |
Left
wheel speed, Range (-5) – (+5) |
WheelRight |
Right
wheel speed, Range (-5) – (+5) |
LED_1 |
LED
status: LED_1 = 0 (off); 1 (blink); 2 (steady on) |
LoadedObjects |
Loaded
objects counter. LoadedObject will be added by “1” when the “FindObject” key
action is executed. LoadedObject will be reset to “0” when the “Deposit” key
action is executed. |
SuperObj_Num |
When
Super or Super+ objects appears, the “SuperObj_Num” will be set to 1. It will
only last for about 2 sec. |
SuperObj_X |
When
Super or Super+ objects appears, the “SuperObj_X” indicates the X coordinates
of the Super Object. It will only last for about 2 sec. |
SuperObj_Y |
When
Super or Super+ objects appears, the “SuperObj_Y” indicates the Y coordinates
of the Super Object. It will only last for about 2 sec. |
Teleport |
If you
wish to teleport to the 1st location in the WORLD_2, set Teleport = 1; If you
wish to teleport to the 2nd location
in the WORLD_2, set Teleport = 2; If you
wish to teleport to the 3rd location
in the WORLD_2, set Teleport = 3; |
PositionX |
X
coordinate of the robot current position. It is only available in WORLD_2. |
PositionY |
Y
coordinate of the robot current position. It is only available in WORLD_2. |
Duration |
Duration
is associated with the “default” or “non-interrupt action” statement. Duration
is used to specify the time that the action is executed continually. Within
this period, the robot’s action will not be interrupted by other statement, except
Super action statement. The “Duration” is for default action or non-interrupt
action. When
Duration = 1, it means the action will continually running for 60 ms When
Duration = 2, it means the action will continually running for 120 ms When
Duration = 3, it means the action will continually running for 180 ms ….. |
SuperDuration |
Same as
the Duration. It is for Super Action. |
bGameEnd |
Not in
use. |
CurAction |
System
variable |
CurGame |
System
variable |
TM_State |
System
variable |
MyState |
Not in
use |
Advanced Conditions
The
advanced conditions are used for more complicated combination of conditions. Here
is the procedure:
Fig. 8-27: Advanced Conditions/Actions Code
Editor
More
examples:
Condition |
How to
program… |
0 ≤ US_Front
≤ 50 and 0 ≤ CSLeft_B
≤ 60 |
|
0 ≤ US_Front
≤ 50 or 0 ≤ CSLeft_B
≤ 60 |
|
40 ≤US_Left
≤ 80 and CSRight_G
≥ 100 |
|
40 ≤ US_Right
≤ 80 or CSRight_R
≥ 100 |
|
0 ≤ CSLeft_R
≤ 60 and 45o
≤ Compass ≤ 90o |
|
You can use
the graphical interface to edit the basic conditions. You can also write your
own code in the code editor to create the advanced conditions. The advanced
conditions can be combined with the basic conditions to fulfil more
comprehensive requirement.
The basic
conditions and advanced conditions can be combined using logic-and or logic-or.
More
examples:
Condition |
How to
program |
60 ≤ CSLeft_G ≤ 90 and 0 ≤ CSRight_G
≤ 60 or 0 ≤ CSRight_R
< 50 |
|
60 ≤ CSLeft_G ≤ 90 and 0 ≤
CSRight_G ≤ 60 and 0 ≤
CSRight_R < 50 |
|
60 ≤ CSLeft_G ≤ 90 and 0 ≤
CSRight_G ≤ 60 and 0 ≤ CSRight_R < 50 |
|
Related Topics