用户工具

站点工具


wt901常见问题

WT901常见问题


通用问题

使用问题

接上位机无数据

无数据的时候先检查一下接线是否正确,TX RX和串口模块使用有交叉,上位机的端口是否打开,波特率是否正确
以上步骤无误仍无数据可能有两种情况:1.有原始数据而没有曲线图像和传感器信息,2.无原始数据
第1种情况:TTL/232串口的电平是否一样,一样的话可能是波特率不正确可以每个波特率都选择试一下直至有图像显示
第2种情况:如果是模块类查看一下模块上的led指示灯是否正常闪烁,正常闪烁可以通过硬件恢复成默认设置(可参考说明书的图文操作D2和VCC短接)
注:第二种方法只有(JY61P\JY61PB\JY901\JY901B的模块适用)

上位机没有数据、数据不对

1.看波特率是否选择正确,默认是9600
2.看电平是否选择正确,TTL对应TTL串口模块,232对应232电平,485对应485
3.首次使用需要进行加计校准和磁场校准(磁场校准可以参考说明书里的附带网址的视频,需要校准出三个椭圆)
4.如果周围磁场干扰很大的话会影响到Z轴角度,测量干扰方法参考二的Z轴误差问题
5.垂直安装的话请参考垂直安装视频

上位机显示离线状态

模块有两个信号线 现在的情况是模块TX发送数据到上位机是正常的 上位机发送指令到模块RX是离线的,不正常。
解决方案:

  1. 重新打开配置栏,确认是否还是离线
  2. 用万用表检查模块RX 和串口模块TX有没有连通
  3. 检查USB-串口模块发送数据是否正常

注意:回传速率设置成很慢或者很快可能会导致读取不到配置显示离线,可重新点击一下左上角的读取传感器配置进行二次判断

验证上位机是否控制到了模块

可以设置下回传内容,把加速度的勾给去掉,如果还有加速度输出则说明模块没有接受到指令,上位机没有控制到模块!
注意:能接受到数据不代表能控制模块

示例程序收不到数据

首先不接单片机直接连接电脑看下模块有没有数据 数据正不正常,然后请检查

  1. 程序与没有编译后下载
  2. 硬件连接问题,仔细检查管教有没有接对(程序开头有连接说明)
  3. 查看波特率 还有串口有没有问题
  4. 使用的开发板是不是和我们使用的一致,不一样的需要参考一下示例程序自己移植调试。

常见说明

使用视频

示例程序即相关教学视频文档

常见问题

关于Z轴误差的问题

Z轴角度是跟地磁有关的,所以使用的时候尽量避免周围磁和铁的物质的干扰就是要远离磁和铁的物质50cm以上, 会产生磁场干扰的有:磁铁、电脑等用电器、电机,铁等金属物质,螺丝、钢板、交流电等 在远离磁场干扰情况下在进行磁场校准,测试效果会更好!http://jingyan.baidu.com/article/546ae185dd6b8b1149f28c9b.html
注意:9轴Z轴是不会有累计误差或者漂移的,如果使用9轴还会有误差,就只有两点 1.使用前一定要进行加计校准和磁场校准。 2.使用时和校准时,一定要远离磁场干扰。
如何验证有没有磁场干扰:模块在同一个位置绕Z轴旋转一圈,然后看下总的磁场数据H会不会有很大的变化,如果变化大于20mg说明还是有磁场的干扰。
使用环境不变的话,模块只要校准一次就可以了。

旋转轴向的定义

旋转轴向的定义是按照右手法则定义的,右手的大拇指指向轴向,四指握拳,此时四指弯曲的方向就是绕着这个轴旋转的方向。模块的三个轴向定义在说明书里面有图示

Y轴接近90°数据不准

欧拉角表示姿态的时候,会有奇点现象。奇点位置和欧拉角的旋转顺序有关。比如欧拉角的旋转顺序定义为Z-Y-X,那么Y轴±90°为奇点位置。如果旋转顺序定义为Z-X-Y,那么X轴±90°为奇点位置。我们的模块按照Z-Y-X定义。可以这么理解,Z轴表示方向角,相当于X轴朝向。当Y轴为90度,X朝向上方,就Z轴为任何角度都表示的同一个姿态,没有意义。另外,假设X轴为0度,Z轴为0度。Y轴由89°变为91°,姿态会由【0,89,0】,【180,91,180】,也X轴角度发生了0~180°的突变,Z轴也发生了突变。

