Rotation Sensor and State of the scorpion Pro Preview

The scorpion is one of the most famous robots build with the NXT kit. In this lesson we are showing how to use the rotation sensor to program the scorpion and its strikes. The main challenge is how to return the spike for the same amount of degrees after it strikes. The other topic is how to use variable to keep the state of the scorpion. Both of this techniques are very valuable during the competition.

  • #8
  • 16 Mar 2013
  • 7:43

Program of the scorpion

- download the whole program of the robot in NXT-G.


You know the popular nxt robot – the scorpion. Today I'm going to show you how to program it. The program looks like this. First the robot goes until it sees an object less than 15 cm away. Then it strikes the object until it hits it using the touch sensor. This procedure is repeated and repeated again. First we need a move block. Set it to unlimited, until the robot sees an object less than 15 cm away. Then it stops. Now, we need another move block for motor A going forward unlimited, until the spike touches the object. Now, the question is how to return the spike back. This would be using the rotation sensor. First we need to take the rotation sensor and reset its' value, before motor A makes any movement. Then we take the rotation sensor, read how many degrees has it rotated and move motor A backward the same amount of degrees as it rotated forward. This we repeat again and again. We want to repeat this until the enter button of the brick is pressed. If we change the condition of the loop to the enter button is pressed. The program will not work. That's because the condition is checked just before the program enter the loop. So if we press the enter button while we are on the first block for instance, it would not detect it. That's why we will set the loop to forever and parallel to this we will put a wait block with condition the nxt enter button and then we put a stop block to terminate the program. So our program looks like this. Now, I would like to add another feature to the program. Let's make the robot display how many times it has stroked. So we take a variable, this time we will use the given variable for number. We initialize it with zero, because firstly the robot has not stroked anything. After each strike we will increase that value with one. Now, instead of the wait block, we will put a loop with the same condition. In it we will visualize the value of the variable. So take the variable, number to text block and a display block. We set it to text and connect the blocks. Let's now download the program to the brick and test it. One more thing. Under this video in the materials you can find the program of the scorpion with some explanation on it. It look like this.