基于CUBEMX和STM32C8T6的同轴麦轮小车制作(一)——整体框架构思

基于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路)

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路人甲YYH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值