基于CUBEMX和STM32C8T6的同轴麦轮小车制作(一)——整体框架构思_共轴麦轮平衡车传递函数-程序员宅基地

技术标签: stm32  平衡车  arm  单片机  

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lurenjia1256/article/details/123179977

智能推荐

[!] CDN: trunk - Cannot perform full-text search because Algolia returned an error: 0: Cannot reach-程序员宅基地

文章浏览阅读737次。pod search XXXX 时报错: [!] CDN: trunk - Cannot perform full-text search because Algolia returned an error: 0: Cannot reach any host: execution expired, execution expired, execution expired, execution expired 解决办法:终端执行$..._[!] cdn: trunk - cannot perform full-text search because algolia returned an

基于机器翻译的多语言生成技术和技巧_机器执行语言解析及生成技术-程序员宅基地

文章浏览阅读1.8k次。统计方法 NMT:NMT(Natural Language Toolkit)是一种基于统计的机器翻译方法。它通过训练一个语言模型来预测目标语言中的单词,然后根据上下文和语法规则将单词组合成完整的句子。基于模型的方法:这类方法通过建立一个语言模型来预测目标语言中的单词,然后根据上下文和语法规则将单词组合成完整的句子。典型的算法有: SMT、CTW、SMT+CTW 等。深度学习方法:这类方法通过构建深度神经网络来实现机器翻译。典型的算法有:Transformer、Seq2Seq 等。新闻报道。_机器执行语言解析及生成技术

Zuul之饥饿加载模式_zuul nfloadbalancer:name=smart-light-程序员宅基地

文章浏览阅读491次。附:SpringCloud之系列教程汇总跳转地址前面我们介绍了如何使用Ribbon的earger-load配置加速Spring Cloud中对服务接口的第一次调用。可是这样只是解决了内部服务间的调用,另外一个问题依然经常困扰我们,那就是网关到内部服务的访问。由于Spring Cloud Zuul的路由转发也是通过Ribbon实现负载均衡的,所以它也会存在第一次调时比较慢的情况。那么这个时候我们..._zuul nfloadbalancer:name=smart-light

自定义全屏popupWindow,自下往上出现,从上往下消失。_android popupwindow 如何实现由下倒上平滑消失-程序员宅基地

