Kinetis 无人机:驱动电子速度控制器

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

在“ Kinetis 无人机:Graupner Race Copter Alpha 250 Q 框架结构 ”中,我为我的 Kinetis 无人机组装了框架。在这篇文章中,我将使用 飞思卡尔 FRDM-K22F 板驱动 ESC(电子速度控制器):

Graupner S3055 ESC(来源:Graupner)

电子调速器 (ESC)

Graupler Race Copter Alpha 250 套件包括 4 个 S3055 型电子速度控制器 (ESC) ( http://shop.graupner.de/webuerp/AI?ARTN=S3055 )。 ESC 基本上是一个小型微控制器板,它接收 PWM 信号并驱动无刷直流电机:

从 S3055 数据表我有这个数据:

  • 电压:2-4S LiPo(标称7.4-14.8V)
  • 尺寸:25x20x7 毫米
  • 重量:9 克
  • 最大电流:12A
  • BEC输出:1A/5V

电池消除电路

BEC 代表“电池消除电路”:基本上它意味着 ESC 可以为我提供 5V 电源,电池电压高达 1A。这样我就可以用 5V 为四轴飞行器上的 FRDM 板供电,不需要专用电源或电池 :-) 。 5V 提供给伺服电缆的红色 (5V) 电缆。稍后我将使用该 5V 为 FRDM-K22F 板供电。

伺服PWM

通常每四个伺服连接器将连接到远程伺服接收器,如 GR-18,它有多达 8 个伺服连接器:

Graupner GR-18 接收器(来源:Graupner)


这样的接收器获取遥控器信号,然后将 PWM 信号发送到 ESC。我打算使用这样的接收器并使用 SUMD(伺服的组合数字信号)馈入 FRDM-K22F。这样 FRDM 就可以从普通遥控器(除了蓝牙和 nRF24L01+)接收信号。我计划使用蓝牙和 nRF24L01+ 获取诊断数据并在室内驾驶四轴飞行器。但对于更远的距离和室外,我打算使用普通遥控器。

对 ESC 进行 PWM

不幸的是,ESC 数据表没有说明哪种 PWM 信号 :-( 。经过一些研究,我发现它需要一个正常的“伺服”信号(参见 https://en.wikipedia.org/wiki/Servo_control ):

  1. 信号频率:50 Hz(20 毫秒周期)
  2. 脉冲宽度(高电平有效)介于 1000 μs(零油门)和 2000 μs(全油门)之间

似乎信号频率必须至少为 50 Hz,但大多数 ESC 允许更高的频率达到 300 到 400 Hz 之间(参见 http://aeroquad.com/showthread.php?5502-Which-PWM-frequency- do-I-use-to-control-my-ESC )。不幸的是,我没有在 Graupner 数据表中找到任何数据 :-(

电调校准和初始化

脉冲宽度的最小值和最大值可以通过校准例程进行配置(请参阅 http://robots.dacloughb.com/project-2/esc-calibration-programming/ )。对于四轴飞行器,我想在 LOW 和 HIGH 之间使用尽可能大的范围。

要校准 ESC(S3055,但与其他 ESC 类似):

  1. 向 ESC 发送“最大油门”的 PWM 信号(比如 2000 μs PWM 占空比)。
  2. 从电池为 ESC 供电。
  3. ESC 发出 两声哔哔 声,表明他检测到信号。 ESC 将其存储为“最大位置”。
  4. 现在至少在 2 秒内,为低信号发送一个 PWM 信号(比如 1000 μs PWM 占空比)。
  5. 电调长响表示低位被识别存储。

要正常初始化 ESC:

  1. 使用 PWM 信号为 ESC 供电,为 ESC 提供“最小油门”(比如 1000 μs PWM 占空比)。
  2. ESC 发出哔哔声 一次 ,表明他检测到信号。
  3. 现在至少在 2 秒内,为低信号发送一个 PWM 信号(比如 1000 μs PWM 占空比)。
  4. 电调长响表示低位被识别存储。
  5. ESC 发出蜂鸣声以显示电池数量(电压),例如 4 次表示 14.8V
  6. ESC 发出“1-2-3”信号并准备就绪

下图显示了带有录音的校准(左侧)和正常初始化(右侧)的顺序:

电调校准和初始化



有了这个,我已经能够校准和初始化电机。我现在用一个小面包板将 4 个 ESC 连接到 FRDM-K22F:

FRDM-K22F 带四轴飞行器


设置了 4 个 PWM 组件来驱动电机:

电调组件


通过 USB CDC 和蓝牙的 Shell/命令行界面,我可以控制所有 ESC:

控制电调的外壳


概括

使用 ESC 可以轻松驱动四轴飞行器的无刷直流电机:我需要向 ESC 提供 PWM 信号,ESC 将驱动电机。

下一步是将 FRDM-STBC-AGM01 上的陀螺仪、磁力计和加速度计与 FRDM-K22F 一起使用。该项目的当前状态发布在 GitHub 上。

链接