光流传感器特性测试

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了光流传感器特性测试相关的知识,希望对你有一定的参考价值。

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

光流传感器GL9306

 

§01 流传感器


一、背景测试

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

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

  

二、测试反射物

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

  
  这是铺设有白纸上面的情况, 可以看到传感器输出数值已经在发生比较明显的漂移。 显然此时已经没有移动测量的必要了。 本身数值就非常不稳定了。

  
  铺设红色隔离布, 输出数值就非常稳定了。 它的表面距离传感器大约为9 厘米。 测量滑轨移动对对应数据变化。 可以看到光流传感器输出累计值, 在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')


以上是关于光流传感器特性测试的主要内容,如果未能解决你的问题,请参考以下文章

光流传感器初步测试:GL9306

电动滑轨屏又称为滑轨电视

利用BH1750光度传感器测量一些发光体

超声波传感器特性测量:发送与接收传感器之间的差异

传感器特性的一些理解

002.光流传感器(ADNS0380版)使用说明