文章浏览阅读4.5k次,点赞3次,收藏5次。如图,点击操作,出现,效果是屏幕先变暗,然后底部从先往上弹出,点击屏幕其他地方,popupWindow消失,屏幕恢复原样。好,直接看代码,以前项目中做过的,没有拆分出来,新手第一次,见谅! 操作按钮的点击事件:setRightButtonOnClickListener(0, 0, new View.OnClickListener() { @Override_android popupwindow 如何实现由下倒上平滑消失

QT界面上显示pcl点云数据_qt + 点云数据-程序员宅基地

文章浏览阅读6.4k次,点赞3次,收藏48次。下面说明如何在QT GUI界面上添加控件显示用pcl读入的三维点云数据。QT5.12.1的安装与VS2017配置参照下面博客,博客中是QT5.11.1https://blog.csdn.net/gaojixu/article/details/82185694QT5.12.1的下载路径如下:链接:https://pan.baidu.com/s/1YDizCx2_zF4LQBOnk3JxhA提取码:5wza不同于博客,我这里同时配置x64和32位两个版本在Default Qt/.._qt + 点云数据

火山PC-安卓-易语言混合通讯教程(火山视窗)_火山编程怎么用易语言模块-程序员宅基地

文章浏览阅读3.9k次,点赞3次,收藏4次。前言:火山PC服务端、火山PC客户端、火山安卓端、易语言端,使用json数据包进行混合通讯,文章只提供了基础例子,详细的可自行扩展本文非常的有实战学习经验,大家可以提前下载案例源码在观看文章:点击下载案例源码⑴火山PC服务端一、配置模块右键配置,勾选火山PCFOF开源网站开发套件(模块大家自行百度利快云在其官网就可下载)二、窗口布局按钮和编辑框,并创建相应变量三、初始化服务四、添加服务事件五、服务①添加单击事件②启动和关闭③推送信息⑵火山PC客户端一、配_火山编程怎么用易语言模块

随便推点

React Native学习笔记(3)--FlexBox_默认情况下伸缩容器中只有一个行并且与什么方向一致-程序员宅基地

文章浏览阅读345次。React 学习笔记一、FlexBoxFlexBox(弹性盒子布局),它是为了简单快速地完成各种伸缩性的设计而提出来的。它可以为传统的盒子模型布局带来更大的灵活性。目前主流的浏览器都已经支持它了。1、布局模型flexbox布局由伸缩容器和伸缩项目组成。任何一个元素都可以指定为flexbox布局,只要设置display的属性为flex或inline-flex即可。伸缩容器的子元素就成为伸缩项目,伸缩项_默认情况下伸缩容器中只有一个行并且与什么方向一致

tomcat 启动:找不到文件‘-Djava.endorsed.dirs=’_-djava.endorsed.dirs=e:\tomcat\apache-tomcat-7.0.5-程序员宅基地

文章浏览阅读3.5k次。tomcat 启动:windows找不到文件‘-Djava.endorsed.dirs=’本来想买个笔记本做毕业设计的,刚在启动tomcat的时候报了windows找不到文件‘Djava.endorsed.dirs=’心头一震!!后来发现问题其实 很简单,不是配置环境的问题,而是在环境路径里有空格,哎呀,这也错我也就没办法了。以后记得检查你的路径有无空格哈。下面给出在网_-djava.endorsed.dirs=e:\tomcat\apache-tomcat-7.0.52\endorsed is not supported. endorsed standards and standalone apis in modular form will be supported via the concept of upgradeable modules.

听说你想在 WordPress 网站上嵌入 PPT ?_wordpress 腾讯云 文档 html 预览服务-程序员宅基地

文章浏览阅读794次。年底了,想在 WordPress 博客上展示自己的春节旅行计划,尝试在文章中插入一个旅行计划 PPT 结果长这个样子????你有没有遇到同样的情况,懊恼网页支持展示的内容无法满足我们的需求: 想展示年度家庭财务回顾的 Excel 文件,别人需要下载才能查看; 想展示明年的阅读计划 Word 文档,结果发现原生的 WordPress 也并不支持; 探店美食菜单、自驾攻略、经典名著电子书、课程课件等精彩的文件都无法直观地展示; 别着急,WordPress COS 插_wordpress 腾讯云 文档 html 预览服务

python subprocess_python subprocess stdout utf8-程序员宅基地

文章浏览阅读2.3k次。subprocess – 创建附加进程 subprocess模块提供了一种一致的方法来创建和处理附加进程,与标准库中的其它模块相比,提供了一个更高级的接口。用于替换如下模块: os.system() , os.spawnv() , os和popen2模块中的popen()函数,以及 commands().subprocess模块,替换os.system等subprocess.run(['df','..._python subprocess stdout utf8

Harris Corner Detector 原理及编程实现_harris detector中为什么不用特征向量-程序员宅基地

文章浏览阅读911次。原理:灰度变化率有函数如下:其中的W(x,y)函数如下对公式中中括号中的部分Taylor展开并取一阶式,得到设则矩阵形式Harris采用了一种新的角点判定方法。矩阵M的两个特征向量l1和l2与矩阵M的主曲率成正比。Harris利用l1, l2来表征变化最快和最慢的两个方向.若两个都很大就是角点,一个大一个小就是边缘,两个都小就是在变化缓慢的图像区域._harris detector中为什么不用特征向量

这 10 个 Python 可视化工具,你用过哪些?-程序员宅基地

文章浏览阅读3.6k次。今天我们会介绍一下10个适用于多个学科的Python数据可视化库,其中有名气很大的也有鲜为人知的1、matplotlib 两个直方图matplotlib 是Python可视化程序库的泰斗。经过十几年它任然是Python使用者最常用的画图库。它的设计和在1980年代被设计的商业化程序语言MATLAB非常接近。由于 matplotlib 是第一个 Python 可视化程序库,..._python可视化工具

推荐文章

热门文章

相关标签