传感器到单片机大概需要1ms。
因为前面数据的产生需要1ms,于是如果不在1ms内将这些数据传送到单片机,那么后来的数据就会被丢弃。
接下来是单片机经由usb线将数据传输到pc。
usb线具有极高的传输速率,但是完全由host端(也就是pc端)控制传输的。
也就是说,如果host端不接收单片机发来的数据,那么数据就会被丢弃。
采用hid方式的情况下,host端会经常检查是否有数据传输上来,然后将数据存放到内存,所以这个时间在1ms之内。
至此,数据已经到达pc的内存了,走完了全部的硬件过程。由于数据带宽、通信协议等限制,会占用3ms到4ms之间的时间,很难再减少了。
在硬件上传输完成后,就是软件算法处理的过程了。
由于模拟信号本身的噪声和漂移,转换成数字信号后,数据中存在大量的噪声和漂移。
于是需要复杂的数字信号处理方法将这些噪声和漂移过滤掉。
这样,传感器传来的9轴数据就成为了渲染游戏所需的头部旋转的四元数旋转数据。
处理这个数据一