坐标定义

东北天坐标系定义:就是当3个轴的角度为0时 X轴指向东 Y轴指向北 Z轴竖直向上

四元素顺序

Q0-Q3:W X Y Z

欧拉角定义

欧拉角顺序:ZYX

正负号计算

输出数据的正负号是按照补码的方式表示的,也就是其二进制数据的最高位如果为1则表示负数。程序编写的时候,可以采用强制转化为有符号的short类型来解决符号的问题,具体做法是,将数据的高位强制DataH转化为short类型,然后再左移8位,和低字节DataL进行与操作。例如加速度包的解析方法:
加速度包一共有11个字节,chrTemp[11],其中chrTemp[3]为X轴加速度的高8位,chrTemp[2]为X轴加速度的低8位,那么加速度的解析代码如下:
float a[0];
a[0]=(( ((short)chrTemp[3])«8)|chrTemp[2])/32768*16;
其中( ((short)chrTemp[3])«8)|chrTemp[2]得到short类型的有符号数据,short类型的数据表示范围是-32768~32767之间,加速度的量程范围是正负16g,所以需要除以32768再乘以16。这样处理以后,得到的数据就是有符号的float类型数据了。
以55 51 78 FD 4E 03 85 F8 FC 0E F3为例,此包是加速度包,根据协议X轴的加速度是0XFD78,也就是十进制的-648,根据公式转换-648/32768*16 = -0.31g
详细的图文换算可参看此链接:http://elecmaster.net/forum.php?mod=viewthread&tid=812&page=1&extra=#pid1582

MODBUS的读取和数据换算

根据协议,读取X Y Z三个轴的角度,读取的指令为 50 03 00 3D 00 03 99 86,(3D是X轴角度地址,以此地址开始读取往后的三个地址长度的数据)以返回的数据为例:50 03 06 FF 78 0D 15 04 3A F5,即X轴角度的数据是0XFF06 Y轴角度数据是0X780D Z轴角度数据是0X1504,换算以X轴角度为例,0X06FF十进制是1791,根据公式换算角度 1791/32768*180=9.84°
详细的图文换算可参看此链接:http://elecmaster.net/forum.php?mod=viewthread&tid=812&page=1&extra=#pid1582

四元素与欧拉角的转换关系参考

波特率和回传速率的计算

波特率115200 = 115200 (位/秒) 如果没有校验位,就应该除以 10,得到的是每秒字节数: 波特率115200 = 115200 (位/秒) = 11520 (字节/秒) 我们传感器回传的数据一个包是11个字节 例如JY901默认回传四个包也就是44字节 11520/44 = 261HZ(当前波特率能回传的最大速率)注意:JY901最大回传速率是200HZ

时间不准

这个是电脑分辨率的问题 电脑对时间的分辨率只有0.1秒 而模块发送数据时间间隔(以20HZ为例)只有0.05 所以电脑上看到的时间会有重复的 这个是WINDOS系统的固有问题 模块实际是等间隔发送。如果需要等间隔的时间可以将时间的内容选择输出

出现55 5F的无效数据包

数据出现55 5F开头的是读取寄存器数值的数据包 发送FF AA 27 FF 00指令可以清除,清除之后再发FF AA 00 00 00保存配置

读取寄存器方法

  • 往READADDR(0x27)寄存器里写入需要读取的地址,比如要读取0x05寄存器,那么给模块发送指令:0xff 0xaa 0x27 0x05 0x00
  • 模块收到指令以后,将返回数据包0x55 0x5f D1L D1H D2L D2H D3L D3H D4L D4H SUM其中D1是刚才写入的寄存器的内容,D2、D3、D4分别是D1后面的寄存器的内容。比如刚才写入READADDR的内容是0x05,那么D1就是AXOFFSET(0x05),D2就是AYOFFSET(0x06),D3就是AZOFFSET(0x07),D4就是GXOFFSET(0x08)。

加速度、磁场指令校准法

