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).

 


RetourMain Page