1 整体回顾
实现了一个传感器测量系统,可以采集图像数据(原图)、GPS数据(经纬度)、照度数据、三轴加速度数据和三轴角速度数据。
Arm-linux控制板选用raspberryPi 4B。
相机选用大恒水星二代USB3.0相机,设定帧率:40FPS,分辨率:1080P,抽帧保存,每秒存4帧左右,数据输出速率24MB左右。
GPS模块选用长沙海格DB503板卡,仅使用GPGGA报文格式,设定数据输出速度10Hz。
IMU传感器使用ISM330DHCX,加速度计和陀螺仪数据输出速率为417Hz左右。
ALS传感器使用TSL2591,数据输出速度10Hz。
该系统总体架构见下图。

2 调试内容及主要问题
2.1 传感器接口调试
1、I2C接口调试
树莓派最高支持400MHz的I2C时钟,因此只能使用最大400MHz的I2C接口。对于树莓派,需要手动启用I2C接口并更改其I2C时钟速度,IMU和ALS传感器使用同一个I2C接口,外部搭建开漏输出电路,两个传感器的上拉电阻均为10$ k\Omega $。
调试I2C过程中遇到的问题主要是接口不同,造成该问题的主要原因是,(1)原选型的Hi3519AV100开发板(易百纳社区版本)I2C接口驱动能力不足,I2C接口波形异常; (2)I2C从设备地址设置不正确,导致I2C通信不通。
2、UART接口调试
未遇到明显问题。
3、USB3.0接口调试
直接使用大恒相机arm-linux版本的SDK,在raspberryPi上安装下驱动即可,官方也提供了完整的读取和存储例程。
2.2 数据采集速度匹配
1、GPS数据输出速率
期望越大越好,但是在调研过程中发现,一般民用GPS的输出速率最大为20Hz(该频率下的民用GPS模块也较为罕见),普遍为10Hz,因此最终决定使用10Hz。
2、ALS数据输出速率
经过调研,普遍的ALS传感器数据输出速率也在1~10Hz,深入探究了一下原理,是由于光学量采集需要经过一个积分的过程,积分电路耗费了大量时间,导致ALS传感器的采样频率不高。
3、IMU数据输出速率
本系统中选型的IMU传感器,其加速度和陀螺仪的最大采样频率均为6666Hz,但是受限于控制板性能(树莓派I2C接口速率限制)和实际需要(无人机振动频率与旋翼每秒转数相同,测量该频率,经调研,250Hz的采样频率以上可以完成),最终确定了417Hz左右。尝试过更高的频率,同时启用了传感器自身支持的FIFO,但是在FIFO模式下,如果不采用循环FIFO,则FIFO满了后需要软复位才能继续采集,采用循环FIFO,数据输出速率太高,树莓派接口能力不足会导致FIFO发生覆盖,采回的数据错误。这里有更好的解决方案:可以使用树莓派的SPI接口,但是调试基本完成,且性能够用,因此就没再调试SPI接口,这是个教训,应该在开始调试之前充分论证和思考该使用的接口。
4、相机输出速率
经过实测,树莓派在1080P原图(一张图约6MB)的存储中,最快每秒可以存10帧左右(直接存储在SD卡中),考虑实际需求和树莓派性能,确定最后4~5帧每秒。
2.3 供电问题
供电使用的是现成的以18650为芯的移动电源,电池容量75Wh,最大输出功率60W。整个系统工作的峰值功率在10~11W之间,每次工作至少40min。电池容量满足要求。
对GPS使用单独供电的原因,是由于GPS在单点模式定位下,授时搜到卫星即可,定位需要追踪更多的卫星,功率不够会导致GPS模块不能对卫星保持正常追踪,会导致GPGGA报文中只有授时信息,没有定位信息。
2.4 GPS信号干扰问题
最开始GPS天线放置在树莓派、面包板电路旁边,被严重电磁干扰,导致GPS天线无法正常接收信号,无法实现授时、定位功能。将天线向上引出30公分以上后,这个问题得到了解决。
2.5 其它
1、原理样机需要自己设计结构,使用的是尼龙材料,该种材料比树脂材料更耐高温,有效防止由于电子元器件发热导致结构变形的问题。
2、树莓派电源虚接会导致系统文件损坏,需要重新烧录系统。(极力吐槽系统在SD卡中,弄个EMMC不好吗?)
3、开机自启动程序命令什么的,写在树莓派/etc/rc.local文件中。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 sigma_poet@126.com