1. 项目概述
这个项目源于我在智能车竞赛指导过程中遇到的一个实际问题:如何让车模在没有GPS信号的室内环境中实现精准导航。传统的光电传感器受环境光线影响太大,而摄像头方案又对处理器的算力要求较高。经过多次尝试,最终选择了150kHz无线导航信号作为解决方案。
150kHz频段属于低频无线电波,具有穿透性强、抗干扰能力好的特点。我们使用的是一款基于来复式再生检波原理的接收模块,它能将接收到的磁场强度直接转换为模拟电压信号输出。这种设计最大的优势是简化了后端处理电路,普通单片机通过ADC就能直接读取信号强度,非常适合嵌入式系统应用。
2. 硬件设计与原理分析
2.1 接收模块核心电路
这款接收模块的核心是一个LC谐振回路,谐振频率设计在150kHz。电路采用了来复式再生检波结构,这种设计在早期无线电接收机中很常见,但在现代电子设计中已经很少见了。它的工作原理可以这样理解:
- 天线线圈感应到150kHz的电磁场信号
- LC谐振回路选择性地放大目标频率信号
- 再生反馈电路将部分输出信号反馈到输入端,形成正反馈
- 检波二极管将高频信号转换为直流电压
这种设计的巧妙之处在于,再生反馈可以显著提高电路的Q值(品质因数),使得对特定频率的选择性更好,同时还能提供一定的增益。实测表明,这种电路结构在150kHz频段的灵敏度比普通LC检波电路高出约20dB。
2.2 模块接口与参数
接收模块提供了三个主要接口:
- VCC:3.3V-5V供电
- GND:地线
- OUT:模拟电压输出(0-VCC)
关键性能参数:
- 工作频率:150kHz±5kHz
- 灵敏度:≥50mV/μT
- 输出阻抗:约1kΩ
- 静态电流:<5mA
在实际测试中,当模块距离发射源1米时,输出电压范围约为0.5V-4.5V(5V供电),具有很好的线性度。
3. 方向性测试方案
3.1 测试平台搭建
为了验证模块的方向特性,我搭建了一个简单的测试平台:
- 固定位置的150kHz信号发射源(使用NE555驱动的LC振荡电路)
- 接收模块安装在舵机转盘上(SG90微型舵机)
- Arduino Nano作为控制器,负责舵机角度控制和电压采集
- 电脑通过串口接收数据并绘制方向图
测试环境选择了空旷的实验室,远离大型金属物体和强电磁干扰源。发射天线和接收模块都放置在离地1米高的绝缘支架上,以减少地面反射的影响。
3.2 测试程序设计
测试程序主要完成三个功能:
- 控制舵机以5°为步长旋转
- 在每个角度点采集10次电压值取平均
- 通过串口发送角度-电压数据对
cpp复制#include <Servo.h>
Servo myservo;
void setup() {
Serial.begin(115200);
myservo.attach(9);
analogReference(DEFAULT);
}
void loop() {
for(int angle = 0; angle <= 180; angle +=5){
myservo.write(angle);
delay(500); // 等待舵机到位
float sum = 0;
for(int i=0; i<10; i++){
sum += analogRead(A0) * 5.0 / 1023;
delay(50);
}
float voltage = sum / 10;
Serial.print(angle);
Serial.print(",");
Serial.println(voltage, 2);
}
}
4. 测试结果与分析
4.1 方向特性曲线
通过旋转测试获得了模块的方向特性曲线(如图1所示)。从曲线可以看出:
- 当线圈平面与磁场方向平行时(0°和180°),输出电压达到最大值
- 当线圈平面与磁场方向垂直时(90°),输出电压降至最低
- 方向图呈典型的"8"字形,符合理论预期
- 在45°和135°位置,输出电压约为最大值的70%

注意:实际测试中发现,当模块旋转速度过快时,输出电压会出现滞后现象。建议测试时每个角度点保持至少300ms的稳定时间。
4.2 噪声与稳定性
在静态测试中(模块固定不动),输出电压的波动范围小于±10mV,表现出很好的稳定性。动态测试时(舵机连续旋转),由于机械振动等因素,噪声略有增加,但仍在可接受范围内。
通过FFT分析发现,输出信号中的主要噪声成分来自:
- 50Hz工频干扰(约5mVpp)
- 舵机PWM噪声(约3mVpp)
- 电源纹波(约2mVpp)
这些噪声可以通过简单的RC滤波有效抑制。在实际应用中,建议在模块输出端增加一个截止频率10Hz左右的低通滤波器。
5. 导航应用方案
5.1 双模块差分定位
基于方向特性测试结果,我设计了一套双模块差分定位方案:
- 将两个接收模块呈90°夹角安装
- 实时读取两个模块的输出电压V1和V2
- 计算方向角θ = arctan(V1/V2)
- 通过PID控制调整车模行进方向
这种方案的优点在于:
- 消除了绝对信号强度的影响
- 对发射源距离变化不敏感
- 计算量小,适合低端MCU
5.2 实际应用效果
在1:10的智能车模型上测试表明:
- 直线跟踪误差<±2cm(跑道宽度30cm)
- 最大跟踪速度可达1.5m/s
- 抗干扰性能良好,不受环境光线变化影响
特别值得注意的是,这套系统在弯道处的表现尤为出色,能够提前感知弯道方向,实现平滑过渡。相比之下,传统的光电传感器往往在弯道处会出现"甩尾"现象。
6. 常见问题与解决方案
6.1 信号饱和问题
当模块距离发射源过近时(<30cm),可能会出现输出饱和现象。解决方法:
- 降低发射功率
- 在接收端并联分流电阻
- 采用软件限幅处理
6.2 多径干扰
在金属物体较多的环境中,反射波会导致方向判断错误。应对措施:
- 选择开阔的测试场地
- 使用屏蔽线连接接收模块
- 在算法中加入移动平均滤波
6.3 温度漂移
长时间工作后,模块输出会出现约0.5mV/℃的漂移。补偿方法:
- 定期进行零点校准
- 使用温度传感器实时补偿
- 选择低温漂的运放进行信号调理
7. 进阶优化方向
通过实际项目验证后,我认为这套系统还有以下优化空间:
- 频率自适应:增加PLL锁相环电路,自动跟踪发射频率变化
- 数字接口:改用I2C或SPI接口的数字输出模块,提高抗干扰能力
- 阵列化设计:使用4个模块组成十字阵列,提高定位精度
- 混合导航:结合编码器数据实现航位推算,弥补无线信号的盲区
特别值得一提的是,这套方案的成本极低,单个接收模块的BOM成本不到20元,非常适合学生竞赛和业余项目。我已经将完整的设计文件和测试代码开源,希望能帮助到有类似需求的开发者。
