0%

电控培训(3)

Main Takeaway

记录我第三次培训的见闻

上次培训说明

宏定义常量——养成习惯

image-20231015105818776

TIM

怎么查APB?——看stm32f407ig数据手册

image-20231015102244514

Notes:

不要把与时间相关得放在while里面,你根本不知道一次会执行多长时间!!!

PWM

HAL库中也有定时器的相关函数,这里介绍几个常用的,

  • 第一是开启定时器并打开溢出中断的HAL_TIM_Base_Start_IT
  • 二是开启定时器的PWM模式HAL_TIM_PWM_Start,
  • 三是设置定时器某通道的比较值的宏定义函数__HAL_TIM_SET_COMPARE。常用的回调函数是定时器溢出回调函数。

CAN

配波特率,先改大,再改小

image-20231017215947759
image-20231017221103655

先对过滤器进行配置

CAN很重要!多看程序理解

干活

焊了两根XT30,已经是打工人的形状了,芜湖!

电机和电调

(1 封私信) 电调(ESC) - 知乎 (zhihu.com)

可配合robomaster assistant(没啥大用)

主要是看协议——ID设置,帧头,数据怎么接收,我怎么解包

每个电机都有对应的输入范围限制,以及对应的减速比;看协议,电调ID设置

C610无刷电调

数据长度代码DLC(data length code)

SET按键操作

设置ID,直接查文档

CAN通信协议:

电调接收报文格式

一个ID对应一个2个字节

image-20231014201659626

电调反馈报文格式

image-20231014201715790

产品规格

image-20231014201845962

GM6020直流无刷电机

6020主要用于云台yaw与pitch轴的运动控制

拨码开关设置

这里以6020为例,先讲一下其ID的设置方法。在6020的底部有一个拨码开关,共有4个开关,通过1-3拨码的组合可以得到7种不同的ID

而4号拨码代表着是否使用终端电阻。前面提到CAN总线上有着两个终端电阻,而终端电阻的作用主要是用于提高信号的质量,因此实际使用时最好能检查一下终端电阻的情况。

CAN总线终端电阻的作用有两个:

1、提高抗干扰能力,让总线寄生电容快速放电,确保总线快速进入隐性状态;

2、提高信号质量。

这里提一嘴,如果大家有去详细看C板的原理图的话,可以发现C板的CAN已经自带一个终端电阻了。

image-20231014205015274

电调接收报文格式

image-20231014202650855

电调反馈报文格式

image-20231014205342524

PWM控制

PWM与速度的映射关系查文档

特征参数+电机参数

查文档

M2006直流无刷减速电机

2006主要用于拨弹盘的控制

3508

3508主要用于底盘、摩擦轮等控制

C语言

extern 与头文件(*.h)的区别和联系 | 菜鸟教程 (runoob.com)

  • 头文件仅仅为阅读代码作用,没其他的作用了!(不要在头文件中定义宏)

  • extern:在定义变量的时候,这个extern居然可以被省略(定义时,默认均省略);在声明变量的时候,这个extern必须添加在变量前,所以有时会让你搞不清楚到底是声明还是定义。或者说,变量前有extern不一定就是声明,而变量前无extern就只能是定义。注:定义要为变量分配内存空间;而声明不需要为变量分配内存空间。

  • 头文件只有对变量或函数的声明,绝不能有定义!!!

C语言中,数字后面带个U,L,F的含义

  • U表示该常数用无符号整型方式存储,相当于 unsigned int
  • L表示该常数用长整型方式存储,相当于 long
  • F表示该常数用浮点方式存储,相当于 float

为什么出现“initializer element is not constant”错误-CSDN博客

试验

C板是12MHz的外部晶振

电池的输出功率如果太低就会自动断电