# LocateMagnet
**Repository Path**: makinglu/LocateMagnet
## Basic Information
- **Project Name**: LocateMagnet
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-10-02
- **Last Updated**: 2024-10-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 磁定位系统 LocateMagnet
## 简介
这个项目来源于一个课设,要求使用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**
## 复刻流程
1. PCB投板:可以直接拿gerber压缩包去投板
2. 购买元件:bom文件夹里有元件清单
3. 焊接:建议使用回流焊,没有的可以用热风枪代替,建议**先焊接除传感器外的其他元件**,测试可用后,再焊接传感器。该芯片是WLP晶圆级封装,很小,可以先在焊盘上涂助焊剂,放上芯片,热风枪吹焊,同时在显微镜下观察,当芯片轻微移动归位时,用镊子轻轻推动,如果芯片被推后能够归位,说明焊接成功。
4. 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芯片就算成功
5. stm32固件烧录:正常使用Keil下载代码,调试器选择DAPLINK
Optional:如果板载芯片是GD32,请安装`Tools/GigaDevice.GD32F10x_DFP.2.0.3.pack`,然后选择`..._GD32_Compatible`的Keil工程下载
6. 串口调试助手:使用DAPLINK自带的串口输出数据,如果传感器都正常,应该能读到U ··· V ··· W ···系列数据,不会有No Ack提示
7. 打印测试架: 注意测试架只能放入直径3mm的小磁铁
8. 打开`compute_NT.mlx`:串口号要改成自己的串口,逐块运行代码,先移开磁体,获得校准矩阵,然后放上磁体,填入磁铁真实位置,如果读到的是空矩阵,再运行两遍尝试,最后计算出N_T这个和磁铁磁化强度相关的常数
9. 打开`real_time.m`:注意MATLAB必须先定位到`real_time`文件夹,填入N_T常数,先移开磁体,运行,然后再放上磁铁,最开始会有点卡,连续运行就会变流畅
## 相关链接
> [Arm Keil | Devices](https://www.keil.arm.com/devices/)