元驭机器人元驭机器人Hall Lab / 教学 Wiki
本页目录 9 个小节

八个实验

我们先按顺序完成直线板的实验,再换编码器。前五个实验可以围绕同一套直线平台进行;没有硬件时,先做实验 0。

自己制作板卡时,先按 嘉立创裸 PCB 下单 补齐并核对制造文件,再下单 HallPos 裸板、备齐电子元件,随后按 手工焊接 装配和检查。现有 PDF 不能直接下单,Gerber、钻孔及可核对的 BOM 尚未齐备;确认设计前不填写猜测的制板参数。已有成品板可跳过制作,仍需完成实验 1 的检查。

其余材料按 复刻准备 备齐:Φ10 × 3 mm 轴向充磁磁铁、Φ6 × 3 mm 径向充磁磁铁各一颗和 USB 转 RS485 模块;测试结构可打印机械目录中的 HALLPOS、ENCODER 两个 STEP 模型。

实验 0:移动磁铁,看数据变化

在主页选直线模式,把磁铁从 −15 mm 慢慢拖到 +15 mm,观察三路曲线的峰值顺序。停在 0、5、10 mm,比较毫米和米,再运行离线 Python 示例。

这里先用网页里的理想模型观察信号:离磁铁近的传感器通常响应更明显,多个不同位置的传感器能提供更多信息。只留中间一颗时,左右对称位置可能产生相似电压。

试着解释 5 mm = 0.005 m,以及为什么单颗霍尔电压不能唯一决定磁铁在哪一侧。

实验 1:直线板第一次上电

自焊板先完成 焊后检查,不要焊完就直接接电。再对照 硬件接线 找到 HallPos 上的 U1/U2/U4、U3、U6、U7、U5 和 CN1,按下面顺序首次上电;成品板也从断电查线开始:

  1. 断电核对 U5:1=5V、2=GND、3=485_A、4=485_B。按图纸确认插头朝向,固定脚不作通信使用。
  2. 用限流电源上电,测量 5 V 输入和 3.3 V 电源,记录实际电流。工程没有可直接采用的整板典型电流值。
  3. 先接一块板,用短线和自动收发 USB-RS485 适配器,共用参考地。端接与偏置结合实际总线确认;USB-TTL 的 TX/RX 不能当作 A/B。
  4. 空白板或固件不明时,先 编译与烧录;已有固件后发送 GET_INFO,检查应答和 CRC。

记录板卡构型、版次、供电、电流限制、静态电流、转换器型号和接线照片。检查完成后,应能在图纸上指出外部 5 V 怎样变成 MCU 和 ADC 使用的 3.3 V。

实验 2:只看三路原码

先固定 PCB,再让磁铁沿导向移动,保持高度和姿态。手持磁铁同时改变几个量,很难判断变化来自哪里。

  1. 移远磁铁,记录三路静态 ADC。
  2. 用参考尺选几个位置,每处停稳后记录原码;正向、反向各走一次。
  3. 改变一次气隙,重测几个点,比较曲线。

三路应有响应且没有明显削顶。一路持续接近 0 或 4095 时,先查接线和磁路。这里的原码仍是 12 位:64 倍过采样后右移 6 位,没有变成 18 位。

实验 3:输出毫米

先读 GET_INFO。固件默认角度模式,直线 PCB 也要检查类型;切换到 profile=2 时会清除旧校准和零点,不必每次采样重复设置。

  1. 按 直线基线 拿开磁铁校准,再把磁铁放回固定气隙的工作区。
  2. 先以 U2 对应位置作参考原点,在 −10、−5、0、5、10 mm 等位置比较输出。
  3. 记录磁铁、气隙和 σ,用一组位置选参数,换另一组位置检查误差。

确认方向和单调性,知道 100 个输出计数代表 1 mm。软件内部限幅约 ±15 mm,实际可用范围要靠参考尺比较;设零点不能修正全行程误差。

若把单个磁铁换成周期磁条,原有高斯比值公式还缺哪些信息才能确定绝对位置?

实验 4:通过协议读位置

对照 协议 看一帧 GET_DATA,找到帧头、长度、SRC/DST、状态和 CRC。然后用 串口示例 操作:

  1. 记录实际 profile、原始位置整数、米单位和主机接收时间。
  2. 固定磁铁,连续读几帧;移到另一处,再观察响应。
  3. 拔掉通信线,确认程序报告超时,不把上一帧继续当成新位置。

同一个整数 1000,在直线模式表示 10 mm,在角度模式表示 10°。主机接收时间含通信和调度延迟,20 ms 上报参数也不是 ADC 采样周期。

实验 5:改成旋转编码器

先画出 HallPos 的三点直线排列,再对照 PCB 与机械 看 Encoder 的布局和磁铁安装。保留的是 5 V→3.3 V 供电、MCU、三路采样、DMA、RS485 和上位机;改变的是空间排列、磁铁运动、轴心和气隙要求、计算公式与单位。

换好旋转硬件后:

  1. 选择角度 profile=1,不接电机,手动慢转,检查三路原码和相位。
  2. 发送 CAL_BEGIN,保持安装关系并转满至少一圈,再发 CAL_END。
  3. 检查角度变化和方向,重新设机械零位;不能复用直线基线和零点。

观察一圈中的周期变化,并重复回到零位。如果磁路每机械圈有 p 个电气周期,想一想 p>1 时为什么会产生机械位置歧义。

实验 6:回绕和误差

在 0°/360° 附近慢转并记录相邻角度。用最短有符号角差处理,359° 到 1° 是正向 2°,不应变成反向 358°。

然后选几个已知参考角,进行一下正转、反转和重复回零测试。按 测量方法 分别报告编码单位、参考器具误差、静态噪声、测量误差和重复性。0.01° 是编码单位;曲线光滑也可能有固定偏差。

与直线版对照:直线估计会限幅,角度会周期回绕。主机累计圈数依赖连续采样,丢帧、高速旋转和断电都可能使累计失效。

实验 7:对应到机器人机构

按 机器人接入,先记录滑台或夹爪,再记录旋转关节:

  • 直线:磁铁在运动件、PCB 在静止件,标明方向、零点和位移与夹爪开口的关系。
  • 旋转:说明测在电机轴还是减速器输出端,记录传动比、方向和零点。
  • 数据:统一为 m / rad,保留主机接收时间,定义超时与异常状态处理;类型变化后不能混入旧单位数据。

手动走完整个候选行程,检查方向、限位、回绕和数据间隔。让同伴按记录再做一次,再讨论电机控制。ROS 2 节点是后续扩展作业。

实验记录

下面字段可复制到 CSV,一行对应一次停稳采集:

trial,board_revision,profile,magnet,air_gap_mm,reference_value,reference_unit,raw_u1,raw_u2,raw_u4,reported_count,reported_unit,flags,host_receive_time,approach_direction,notes

先写测试点、器具、重复次数、允许误差和异常处理,再填数据。保留原码、状态位和未平滑的数据,方便复查。