题目:超声接近感知系统

(1)赛题主要考察接近感知系统的实现,可使用指示灯的亮灭来表征接近态和远离态

(2)以超声波技术为基础实现接近感知。可辅助使用加速度、陀螺仪或等其他传感器,来提高准确率(如提取接听电话动作中的距离、姿态、运动轨迹…等信息的变化)。

设计stm32pcb

设计姿态传感器pcb

由磁力计IST8310和陀螺仪BMI088组成。

由于先设计的硬件,并没确定使用的IO口,所以分为了两个板子,为了符合题目要求,pcb上打上通孔,便于使用螺丝连接。

使用MCU是stm32f407VGT6的型号,在使用usart进行串口通信的时候发现会出现,乱码的问题,最后发现问题的原因出在了,晶振的频率源头上,

#define HSE_VALUE 25000000 把25改为8.

使用两个超声波模块,使用spi和iic通信来读取姿态传感器的数据。

关于SPI的通信使用为了节省CPU的占有率,使用了串口DMA的通信方式,DMA传输将数据从一个地址空间复制到另一个地址空间, 提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。

关于这种pcb的贴片焊接,是建议用开一个钢网,之后刷锡膏,放器件,回炉加热就可以了。对于芯片来讲还是要开钢网的,由于此次没开钢网,导致有个别的引脚焊接在一起。

关于此次的pcb还有一个问题就是外部晶振坏了,所以导致定时器工作不稳定,数据出问题,所以当确定程序无误时候,查一下硬件,毕竟是自己做的,可能是出现了问题,所以时钟源使用的是RC的内部震荡。

之后超声波的使用是使用定时器来进行输入捕获,来实现高电平的脉宽时间读取,之后才能计算超声波的距离。

为了控制陀螺仪温度,控制零飘,所以使用了pid来控制温度。复习了一下pid的知识点

PID

姿态解算任务

姿态是反应物体相对于参考坐标系的指向。常使用欧拉角代表物体的姿态,描述物体姿态需要三个角度,分别是 yaw(偏航角), pitch(俯仰角),roll(横滚角)。Yaw(偏航角)是绕 z 轴的角度,pitch 是绕 y 轴的角度,roll 是绕 x 轴的角度。

mahony 算法是常见的姿态融合算法,将加速度计,磁力计,陀螺仪共九轴数据,融合解算出载体四元数

https://x-io.co.uk/open-source-imu-and-ahrs-algorithms/下载网址。放到工程里进行移植。