MT-01P是微空科技研发设计并生产的一款10米量程激光测距传感器,支持串口和I2C输出数据,并内置多种通信协议,可兼容主流开源飞控:Ardupilot、PX4、INAV、FMT。只需简单配置即可适配不同飞控。
MT-01P可用于多旋翼无人机定高或固定翼自动降落时的地面距离检测。 采用I2C接口通信时,可使Ardupilot飞控同时接入多路测距传感器,实现多方位避障功能。
使用微空助手软件切换模块协议或修改配置参数:
MT-01P支持两种数据接口模式:串口和I2C
串口模式下支持3种数据协议:
Micolink协议具体说明可参考下面链接:
模块支持切换通信接口为I2C,注意当前仅Ardupilot4.5.0及以上版本能支持I2C连接MT-01P使用。
I2C总线需要有上拉电阻,模块本身接口并无上拉电阻,所以需要飞控或者外部设备上有上拉电阻存在,才能正常通信。
I2C模式下飞控可同时连接多路传感器。
当模块切换为I2C模式之后,上位机将无法正常通过串口和模块进行通信和配置,需要一些特殊的操作方式。
如果传感器接入到TTL模块的时候出现设备刷新/端口断开的现象,在TTL模块的5V输出端并联一个大电容或许可以解决这个问题。
MT-01P模块串口模式默认输出协议为mavlink,正常情况下无需设置。可以用微空助手检查模块协议是否为mav_apm.
Ardupilot固件版本需>=4.1.0
连接传感器到飞控的某一路串口比如TELEM1/2等等,注意Tx和Rx需要交叉连接。
参数设置:
SERIALn_BAUD = 115
SERIALn_OPTIONS = 1024
(Don't forward)
SERIALn_PROTOCOL = 1
n取决于实际连接的端口
RNGFND1_TYPE = 10
重启飞控或者手动刷新参数列表
RNGFND1_ORIENT = 25
注意这个参数需要和MT-01P的方向参数相对应,模块才能被Ardupilot识别,飞控和模块默认值都是Down(25)。
设置完后重启飞控,应该能在status页面看到rangefinder1
的数值。
首先需要使用微空助手软件配置模块接口类型为IIC_NOOPLOOP
,或者购买模块时选择I2C版本的。
需要注意的是,TOF_ID
参数对应模块的I2C地址,初始值0关联地址0x08,1关联0x09,以此类推。同一个I2C总线中同时连接多个模块的话,需要将TOF_ID
改为不同值,比如3个模块的ID应该分别为0、1、2。
将模块连接到飞控的I2C接口,SCL接SCL,SDA接SDA。
在全部参数表中找到RNGFND1_TYPE参数,设置为40,之后重启飞控或者右侧点击刷新参数。
在展开的RNGFND1参数表中,设置RNGFND1_ADDR为8(MT-01P默认地址为0x08),RNGFND1_ORIENT设置为自己需要的方向,比如用于定高就是默认的25(DOWN)。如果是用于避障可以设置为Forward/Left/Right/Back等等。
如果接入了第二个传感器,同理可以设置RNGFND2参数,同上,只是RNGFND2_ADDR需要配置成9(这一个MT-01P的TOF_ID参数需要设置成1)。
完成后,可以在Status页面实时查看两个传感器的距离数值。
也可以在Proximity工具页面可视化显示传感器的实时距离,如下图,两路传感器的方向参数分别是设置为了0(Forward)和6(Left)。
MT-01P模块串口模式默认输出协议为mavlink,正常情况下无需设置。可以用微空助手检查模块协议是否为mav_apm.
1.12.x - 1.13.x
MAV_1_CONFIG TELEM n (n取决于实际连接的物理端口)
重启飞控
MAV_1_MODE Normal
SER_TELn_BAUD 115200 8N1 (n取决于实际连接的物理端口)
EKF2_RNG_AID Range aid enable
EKF2_HGT_MODE Range sensor
1.14.x-
MAV_1_CONFIG TELEM n
重启飞控
MAV_1_MODE Normal
SER_TELn_BAUD 115200 8N1
EKF2_RNG_CTRL Enabled
EKF2_HGT_REF Range sensor
重启飞控,一切正常的话,在QGC的MAVLink Inspector页面中应该能看到DISTANCE_SENSOR
消息。注意,QGC上显示的消息由飞控发出,消息频率并不等同于传感器的数据频率,这个频率由飞控的设置和数据链路的速度决定,主要用于观察,消息频率多少并不重要。