RM电控(更新中……

c语言相关

static

1、加了static前缀的函数,例如:static void,则此函数只能在当前文件中使用

2、在定义变量前加了static前缀,则这些变量可在当前文件中的其他函数被调用

这些变量若在初始时未赋值,编译器自动赋值0;且在下次函数执行时该变量保持不变

extern

1、若在一个文件a.c中要引用b.c文件的int V;则要在a.c中声明变量,声明变量前加extern

例如extern int V(在头文件中做声明)

2、定义函数时前可加可不加extern

联合体union,枚举类型emua

~~~使用联合体union,不使用结构体struct?~~~

联合体union:解决“相同信息”的困扰,避免重复代码,提高代码的简洁性。

节省内存。

~~~~~~

联合体union只占位数最高的空间;结构体struct的内存是所有变量的总和

单片机

功能:执行、感知、计算、计时

控制器

(1)MCU:①GPIO:输入,输出

                     ②定时器:时钟频率

                     ③PWM:占空比(e.g:占空比为百分之90,则高电平9s,低电平1s)

                     ④UART:数据帧、波特率

                     ⑤CAN:总线、数据帧

高电平3.3v,低电平0v

MCU"="CPU

母头作为电源的输出

PID(无公式,靠手调和经验)

就是“比例(P)、积分(I)、微分(D)”,是一种很常见的控制算法。

P:使实际量往目标量靠近

I的作用就是,减小静态情况下的误差,让受控物理量尽可能接近目标值。

D的作用就是让物理量的速度趋于0

误差=实际值-目标值

通信

协议(语言)、数据、接受方、发送方

串口传输的波特率即为每秒钟传输二进制的位数。

CAN

CAN通讯是异步通讯,它由CAN_HIGH与CAN_LOW两条信号线组成。

步兵机器人

1、LED :提示(e.g.:闪动的次数代表 不同的信号)

2、串口通信+DMA

3、地盘

地盘和4个电机相连。

CAN总线进行通信,将4个电机的数据通过CAN 总线传到主控板,主控板通过CAN总线把想要的数据传给4个电机。

  

 云台和电机

圆的是云台,矩形为电机

空转:p小

负载:p大

 电机和别的零件未拧紧,会抖(p大)

 

云台

角度  :yaw偏航角(左右转),pitch俯仰角(上下,抬头低头),roll横滚角

pid:{1、pitch角度2、目标角度(通过遥控器传来的)}

 

地盘跟随云台转动

 

 

云台跟随地盘转动

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值