Poor man's rotation sensor

To those who have to manage more carefully their resources, we propose a simple but efficient rotation-sensor for low speed. The concept first was expressed in Ben Erwin's book Creative Projects with Lego Mindstorms page 201ff. We worked already with a similar encoder at the pure LEGO compass page.

The idea is quite simple:

The following paper-encoder is fixed to a 40 teeth-gear. A LEGO light-sensor is placed to look at it. That's all !! No glue, no soldering, no additional electronics. Here a 24-sectors encoder !

As revisitors of our pages know, we NEVER simply copy things from others, but we ALWAYS add creative new challenges and solutions or better develop new projects from scratch. So, we propose some improvements to Ben's issues:

Robolab 2.5 sub.vi: Boulette_rotation_sensor.vi with event monitoring, a datalogging test-program, a compute tools5 program and a light-sensor reset without display. DOWNLOAD files.

The parameters (33, 42) should be manually adjusted to your specific situation. Your application must provide the information about sense of rotation. By default the sub.vi increments the container by +1. The maximum speed may be deduced by the trigger-time 0.01sec. Each encoder-sector should appear at least 0.01sec in front of the light-sensor. This is equivalent for 24 sectors to a period of 0.24 sec per revolution. --> max angular speed: 60 * 1 / 0.24 = 250 RPM.

The test-device:

LASM

 delt 0 delt 1 logz 1036 delt 2 task 0 sent 1,3 senm 1,4,0 start 1 senz 1 sete 0,1,8 set 28,0,2,42 set 29,0,2,33 set 30,0,2,5 set 31,0,2,0 sete 2,1,10 set 28,2,2,42 set 29,2,2,33 set 30,2,2,5 set 31,2,2,0 set 0,0,2,0 Label0: monel 2,5,EventLand Label1: jmpl Label1 EventLand: sumv 0,2,1 jmpl Label0 endt task 2 Label0: setv 24,0,0 log 0,24 sumv 27,2,1 setv 23,9,1 log 0,23 sumv 26,2,1 wait 2,2 ping jmpl Label0 endt task 1 logz 1036 setv 23,2,9 log 0,23 setv 23,2,1 log 0,23 setv 23,2,1 log 0,23 setv 23,10,1 log 0,23 setv 23,11,1 log 0,23 tmrz 3 setv 26,2,0 setv 24,2,0 log 0,24 setv 24,2,0 log 0,24 setv 24,2,-1 log 0,24 setv 24,10,0 log 0,24 setv 24,11,0 log 0,24 setv 27,2,0 setv 24,2,2 log 0,24 setv 24,2,4 log 0,24 setv 24,2,0 log 0,24 setv 24,1,3 log 0,24 setv 23,2,2 log 0,23 setv 23,2,4 log 0,23 setv 23,2,0 log 0,23 setv 23,1,3 log 0,23 set 0,27,2,0 set 0,26,2,0 start 2 tmrz 0 Label1002: chkl 2,60,0,1,0,Label1003 pwr 1,2,7 dir 2,1 out 2,1 wait 2,2 out 1,1 wait 2,2 ping jmpl Label1002 Label1003: out 1,1 stop 2 setv 24,1,3 log 0,24 log 0,27 stop 2 setv 23,1,3 log 0,23 log 0,26 wait 2,100 stop endt plays 5

We count the peaks AND the wells.

With the 24-sectors encoder we have 8*60/24 = 20 RPM (revolutions per minute).