EV3 Move Steering Block Explained
Ever wondered how the LEGO® MINDSTORMS® EV3 "Move Steering" action programming block works? Read on...
The Move Steering programming block is used to make your robot drive forward, backward, turn, or stop, it also adjusts the steering to make your robot go straight, drive in arcs, make tight turns or spin turns.
The Move Steering block is a green action block from the EV3 visual programming environment and is used to control both left and right drive motors at the same time, to drive your vehicle in the direction that you select. In a typical EV3 differential drive robot design, the left motor is connected to motor port B and the right hand motor to motor port B on the EV3 programmable brick, as shown below:
Note: Make sure that with your robot facing “forward”, the motor on the left side is the first one listed in the Port Selector. Otherwise, your robot will turn in the wrong direction. Robot vehicles with two drive motors can also be controlled by the Move Tank block. The Move Tank block is similar to the Move Steering block, but has a different way of controlling turns with more direct control of individual motor powers.
CHOOSING YOUR MOTOR PORTS AND CONTROL MODE
MOVE STEERING BLOCK INPUTS
The inputs of the Move Steering block control the details of how the motors will operate. You can enter the input values directly into the block. Alternatively, the values can be supplied by Data Wires from the outputs of other Programming Blocks. The inputs available and their functions depend on the control mode you selected.
You can control the speed and direction of your EV3 robot by using the Power and Steering inputs. The Power input accepts a number variable from -100 to 100. Positive (forward) and negative (backward) numbers for Power make the Large Motor turn in different directions. The distance that your robot will travel depends on the Duration input (rotation or degrees). However, the distance also depends on the diameter of the drive wheels used and other physical factors. The internal rotation sensors in the motors measure the amount of rotation at the motor hubs.
If the Steering input is not zero, one of the motors will be slowed down or reversed to make the robot turn. The Move Steering block makes your robot turn by running the two motors at different speeds. For very tight turns, one of the motors will be reversed.
Note that the Degrees and Rotation inputs relate to the amount of motor rotation of the faster motor, not the change in the robot’s direction when turning. The change in the robot’s direction will depend on wheel diameter, wheel spacing, and other factors.
The Steering input accepts a number variable from -100 to 100. A value of 0 (zero) will make your robot drive straight. A positive number (greater than zero) will make your robot turn to the right, and a negative number (less than zero) will make your robot turn to the left. The farther the steering value is from zero, the tighter the turn will be. The Steering input icon on the Move Steering Block will change with the Steering input value as shown below:
The motor power function for the left (blue) and right (red) motors for negative (left) and positive (right) Steering input values would look something like the following graph:
For fun, play around with the EV3 Move Steering and Move Tank blocks. Personally, for FLL tournamnets I would recommend using the Move Tank block for more accurate turns and spins as you can directly control the direction and power to each motor, whereas with the Move Steering block, you are merely estimating the power to each motor based on the numeric value of the Steering input value which is a bit iffy guess work without LEGO® MINDSTORMS® EV3 product managers publishing how the Steering input maps to individual motor power.
I hope this brings a little clarity to the Move Steer block functionality.
Please Note: LEGO, the LEGO logo, the Minifigure, DUPLO, LEGENDS OF CHIMA, NINJAGO, MINDSTORMS and MIXELS are trademarks and/or copyrights of the LEGO Group.