0x00 前言
懒得给实验室的后辈们线下上课讲解怎么做电磁小车,就出篇博客简单说一下。
因为是简单讲解,所以太细节的内容不会展开,只是提供一个思路。
如果讲解过程中有错误的,欢迎评论区指出!
———— CJLU_Cyber
0x01 整体概述
- 从电磁信号的采集开始,电磁小车在有电磁线铺设的道路上行驶的过程中,两端传感器采集电磁信号
- 通过ADC将电磁信号转化为数字信号,该数字信号可以认为记录了小车当前的位置信息
- 把数字信号输入PID算法得出一个修正值
- 将这个修正值传给PWM模块进行占空比的修改,由于电机是通过PWM控制的,所以修改PWM波占空比可以调整电机的转速从而实现轮速差进行转向,最终实现巡线的效果
0x02 传感器&信号采集
传感器简单来说就是一个电容和一个电感的并联,然后两端接上导线连至下位电路。在经过磁场的时候传感器会产生电信号,我们后续会把这个电信号转化成数字信号。
信号采集的过程最好放在定时器中断里进行固定周期的采集。
传感器的制作
1、刮漆包线
漆包线就是前文说的导线,漆包线外面的一层是绝缘的,需要用锉刀等刮掉才能焊在传感器两端。
2、电容电感并联
在制作之前做好确保电容电感的值是预期的且可用的,可以用电表等方法测量。
3、成品封装
一辆小车上至少装2个这样的传感器才能完成巡线任务。
0x03 运算放大电路
传感器采集得到的电信号比较微弱,需要经过一个放大电路进行信号的放大再输入到ADC端口,并且大部分这种电路都可以通过一个滑动变阻器进行放大倍数的调节。
0x04 ADC转换&差比和
假设车上装了两个传感器,那么就会有两路模拟信号的输入,通过AD转化得到两个数字信号,这两个数字信号的大小可以认为是当前传感器所处的电磁场的强弱,可以自行将传感器拉近和拉远电磁线,观察信号的变化。
理想情况下,一对传感器等距离的放在电磁线两边,那么采集到的信号应该是一样的,如果不一样可以调节滑动变阻器的阻值使得一样。所以当小车偏离电磁线的时候,两个信号的值会发生变化,于是可以把转换得到的两个数字量( A 1 , A 2 A_1,A_2 A1,A2)做差,这个差值
就可以认为是小车偏离电磁线的程度。
后续把这个差值
作为PID控制算法的输入。这里有一个小技巧——差比和
I n p u t = A 1 − A 2 A 1 + A 2 ∈ [ 0 , 1 ] Input=\frac{A_1-A_2}{A_1+A_2}\in[0,1] Input=A