资讯详情

光流传感器初步测试:GL9306

GL9306光流传感器
目 录 Contents
背景介绍
器件特性
器件测试
实验总结

光流模块GL9306

 

§01 GL9306光流传感器


一、背景介绍

  根据全国大学生智能车竞赛, 智能视觉组同学询问, 是否可以使用光流传感器GL9306。 为了熟悉这款传感器的特性, 在淘宝上购买了一个传感器进行测试。 下面测试一下这个传感器的特性。

  | | | | 二、器件特性

1、器件接口

  器件的接口比较简单; 三个接口管脚定义分别是: VDD、GND、以及UARG。 对于串口数据输出信号, 在网站页面给出了数据通讯格式。 通讯波特率为19200, 输出数据帧速为66H组, 数据表示模块移动距离。 当距离很小的时候,输出为0。   2、接口改造

  为了能够在面包板上测试模块数据, 下面对于模块接口改造成100mil间距的接头。 焊接完之后增加热缩管。 这是接口改造完长之后的传感器。

  | | | 三、器件测试

1、上电观察接口信号

  下面将传感器接在面包板上, 对器件施加3.3V的工作电压。 器件稳态的工作电流大约20mA。 利用示波器观察UART输出管脚信号。 可以看到管脚有数据输出。 具体数据需要使用计算机来进行辨析。 这是测量每个数据帧之间的周期, 大约是38ms, 对应的数据帧速为26.3Hz。

  2、读取数据

  为了读取光流传感器输出数据, 这里使用了MM32F3277 MicroPython实验板。 使用其中的UART(1), 占用了PA3(RXD),PA2(TXD), 初始化波特率为19200, 将模块连接到光流传感器的数据输出端口。

  

验总结 ※

  里对于光流传感器GL9306进行了初步的测试。它的具体应用有待之后做进一步的测试。

  


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

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 == 254:
                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+6]
                else:
                    recebuf = recebuf[id:]
                    delflag = 0
                break
            id += 1
        if delflag > 0: recebuf = b''
        
    print(mx, my, squal)
    time.sleep_ms(100)

标签: 300pa2pa传感器

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

锐单商城 - 一站式电子元器件采购平台