进入加计校准FF AA 01 01 00 进入磁场校准FF AA 01 02 00
退出加计校准FF AA 01 00 00 退出磁场校准FF AA 01 00 00
保存配置FF AA 00 00 00 保存配置FF AA 00 00 00

(加速度校准后会自动退出校准,所以现在不需要再发送退出校准指令)

加速度校准发送两个指令,建议间隔时间100ms以上
磁场的发送第一个指令之后就可以绕三个轴转动 转完之后发送第二第三个指令退出保存就可以了

用模块求位移和速度

因为精度不够 ,随着时间的增加,误差也会越来越大,求出来的数据误差较大,不建议使用

蓝屏的问题及鼠标乱跳

先打开上位机,在插上USB,在上位机配置好后最后接入模块,可以配置成指令启动避免这个问题或者更改一下波特率使用,避免和电脑的其他USB设备的波特率冲突

69轴区别

6轴和9轴的区别 6轴的Z轴角度根据积分解算 存在累计误差,9轴的Z轴角度根据磁场解算不存在累计误差,但是受磁场干扰
知识误区:Z轴存在磁场干扰,XY不受磁场干扰,是否能转动90°让XY轴当成Z轴使用就不受干扰了呢?
正确答案:当XY竖直向上时,此时的XY就相当于航偏角,仍然受到干扰。通俗的理解:倾角不受磁场干扰,航偏角受磁场干扰

最新上位机的型号选择

除了JY61模块(包含WT61CTTL/232,BJY61,BWT61CL)选择JY61型号,485通讯的选择modbus型号,其他都是选择通用的normal型号
注意:蓝牙低功耗BLE系列,WIFI,GPRS,深松传感器和电梯传感器不可用这个上位机

9轴的Z轴归零和设置角度参考

Z轴相当于一个指南针的功能,不能手动设置当前状态为零,正常情况只有当Y轴向指向北的时候,数值才是为0(角度参考:是倾角开关使用的功能,使用这个强制将Z轴变成0可能会导致测到的角度不准,故不推荐使用)
Z轴角度归0 FF AA 01 04 00
设置角度参考 FF AA 01 08 00

Z轴归零指令是适用于6轴算法下才能手动清零,6轴算法存在累计误差且没有指南针的功能
6轴算法Z轴角度归零指令:FF AA 01 04 00

二次开发

二次开发是你根据模块的功能进行开发,根据需求和应用使用传感器测到的姿态信息开发,而不是直接对我们的传感器模块进行烧写程序开发哦,传感器内部已经有程序,不支持二次烧写哦。如果想研究传感器的工作原理和自己开发传感器的功能建议直接购买传感器芯片参考芯片手册开发

单次回传

参考一下JY901使用说明书 7.2.9设置回传速率部分,先设置成单次回传,再发送指令:0xff 0xaa 0x03 0x0C 0x00 即可回传一次数据

Z轴存在1g的数据

传感器水平放置后加速度校准后仍然有1g的数据,这个1g是重力加速度,根据轴向的指向,Z轴指向上,模块静止,重力加速度朝下,所有有一个和重力加速度大小一样的力朝上,所以存在1g(正方向)的数据。

关于3,6,9,10轴的定义

3轴传感器指的是3轴的加速度,根据这个加速度我们解算出X Y两轴的角度
6轴传感器指的是3轴的加速度和3轴角速度,根据这两个数据我们解算出X Y Z三轴的角度(Z轴是角速度积分解算,所以存在累计误差)
9轴传感器指的是3轴的加速度、3轴角速度和3轴磁场,根据这三个数据我们解算出X Y Z三轴的角度(Z轴是磁场解算,相当于电子罗盘,但受磁场干扰的影响)
10轴传感器指的是3轴的加速度、3轴角速度、和3轴磁场气压,功能比9轴传感器多了气压和高度

锁定和解锁

增加锁定和解锁两个菜单,锁定指令69 寄存器写入A577(ff aa 69 77 A5),解锁69寄存器写入B588(ff aa 69 B5 88),注意Modbus版本数据发送格式不同。

持续更新…

wt901常见问题.txt · 最后更改: 2019/04/22 17:58 由 witmotion