这个项目来源于一个课设,要求使用AMR磁传感器对小磁铁进行三维空间定位,定位范围1cm x 1cm x 1cm,定位精度要求达到0.1mm。
本项目采用了5x5 AMR磁传感器阵列,在远超课设要求的范围下,同时满足精度要求,此外还能实时检测,画出移动轨迹。
- Firmware: STM32代码
- Hardware: PCB工程
- Mechanical: 测试架和磁铁胶囊的3D模型
- Result: 测试结果
- Software: MATLAB上位机代码
- Tools: WCHLINK固件、烧录器、配置器
- Render: 渲染图
- Keil 5
- STM32CubeMX
- KiCAD 6
- MATLAB 2023b
-
PCB投板:可以直接拿gerber压缩包去投板
-
购买元件:bom文件夹里有元件清单
-
焊接:建议使用回流焊,没有的可以用热风枪代替,建议先焊接除传感器外的其他元件,测试可用后,再焊接传感器。该芯片是WLP晶圆级封装,很小,可以先在焊盘上涂助焊剂,放上芯片,热风枪吹焊,同时在显微镜下观察,当芯片轻微移动归位时,用镊子轻轻推动,如果芯片被推后能够归位,说明焊接成功。
-
WCHLINK固件烧录:PCB板载一个WCHLINK,方便调试,先短接PCB上的UPG焊盘,连接PC,检测到设备后,使用WCHISPTool下载
WCHLINK_V02.03.bin
,然后把UPG焊盘断开,再次连接PC,初次烧录固件,WCHLINK处于RISC-V模式,打开WCH-LinkUtility,点Get获取当前Mode,切换成WCH-LinkDAP-WINUSB,点Set,配置好后WCHLINK会变成ARM模式,如果使用Keil能检测到stm32芯片就算成功 -
stm32固件烧录:正常使用Keil下载代码,调试器选择DAPLINK
Optional:如果板载芯片是GD32,请安装
Tools/GigaDevice.GD32F10x_DFP.2.0.3.pack
,然后选择..._GD32_Compatible
的Keil工程下载 -
串口调试助手:使用DAPLINK自带的串口输出数据,如果传感器都正常,应该能读到U ··· V ··· W ···系列数据,不会有No Ack提示
-
打印测试架: 注意测试架只能放入直径3mm的小磁铁
-
打开
compute_NT.mlx
:串口号要改成自己的串口,逐块运行代码,先移开磁体,获得校准矩阵,然后放上磁体,填入磁铁真实位置,如果读到的是空矩阵,再运行两遍尝试,最后计算出N_T这个和磁铁磁化强度相关的常数 -
打开
real_time.m
:注意MATLAB必须先定位到real_time
文件夹,填入N_T常数,先移开磁体,运行,然后再放上磁铁,最开始会有点卡,连续运行就会变流畅