硬件篇
期待了两三天终于淘宝店家把宝贝送来了!谢谢店家的支持!
先上图 套餐三!嘿嘿!
然后就是简单的组装,一般的小伙伴都会不多说!
今天才拿到东西很是激动,硬件装好就可以小玩一把,店家出的板子自带有程序,结合说明书就可以简单操作啦!
今天就这些,后续我会慢慢完善的!
前些日子由于有其他活动忙着,现在有时间了又继续进程咯!
原理篇
(1) 控制车模平衡:通过控制两个电机正反向运动保持车模直立平衡状态;
(2) 控制车模速度:通过调节车模的倾角来实现车模速度控制,实际上最后还是演变成通过控制电机的转速来 实现车轮速度的控制。
(3) 控制车模方向:通过控制两个电机之间的转动差速实现车模转向控制。
将以上任务分成三个简单任务:1>直立;2>方向;3>速度;
车模电机可以虚拟地拆解成两个不同功能的驱动电机,它们同轴相连,分别控制车模的直立平衡、左右方向。在实际控制中,是将控制车模直立和方向的控制信号叠加在一起加载电机上,只要电机处于线性状态就可以同时完成上面两个任务。
车模的速度是通过调节车模倾角来完成的。车模不同的倾角会引起车模的加减速,
从而达到对于速度的控制。
三个分解后的任务各自独立进行控制。由于最终都是对同一个控制对象(车模的电机)进行控制,所以它们之间存在着耦合。为了方便分析,在分析其中之一时假设其它控制对象都已经达到稳定。比如在速度控制时,需要车模已经能够保持直立控制;在方向控制的时候,需要车模能够保持平衡和速度恒定;同样,在车模平衡控制时,也需要
速度和方向控制也已经达到平稳。
这三个任务中保持车模平衡是关键。由于车模同时受到三种控制的影响,从车模平衡控制的角度来看,其它两个控制就成为它的干扰。
车模平衡控制
因为车模有两个轮子着地,车体只会在轮子滚动的方向上发生倾斜。控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体平衡了。如图2- 5所示。
那么车轮如何运行,才能够最终保持车体平衡稳定?为了回答这个问题,可以通过建立车模的运动学和动力学数学模型,设计反馈控制来保证车模的平衡。为了使得同学们能够比较清楚理解其中的物理过程。下面通过对比单摆模型来说明保持车模平衡的控制规律。重力场中使用细线悬挂着重物经过简化便形成理想化的单摆模型。直立着的车模可以看成放置在可以左右移动平台上的倒立着的单摆。如图2- 6所示
受力分析如下:
当物体离开垂直的平衡位置之后,便会受到重力与悬线的作用合力,驱动重物回复平衡位置。这个力称之为回复力,其大小为
在偏移角度很小的情况下,回复力与偏移的角度之间大小成正比,方向相反。在此回复力作用下,单摆便进行周期运动。在空气中运动的单摆,由于受到空气的阻尼力,单摆最终会停止在垂直平衡位置。空气的阻尼力与单摆运动速度成正比,方向相反。阻尼力越大,单摆越会尽快在垂直位置稳定下来。
如果没有阻尼力,单摆会在垂直位置左右摆动。阻尼力会使得单摆最终停止在垂直位置。阻尼力过小(欠阻尼)会使得单摆在平衡位置附件来回震荡。阻尼力过大(过阻尼)会使得单摆到达平衡位置时间加长。因而存在一个临界阻尼系数,使得单摆稳定在平衡位置的时间最短。
倒立摆之所以不能象单摆一样可以稳定在垂直位置,就是因为在它偏离平衡位置的时候,所受到的回复力与位移方向相同,而不是相反!因此,倒立摆便会加速偏离垂直位置,直到倒下。
如何通过控制使得倒立摆能够像单摆一样,稳定在垂直位置呢?要达到这一目的,只有两个办法:一个是改变重力的方向;另一个是增加额外的受力,使得恢复力与位移方向相反才行。显然能够做到的只有第二种方法。控制倒立摆底部车轮,使得它作加速运动。这样站在小车上(非惯性系,以车轮作为坐标原点)分析倒立摆受力,它就会受到额外的惯性力,该力与车轮的加速度方向相反,大小成正比。这样倒立摆所受到的回复力为:
额。。。。写不下去了,这还是一门学问呀!
原谅我不能浅显易懂介绍清楚,实在刚兴趣请点击:http://http://pan.baidu.com/s/1o664HFO
今天就说这么多了!
测试篇
(前些时间,考试结束了,现在有时间来专研手中的小车了,小车到手已经有那么长时间了,一直不敢上电调试,主要是说明中有提误操作后果很严重,然而踏出第一部,就要继续走下去不然怎么能让梦想开出美妙的花,对那些不太会测试的小伙伴学习用咯!)
1.硬件准备
硬件:STM32 主板
USB 转TTL(pl2303 或者CH430 等等都行)
2.软件准备
软件:MCUISP 烧录软件,相应的USB 转TTL 模块驱动。
(*http://pan.baidu.com/s/1qWOdtIO提取码9lcd*在这了方便下载)
安装成功后插入“USB 转TTL”可以打开设备管理器看看
可以看到驱动已经安装成功,否则会有红色的感叹号哦!!
3.接线
接线:目标板 USB 转TTL
GND GND
PA9 RXD
PA10 TXD
一一对应就可以用了(我的板上PA9 写的是A9, PA10写的 A10)
目标板使用电池供电, USB 转TTL 模块由USB 供电
下载的时候需要把BOOT0 设置为高电平,具体就是把红色的拨码开关拨到OFF!!
4.ISP 软件设置
打开isp软件
设置如下
(hex,文件选后才能下载哦!告诉你一个小秘密:标准版卡尔曼版就是最初的程序,其余程序下载 后不一定能连接蓝牙)
OK,一切准备就绪,这个时候先不打开主板电源,点击开始编程,然后打开主板电源,检测
到复位信号,程序就可以下载了!因为勾选了编程后执行,所以程序下载完后,会自动运行。
使用波形显示上位机,在调试一下滤波算法的时候非常有用。
硬件准备:STM32 主板+USB 转TTL 模块(因为使用了串口)
软件准备:
开源的资料里面有这个软件哦。
接线不变
接线:目标板 USB 转TTL
GND GND
A9 RXD
A10 TXD
STM32 主板设置:
打开套件电源开关,注意,不要让小车平衡。此时,双击左上方的按键,记住,是双击哦!!!!
这个时候OLED 会自行关闭,并通过串口1 向上位机发送数据。
上位机设置:
以管理员算法运行上位机并做如下配置,记住,以管理员身份运行哦!!
设置波特率为115200 然后选择连接的COM 口,点击【打开串口】,就可以接受到数据
了
右边有10 个通道,高亮代表这个通道会显示波形,否则只显示普通数据,单击可以使其高。
接收到的数据如下图
(数据在上传的时候,转换接头上的绿色LED灯会长亮,点打开端口后没有出现数据别着急,过一小会就会出现了,还有在主界面点击鼠标右键会出现一个“数据信息查看”,可以看到你信号的数据)
最后给一份我实验的上位机效果图,最前段是正向倒下的波形,中间是自平衡是的波形,最后是反向跌倒的波形,不难看出自平衡时左右轮几乎同步,与角度成反相关变化趋势)
有奖活动 | |
---|---|
【有奖活动——B站互动赢积分】活动开启啦! | |
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |