日常·唠嗑: 2020已经过去,回首这一年,真的经历了很多,申报项目、集创赛、电赛、机械创新赛、挑战杯、写博客、遇见她……一路走来磕磕碰碰,也成长了许多。在2021伊始,写下这篇博客博客,希望能不忘初心,也希望每个人能越来越好,心想事成。

文章目录

  • 前言
  • 一、什么是电调、无刷电机
    • 1、电调
    • 2、无刷电机
  • 二、如何接线
  • 三、 程序驱动
    • 1、FPGA程序(Verilog)
    • 2、Arduino程序(C)
  • 总结

前言

我的大创项目,广东科技基金项目申报的都是关于水陆两栖的作品,动力装置难免需要用到风力推进,普通电机体积大,转速慢,基本无法满足需求。经过研究,我发现无人机使用的无刷电机就可以符合这些要求,降低整个作品的重量,还能提供充足的动力。从去年11月,我就一直在想做一下无刷电机的程序控制,但是由于很多事堆积在一起,每次看一下就放弃了,没去深入研究。最近总算下定决心解决这一问题了,在网上基本找不到FPGA控制无刷电机的相关资料(就连单片机控制无刷电机的程序都很难找到),在这里我将自己最近的学习所得在这里分享给大家。先看一下我做的作品效果视频:

基于FPGA:电调与无刷电机控制

一、什么是电调、无刷电机

1、电调

电调又称电子调速器,指的是根据控制信号调节电动机的转速。电调的连接一般是和输入线和电池连接,电调的输出线与电机连接,电调的信号线与接收机连接。电调最主要是用在航模、车模、船模、飞碟以及飞盘的玩具模型上面,这些模型可以通过电调驱动电机完成的各种的指令,达到与真实一样的效果。

关于电调的控制信号(重点): 电调信号是pwm信号,信号频率为50HZ,一个周期为20ms。对于电调来讲, 高电平脉宽为1ms表示停转(低于1ms的时候电机会发出滴滴的声音),高电平脉宽为2ms表示满油门运转(可以调整周期时间来控制转速,范围为1ms~2ms); 注: 其实无刷电机的驱动方式跟舵机一模一样。对于舵机来说1.5ms是归中,1ms和2ms分别为左右满舵。值得一提的是,电调有双向以及单向的,双向的可以通过程序控制电机正反转,双向电调1ms的时候,为电机满速反转。单向电调,无刷电机三根线与电调三根线接即可,接线方式任意,若发现电机旋转方向相反,只要调整上述三根的任意两根线即可。电调与舵机的pwm驱动时序图:

2、无刷电机


电机参数: KV额定值为1000,可以使用2S,3S或4S LiPo电池供电,并且需要30A ESC。 无刷电动机的KV额定值定义了无负载时每伏电动机的RPM。在这种情况下,1000KV意味着,例如,如果我们为电动机提供2S锂电池,其电压为7.4伏,则电动机的最大RPM可以达到1000的7.4倍,即7400 RPM。无刷电机非常耗电,最常用的供电方法是使用锂聚合物电池。 LiPo电池的“ S”号表示该电池有多少个电池,每个电池的电压为3.7V。在实验中,我使用的是3S LiPo电池,该电池具有3节电池且为11.1V。因此,我可以预期我的电机将达到11100的最大RPM。
最后,在实验中要使用的20A电调,它可以满足电动机的要求。 ESC的一侧有3条线,用于控制电动机的三相,而另一侧则有2条线,为信号线和GND,用于接收开发板的pwm信号和共地。 注: 有些电调这一侧是有三根线的,一根为信号线,另外两根为+5V和GND用来给开发板供电。我使用的这款是没办法通过电调给开发板供电的,需要另开接电源给开发板供电。

二、如何接线


图片中,电调ESC一侧三个口接电机三根线(随便接,没有顺序),另外一侧,有4根线(有一些电调是5根,多出来一根可以给开发板供电),红线(粗),黑线(粗)接电池正负极,白线(细)接开发板pwm引脚,黑线接开发板GND共地。

三、 程序驱动

1、FPGA程序(Verilog)

module red_run(sys_clk,sys_rst_n,data,   //data为控制信号输入,这里我用的是红外遥控来控制转速,你们可以把它改成开发板按键控制就好了pwm_out);input sys_clk;input sys_rst_n;input [7:0] data;output pwm_out;wire sys_clk;wire sys_rst_n;wire [7:0] data;reg pwm_out;parameter           s=1000_000,//20ms-----Ts0=125_000,//2.5ms----180s1=100_000,//2ms-----135s2=75_000,//1.5ms----90s3=50_000,//1ms-----45s4=25_000;//0.5ms---0s5=60_000,reg  [15:0]  period_cnt ;   //1khz 1ms  1ms/20ns=50000reg  [31:0]   cnt_r; reg [31:0] cnt;             always@(*)beginif(!sys_rst_n)begincnt_r <= 31'd0;endelsecase(data)8'd22: cnt_r <= s4;8'd25: cnt_r <= s3;8'd13: cnt_r <= s2;8'd12: cnt_r <= s1;8'd24: cnt_r <= s0;8'd94: cnt_r <= s5;default:begincnt_r <= s3;   endendcaseendalways@(posedge sys_clk or negedge sys_rst_n)beginif(!sys_rst_n)cnt <= 31'd0;else if(cnt >= s)cnt <= 31'd0;elsecnt <= cnt + 1'b1;endalways@(posedge sys_clk or negedge sys_rst_n)beginif(!sys_rst_n)pwm_out <= 1'b0;else if(cnt <= cnt_r)pwm_out <= 1'b1;elsepwm_out <= 1'b0;end
endmodule    //red_run

2、Arduino程序(C)

#include<Servo.h>
Servo ESC; //Servo函数用来产生pwm信号
int poLValue;
void setup(){//ALLach the ESC on pin 9ESC.attach(9,1000,2000); //(pin,min pulse width,max pulse width in)}
void loop(){potValue - analogRead(A0);poLValue - map(poLValue,0,1023,0,180);ESC.write(potValue);
}

总结

去年三月份申请的大创,一直等到现在才动手第一步,后面要再努力点了。文章有许多东西可能不是很严谨,后面再查阅相关资料进行修改补充,也希望每个学习的人一起提出来,一起完善文章,谢谢。

基于FPGA:如何通过电调控制无刷电机(包含FPGA及Arduino程序)相关推荐

  1. 使用Arduino UNO以及好盈电调控制无刷电机

    文章目录 前言 1. 实验设备概览 2. 好盈电调控制 3. Arduino UNO 总结 前言 学习如何使用Arduino UNO控制低成本航模无刷电调. 1. 实验设备概览 实验设备包含: 3s锂 ...

  2. 瑞萨单片机解调好盈电调控制无刷电机

    最近刚接触四旋翼,主控用的是瑞萨的RX23T系列,表示以前从来没有接触过瑞萨的单片机,所以拿到手一脸的懵逼.在我好不容易搞懂了开发环境的使用,把在某宝上寻得的资料烧写到单片机上,期待电机嗡嗡转起来,可 ...

  3. 用STM32F103单片机控制电调制动无刷电机

    用电调控制无刷电机制作蓝牙遥控飞艇 [注:学习STM32总结做的笔记,大神勿喷.有不足之处还望不吝赐教,谢谢.工程代码在最后.] 蓝牙控制 调控电调 无刷电机 STM32F103单片机 用电调控制无刷 ...

  4. 单片机STM32直连电调控制航模涵道电机的方法总结

    单片机STM32直连电调控制航模涵道电机的方法总结 文章目录 单片机STM32直连电调控制航模涵道电机的方法总结 前言 一.硬件情况 二.涵道电机两种常见的驱动方式 1.有线控制方式 2.无线控制方案 ...

  5. 电调控制直流无刷电机

    实验材料: 1.直流无刷电机(A2212-10 KV:1400) 2.好盈天行者电调 3.stm32c8t6核心小板 先了解一下无刷电机工作原理:https://www.bilibili.com/vi ...

  6. 从方波控制到无感FOC电调,什么促使电机系统发生巨变?

    从方波控制到无感FOC电调,什么促使电机系统发生巨变? 采用方波控制算法的电调,让无刷电机真正被引入航模及无人机领域.不过在使用过程中,这种控制算法的劣势也越来越明显.这也让一种早已有之的算法--FO ...

  7. stm32单片机控制好盈电调带动T80电机转动

    32单片机通过好盈电调控制T80无刷电机 文章目录 32单片机通过好盈电调控制T80无刷电机 电调的控制原理 我们为什么需要电调 输入电调控制信号的要求 怎么解锁电调 电调的接线 单片机代码部分 PW ...

  8. 测试三相无刷电机驱动器 XXD2212 电调

    简 介: 过测试一款三相无刷电机电调,测量它的基本使用方式.由于该电调具有自动电压保护,所以它的供电电源需要能够避开 6V,9V.这样才能够正确的工作.该驱动器对于部分无刷电机能够正常驱动.控制信号是 ...

  9. 新西达电调驱动直流无刷电机

    新西达30A电调PWM实验数据 一.写在前面的话 二.实验数据 三.思考总结 一.写在前面的话 在几年前,我在某宝上买了一斤直流无刷电机,为了能让电机动起来,走了不少弯路. (吃没人带的苦,哪怕是有个 ...

最新文章

  1. 渗透测试与自动化安全测试工具比较
  2. 使用jvisualvm的jstatd方式远程监控Java程序
  3. 算法题目中元素为二元(坐标)的几种解决方法
  4. 如何防御syn flood的一些思路!
  5. LightOJ - 1422 (区间DP)
  6. js实现操作等待提示loading……
  7. 技术帝出没:对做梦推的强力回复们
  8. 中移动、中联通、中电信取消网间结算政策:实行对等互联,互不结算
  9. 如何ajax上传文件,如何实现Ajax文件上传功能
  10. hunnu 10246 最大间隙问题 桶排序+抽屉原理
  11. 恶意样本分析手册——理论篇
  12. 超简单微信登录(微信SDK接入、友盟SDK接入)
  13. element Table el-tooltip
  14. 多层神经网络的局部最小值与全局最小值——The problem of convexity
  15. python当前运行目录_Python获取运行目录与当前脚本目录的方法
  16. 基于clamp.js封装vue指令,处理多行文本的溢出
  17. 利用Python对Excel按列值筛选并拆分表格到多个文件
  18. ffmpeg中音频解码方法(附代码)+ffmpeg音频解码播放速度快的问题(随手笔记,以供查阅)
  19. Linux 解析 ip 的各种命令
  20. “隐私—数据收集”问题的两难分析

热门文章

  1. 十年码农教你学习,linux内存管理——内存管理架构
  2. Vue.js中splice()方法实现对数组进行删除的操作
  3. 连续十年亏损,哔哩哔哩估值遭质疑
  4. 地下城与勇士(DNF)能源中心副本(克雷发电站、普鲁兹发电站、特伦斯发电站、格兰迪发电站、赫拉斯研究所)(童年的回忆)
  5. tucker重构模型_重构开源业务模型
  6. 小学生学c语言基础知识,小学数学1-6年级基础知识整理,孩子学习用得上
  7. drf之day05: 2个视图基类,GenericAPIView的属性和方法,基于APIView写5个接口,基于GenericAPIView写5个接口,5个视图扩展类,9个视图子类,视图集
  8. 北京律师事务所前十名看好谁
  9. CDA学习 之 PowerBI Desktop - 餐饮案例
  10. iOS NFC开发(读标签与写标签)