平衡车
文章平均质量分 75
羽晨同学
自己的人生由自己做主,加油
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
平衡车 -- 遥控器
今天,我们来实现平衡车的最后一个功能,通过APP的蓝牙来遥控平衡小车我们通过蓝牙芯片可以获取手机上的操作,然后给到单片机的串口3.以便于后面的单片机进行处理。原创 2025-09-14 19:02:38 · 1164 阅读 · 0 评论 -
平衡车 -- 速度环
这个时候我们就设定完成了,但是我们这个时候会发现,运行程序的时候轮子是会空转的,为了解决这个问题,所以按下按钮之后,进行复位操作。首先,我们创建一个速度环的PID的PID控制器。然后我们设置初始目标值为0,并获取轮胎的转速值。然后我们对其进行初始化。原创 2025-09-11 21:23:35 · 272 阅读 · 0 评论 -
平衡车 -- 倒立摆
然后我们根据上面的示意图对这个进程函数进行完善。我们对单片机的前面部分的实现新建两个文件。原创 2025-09-10 12:38:14 · 348 阅读 · 0 评论 -
平衡车 -- PID
接下来,我们来完成另外一个函数,来完成PID的运算,由于需要用到积分项和微分项,所以,我们需要额外保存几个变量。接下来,我们创建两个函数便于初始化PID和对PID的SP的值进行设定。然后,我们在PID的初始化函数中,对于这几个变量进行初始化。这样子,我们就可以在点击初始化函数中,配置PID的上下限了。我们创建一个PID的结构体来长期保存PID的数据。然后我们创建两个函数,分别来控制左右电机的转速。接下来,我们来完成PID控制器的具体的代码。这样,我们就对其上下限进行了限制。PID是用来改善控制系统的。原创 2025-09-09 21:35:17 · 414 阅读 · 0 评论 -
平衡车 -- MPU6050
我们现在对MPU6050进行初始化,MPU6050通过I2C总线与单片机进行通信,通过的是PB8和PB9,并且PB8和PB9需要通过重映射,才可以发挥出I2C总线的功能。我们对I2C1的速度设置为40000hz,也就是快速模式,然后选择的I2C的模式是标准I2C模式,占空比为2比1.我们选用快速模式的时候,一般选择的占空比就是2比1的。我们一般是会使用加速度计来计算俯仰角和翻滚角,一般不会使用加速度计来计算偏航角,因为重力对于平面上的影响是非常小的。接下来,我们对MPU6050的值进行更新。原创 2025-09-08 20:41:08 · 780 阅读 · 0 评论 -
平衡车 --- 测量减速比 && M法、T法测速
我们这篇文章主要想要讲述的是测量减速比和M法测速。原创 2025-09-04 21:03:17 · 1158 阅读 · 0 评论 -
平衡车 - 位置测量
我们可以设置一个encoder变量来记录这个时候的圈数值,并把开始值赋值为0.然后,我们对编码器进行初始化,首先,现对其A、B相的引脚进行初始化。我们可以通过获取对应的编码器的上升沿和下降沿来获取对应的角度值,接下来,我们先对左右编码器进行初始化,先初始化IO引脚。然后,我们创建两个变量,分别存储左右电机编码器的值。如果A相比B相早出现,则为正转,反之,则为反转。然后,我们对编码器的逻辑进行处理。然后,我们对EXTI进行初始化。然后我们开始配置EXTI的参数。然后,我们开启EXTI的中断。原创 2025-09-04 13:23:16 · 302 阅读 · 0 评论 -
平衡车 - 电机调速
这个是电机控制的具体的引脚图,我们可以看到在这个H桥的结构当中,AIN1为正,AIN2为负的时候,是正转,否则反转,所以,我们可以通过控制AIN1和AIN2来控制电机转动的方向,通过PWMA和PWMB来控制速度,而对应的AIN1和AIN2为PA10和PA9,同理,BIN1和BIN2为PB5和PB7,所以,首先,我们需要对这些引脚进行初始化。我们需要将STBY引脚设置为高电平,因为STBY为休眠引脚,当STBY为低电平的时候,电机处于休眠状态,此时电机是不会进行运动的。这样,我们就对对应的引脚进行了初始化。原创 2025-09-03 21:55:52 · 967 阅读 · 0 评论 -
平衡车-ADC采集电池电压
这个是我们ADC流程图,我们打算采用的注入序列,而不是采用常规序列,注入序列的优先级是要大于常规序列的,当注入序列和常规序列同时执行的时候,注入序列是可以直接打断常规序列的,然后,我们通过PB0采集电压,每10ms触发外部序列TIM2_TRG0一次,让ADC完成采集,当ADC完成采集之后,产生中断,并将注入序列的结果放入JDR1中(此时JEOC置为1,EOC为常规序列的标志位),然后再中断函数当中读取JDR1的结果进行电压的处理。然后,我们创建一个测试函数,将对应的值打印出来。然后再.c文件中具体实现。原创 2025-09-02 22:37:09 · 817 阅读 · 0 评论
分享