基于CUBEMX和STM32C8T6的同轴麦轮小车制作(一)——整体框架构思
一、摘要
拟设计一款两轮的麦轮平衡车,可以实现全向移动(但是不能转弯23333),具体实现功能为:
(1)保持直立(PID调节,角度环、速度环)
需要的参量:
角度环PD调节:角度(陀螺仪),角加速度(陀螺仪)
速度环PI调节:速度(编码器),速度积分(编码器)
(2)全向移动:
需要的参量:
平移环PD调节:横向速度(通过编码器反馈值解算),加速度(陀螺仪)
(3)可以遥控:
HC-05蓝牙模块,改变目标前进速度、平移速度。
(4)OLED显示
IIC传输数据:显示倾角,速度。
二、整体框架:
void main()
{
all_init(); //外设初始化
while(1)
{
}
}
设置定时器中断,每5ms进入一次中断,下面为定时器中断处理函数:
void timer_handle()
{
get_date(); //获取角度,速度,加速度,角加速度等数据
PID_control(); //PID控制
cnt++;
if(cnt == 200)
{
OLED_show(); //每过1s,OLED刷新数值
cnt = 0;
}
}
控制函数:
void control()
{
int balance = 0;
int velocity = 0;
int ping_yi = 0;
balance = balance(angle_X , gryo_x);
velocity = balance(Read_encoder(2) , Read_encoder(4));
pin_yi = pin_yi(acc_x,Read_encoder(2) , Read_encoder(4));
out_pwm_left = balance + velocity + pin_yi;
out_pwm_right = balance + velocity - pin_yi;
set_motor();
}
三、所需外设
定时器计数(5ms中断)
定时器编码器模式(TIM2、TIM4)
PWM波输出(2路)10KHZ,CCR值0-7200
串口1(JY61P)设置接收中断
串口2(HC-05蓝牙)设置接收中断
OLED IIC
L298N电机驱动(2路)