锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

光流传感器特性测试

时间:2022-11-02 16:00:00 表面用传感器

光流传感器
目 录
Contents
背景测试
测试反射物
对比不同高度
总 结
测量程序

光流传感器GL9306

 

§01 流传感器


一、背景测试

  下面是参加智能车竞赛同学所使用的光流传感器GL9306, 使用MicroPython搭建了数据接收和处理平台, 下面对于它的相关特性进行测试。 这些特性包括: 反射物对测量的影响,以及高度对测量的影响。

  
  这里使用一个滑轨带动光流传感器移动, 它移动的距离大约为10厘米。 下面就可以通过读取光流传感器累计数值,来获得移动的距离。

   |

二、测试反射物

  首先,在光流传感器下面设置一块黑色泡沫海绵。 它上表面距离传感器距离大约为7.3厘米。 下面测试滑轨移动对应的数值变化。 可以看到光流传感器输出累积值,在y轴方向从18 变化到700。

  三、对比不同高度

  下面将光流传感器抬升,距离红色隔离棉表面大约17厘米。 移动光流传感器,查看传感器y轴的变化。 光流传感器输出值变化为311, 对比前面测量结果来看。 输出数值在下降。】这与高度呈现一定的关系, 也就是表面距离光流传感器越大,移动数值越小。
  | |

  结 ※

  里对于光流位移传感器的特性进行了初步测试, 它的输出与传感器前面反射物特征, 以及相对距离都有关系。

  | | 一、测量程序

from machine                import Pin,UART
import time

uart = UART(1, baudrate=19200)
print(uart)

inbuf = bytes([0]*7)
recebuf = b''
mx = 0
my = 0
squal = 0

sigmax = 0
sigmay = 0

printcount = 0

while True:
if uart.any() > 0:
inb = uart.read(uart.any())
recebuf = recebuf + inb

buflen = len(recebuf)
delflag = 1
if buflen > 0:
id = 0
for b in recebuf:
if b == 0xfe:
if buflen >= id+9:
mx = recebuf[id+3]
mx = mx*256 + recebuf[id+2]
my = recebuf[id+5]
my = my*256 + recebuf[id+4]
squal = recebuf[id+7]

if mx > 0x7fff: mx -= 0x10000
if my > 0x7fff: my -= 0x10000

if squal > 0x80 and recebuf[id+8] == 0xaa:
sigmax += mx
sigmay += my

else:
recebuf = recebuf[id:]
delflag = 0
break

id += 1

if delflag > 0: recebuf = b''

time.sleep_ms(10)

printcount += 1
if printcount >= 10:
printcount = 0
print(sigmax, sigmay, squal, mx, my)
from head import *
from tsmodule.tsvisa        import *

RAIL_CONTROL_IP     = '192.168.0.203'
RAIL_CONTROL_PORT   = 6000

def rcccw(step):
strcmd = 'ccw %d'%step
udpsendstr(RAIL_CONTROL_IP,
RAIL_CONTROL_PORT,
strcmd)

def rccw(step):
strcmd = 'cw %d'%step
udpsendstr(RAIL_CONTROL_IP,
RAIL_CONTROL_PORT,
strcmd)

time.sleep(10)
rcccw(4500)
time.sleep(15)
rccw(5500)

printf('\a')


锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章