文章目录
前言
16.1 燃油流量传感器
16.1.1 连接到自动驾驶仪
16.2 燃油液位传感器
16.2.1 PWM油位传感器
16.2.2 模拟油位传感器
前言
在 4.0 及以后的固件版本中,ArduPilot 提供了使用燃油流量和液位传感器的能力,此外还有电池监控器。支持脉冲输出燃油流量传感器、PWM 输出燃油液位传感器和模拟输出燃油液位传感器。正如模拟电池监测器提供电流测量,并由自动驾驶仪计算容量状态一样,这些传感器提供燃料使用或液位状态测量,以实现液体燃料系统的相同报告和监测。
16.1 燃油流量传感器
燃油流量传感器为每单位的燃料消耗提供一个脉冲,如下图所示,可以像电池一样用于 ArduPilot,具有监测、显示、失控保护等功能。
图片来源:BIO-TECH
消耗的安培和毫安时的显示/记录/限制现在实际上是消耗的升/小时和毫升。电压将始终报告为 1.0V。
16.1.1 连接到自动驾驶仪
自动驾驶仪(autopilot)上的任何 GPIO 引脚都可以用来连接到传感器的输出。如果是集电极开路输出,则需要一个 10kOhm 的外部电阻上拉到 3.3V。对于 Pixhawk 风格的自动驾驶仪,任何 AUX 引脚都可以使用。对于大多数其他自动驾驶仪,可以使用上部的 PWM 输出。在这两种情况下,必须通过设置 BRD_PWM_COUNT 低于可用于 PWM 的输出总数,使其不再作为 PWM 输出使用。
!Note
在 4.2 及以后的固件版本中,设置 PWM/SERVO/MOTOR 输出为 GPIO 功能的方法有所改变。不再使用 BRD_PWM_COUNT,而是将单个 SERVOx_FUNCTION 参数设置为"-1"。如果设置为"0",它仍然是一个 PWM 输出,没有被分配到一个功能,并且在电路板安全没有激活时输出该输出的微调值。如果伺服功能被"镜像"到远程设备上,如 DroneCAN 或 KDECAN ESC,那么为了将自动驾驶仪板的相应输出引脚改为 GPIO,但允许 SERVOx_FUNCTION 仍被分配给远程设备,可以使用 SERVO_GPIO_MASK 参数将板上的引脚分配为 GPIO,而不影响远程设备的 SERVOx_FUNCTION 的分配。
例如,如果板子通常提供 6 个输出,将 BRD_PWM_COUNT 设置为 5 将使 PWM 输出 6 可以作为 GPIO 使用。当作为 GPIO 使用时,分配给该输出的引脚号码需要从其 hwdef.dat 文件中确定,如下图所示(here),当作为 GPIO 使用时,PWM6 被分配为 GPIO 引脚 55:
!Note
这些传感器有时会因为振动而提供错误的数据。这将导致自动驾驶仪认为通过传感器的燃油量高于从油箱消耗的燃油量。
16.2 燃油液位传感器
16.2.1 PWM油位传感器
支持输出与油箱中剩余油量成比例的 PWM 信号的油位传感器,如下面所示的由福克斯(Foxtech)科技提供的传感器。
消耗的毫安时的显示/记录/限制现在实际上是消耗的毫升数,1100 us PWM 输入表示空,1900 us PWM 表示满。电压将始终报告为 1.0V。电流是未定义的。
任何具有 GPIO 功能的引脚都可以作为传感器的 PWM 输入。
参数设置
与模拟电池电流和容量监测一样,关键参数是:
- BATT_MONITOR:这设置了传感器的类型。在这种情况下,11 型为脉冲燃油流量传感器,12 型为 PWM 燃油液位传感器;
- BATT_CURR_PIN:这是连接传感器的 GPIO 引脚;
- BATT_AMP_PERVLT:对于燃油流量传感器来说,这是以每脉冲毫升为单位设置的;
- BATT_CAPACITY:这是以毫升为单位的容量;
- BATT_LOW_MAH:这是以毫升而不是以毫安时为单位设置的;
- BATT_CRT_MAH:这是以毫升而不是以毫安时为单位设置的。
16.2.2 模拟油位传感器
ArduPilot 4.3 及以后的版本支持输出电压的油位传感器。这些类型的传感器有时也被称为燃油发送器,并且从许多制造商那里广泛获得。就像 PWM 类型的传感器一样,油箱中估计的液体体积显示为毫安时,而现在实际上是毫升数。
任何具有模拟功能的引脚都可以作为传感器的输入。仔细考虑所选 ADC 引脚能够测量和容忍的最大电压。添加一个外部分压器可能是必要的。为了帮助校准这些类型的传感器,ArduPilot 在模拟引脚上看到的电压显示在电池电压区域。
有一个低通滤波器的功能,以减少油箱晃动对测量油位的影响。电池电流栏显示的是通过低通滤波器的电压。建议低通滤波器的范围在 0.2Hz 和 0.5Hz 之间。将滤波器设置为 -1 的值将禁用它,并使用来自模拟引脚的未经过滤的电压。即使过滤器被禁用,过滤后的电压值也将以 0.3Hz 的截止频率被记录下来。
!Note
该功能假设油箱形状为线性,油箱中的燃料分布均匀。它不会考虑到非均匀形状的油箱或倾斜的燃料水平。在设置失控保护值时,应考虑到这一点。
参数设置
- BATT_MONITOR:设置传感器的类型。在这种情况下,对模拟油位传感器使用 24 型;
- BATT_CAPACITY:这是以毫升为单位的容量;
- BATT_FL_VLT_MIN:这是油箱为空时在模拟引脚上看到的最小电压;
- BATT_FL_V_MULT:这是用模拟引脚上测得的最小和最大电压计算的乘数。它的计算方法是1/(满电压-空电压);
- BATT_FL_FLTR:这是低通滤波器的频率,单位是赫兹。数值为 -1 时,滤波器失效,未经过滤的电压被用来确定燃料水平;
- BATT_FL_PIN:这是连接传感器的模拟引脚。