Loginskip to content

November 20th, 2007

Physics 101


As some already noticed, I have a passion for doing physical experiments using NXT. This time I got hold of the HiTechnic Acceleration sensor. Well, Brian Davis already posted on thenxtstep on some nice measurements in a ride, so I looked for something else. At the end, I decided to measure the centripetal force acting on a rotating body. For those who haven’t studied physics (or finished it too long ago..) any body in a rotating frame of reference experience two forces - Coriolis force and the centripetal force. I will ignore the former since it is too weak, and concentrate on the second term only. The magnitude of the centripetal force is proportional to the square of the angular velocity (i.e. how many rotations per second) and to the distance from the radial distance from the center. The centripetal force points toward the center of rotation. One can read more on the centripetal force here.
The apparatus I built, which is shown above, use two motors to rotate the NXT, the motors and the acceleration sensor inside a solid triangular construction. The frame was built to allow for either horizontal measurement (as seen in the picture) or vertical measurement when connected to a large LEGO board (not yet performed). The code, written in NXT-G, increases the speed (”power” value in Move block) gradually from 30 to 100. At each speed, it rotated for 15 seconds collecting timer, rotation counter and X, Y, Z accelerations into a file. The picture below (click to enlarge) shows the main loop of the code:

Each file contained a long list of numbers, which need to be arranged into a 5 column spreadsheet for the respective measurement. This was done using either Excel or MATLAB (my favorite tool for just about everything..). This already made some problems as I found the NXT, for an unknown reason), cut off some of the last values in some of the files. Nevertheless, I had plenty of measurement points at each speed, and in zero power too (i.e. stationary). The raw data files (the speed is denoted in the filename, e.g. ‘Speed50.txt’ is for motors power 50) can be downloaded here.

What’s next? First I calculated the rotation velocity. To do this, one has to do a numerical derivative of the rotation counter values. Since the intervals between measurements is not always constant (as was observed many times in the past, the NXT pauses for several 10s of ms to store data in it’s non-volatile memory) I divided the rotation counter increment by the timer increment between each two consecutive measurements. The average of this, when taking into consideration gear ratio (8:24 in this setup) and doing some scaling, is the number of degrees the sensor rotates in a second. Next, the average acceleration for each axis was calculated, using data only from the 10′th measurement point onward. This ensured that the jerk experienced when the motors start moving (my code had them stopped and restarted, in retrospect it could’ve been done better..) is removed from the analysis.

Finally, I plot the average and standard deviation of each acceleration component, as a function of rotation velocity:

What do we see? Well, I don’t quite understand it myself… The HiTechnic sensor has it’s three axes oriented as shown in the picture below (taken from HiTechnic website):

Thus, the Y direction points down (toward the center of Earth) in my setup. When there is no motion, it reads about 200 (which is equal to 1 g or 10 m/s^2). This is the correct magnitude, although the I expected the opposite sign (HiTechnic: is there an error in the direction of the Y axis in this diagram?). However, when the NXT starts spinning there is a pronounced decrease in the Y component. This I cannot explain. The X component is about zero, which makes perfect sense, and the Z component (which I expected to be the centripetal force) does indeed increase non-linearly with velocity (more detailed analysis will be published in the future, once I understand the Y axis behavior).

I’ll be happy to get your comments and answer questions in this forum topic. If anyone understands what happened in the Y axis - I’ll be happy to hear it!

Guy Ziv