这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【Let'sdo2026第3期】基于边缘AI的电机状态检测加速度传感器适配

共2条 1/1 1 跳转至页

【Let'sdo2026第3期】基于边缘AI的电机状态检测加速度传感器适配

高工
2026-10-31 21:38:28     打赏

        串口打印打通后,剩下的就是驱动打通了,目前找到的设备的驱动,基本上都是非C语言的实现,需要转换成C语言的符合封装要求的驱动库。以前这部分都是靠人手撸代码编写,但现在不需要这么复杂了,直接把需求整理清晰,剩下的实现和初步验证交给大模型,我们做最后的最终验收和检查是否有不符合要求的点即可,大大降低了开发难度。

加速度传感器驱动适配

I2C接口配置

图片1.jpg

        从板卡规格书上看,CN10接口上的PB6和PB7可以作为硬件I2C使用,因此就直接在cubemx2上把这两个脚配置成I2C口。修改起来也简单,直接在cubemx2的外设页面使能i2c1并将SCL和SDA分别初始化为对应的GPIO(PB6/PB7),使能后再把工作模式设为快速模式(400K)即可。

提示词整理

        我直接给了这么些描述:

这个工程目前已经实现了串口打印和简单的gpio控制,并通过cubemx2打通了I2C接口(PB6/PB7),但项目需要的外设还没适配上,比如三轴加速度传感器(参考资料见E:\Users\user\Desktop\STM32C562\参考文件\三轴传感器资料,其中的实际代码为我需要使用的实际硬件对应的其他语言的实现),我需要你参考这份资料,编写一份该三轴加速度传感器的驱动文件,要求:驱动以注册方式实现(依赖的接口(I2C/SPI之类的总线,单位延时等具体实现)在初始化时通过回调函数的方式注册进去,后续使用时直接内部使用回调函数),帮忙看看如何实现

        之后把这些内容交给codex后,codex就自动进行分析并给方案,我审核给意见,最终方案确认没问题后,通知按方案修改。

        codex半个小时内就出了一版codex自测OK的代码,经过编译下载,最终确认功能符合要求,不过代码写的就差了点意思,但这次的目的并不是为了写可长期维护的代码,因此就不再花更多精力去琢磨代码怎么优化了,也不再去贴代码了(个人觉得codex写的太重,贴出来会让读的人理解费劲)。

最终硬件接线

C562接口树莓派底板接口lis3dh接口
GND(CN6)gndgnd
5V(CN6)vbusvcc
PB7(CN10)GP17sda
PB6(CN10)GP16scl

最终效果

Hello EEPW
LIS3DH ready: I2C1, addr=0x19, unit=mg
LIS3DH: X=0 mg, Y=-84 mg, Z=1008 mg
LIS3DH: X=12 mg, Y=-72 mg, Z=996 mg
LIS3DH: X=12 mg, Y=-72 mg, Z=984 mg
LIS3DH: X=12 mg, Y=-60 mg, Z=1008 mg
LIS3DH: X=0 mg, Y=-72 mg, Z=1020 mg
LIS3DH: X=0 mg, Y=-72 mg, Z=1008 mg
LIS3DH: X=24 mg, Y=-84 mg, Z=1008 mg
LIS3DH: X=48 mg, Y=-252 mg, Z=1272 mg
LIS3DH: X=-312 mg, Y=-288 mg, Z=-852 mg
LIS3DH: X=-360 mg, Y=-336 mg, Z=-828 mg
LIS3DH: X=-444 mg, Y=-288 mg, Z=-636 mg
LIS3DH: X=-348 mg, Y=-540 mg, Z=1068 mg
LIS3DH: X=-192 mg, Y=-120 mg, Z=-612 mg
LIS3DH: X=-696 mg, Y=-684 mg, Z=1068 mg
LIS3DH: X=-276 mg, Y=780 mg, Z=420 mg
LIS3DH: X=156 mg, Y=-720 mg, Z=696 mg
LIS3DH: X=204 mg, Y=-576 mg, Z=864 mg
LIS3DH: X=-348 mg, Y=-108 mg, Z=864 mg
LIS3DH: X=-216 mg, Y=-216 mg, Z=876 mg
LIS3DH: X=156 mg, Y=-108 mg, Z=996 mg
LIS3DH: X=48 mg, Y=-60 mg, Z=1044 mg
LIS3DH: X=12 mg, Y=48 mg, Z=996 mg
LIS3DH: X=0 mg, Y=-72 mg, Z=1008 mg
LIS3DH: X=24 mg, Y=-72 mg, Z=1044 mg
LIS3DH: X=12 mg, Y=-96 mg, Z=996 mg
LIS3DH: X=0 mg, Y=-48 mg, Z=996 mg
LIS3DH: X=12 mg, Y=-72 mg, Z=1008 mg
LIS3DH: X=12 mg, Y=-72 mg, Z=1020 mg
LIS3DH: X=12 mg, Y=-96 mg, Z=1008 mg
LIS3DH: X=12 mg, Y=-84 mg, Z=1020 mg

        传感器平放时,z轴读到的加速度值接近重力加速度,而更换摆放角度,会发现只要是有一个轴在重力加速度方向附近,他的值就会在1G附近,说明数据已经正确读取




关键词: 基于     边缘     电机     状态     检测     加速度     传感器     适配    

专家
2026-11-01 10:07:57     打赏
2楼

谢谢楼主分享


共2条 1/1 1 跳转至页

回复

匿名不能发帖!请先 [ 登陆 注册 ]