查看: 1931|回复: 0
打印 上一主题 下一主题

我的STM32自平衡小车+DIY遥控器

[复制链接]
跳转到指定楼层
沙发
发表于 2015-3-22 18:44:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
借鉴坛子里面的各种开源资料,我的自平衡小车也摇摇晃晃的站起来了,虽然和坛子里面的大神比起来差的太远,但是也是经过自己琢磨的。以此回馈论坛,将所有的资料都上传(不敢说开源,反正都是从坛子里面下载的):

/*************************************************************************************/
硬件部分:
自平衡小车:
      主控制器:STM32F103RB  72Mhz
      传感器   :MPU6050    I2C 协议传输 (直接采用STM32的硬件I2C+DMA读取的,速度相当快哦)
      电机驱动:L298N电机驱动模块 双H桥直流电机驱动 ,这个不用我多说,淘宝上一大把
      无线传输:NRF24L01  SPI协议传输 (3.3V供电的,不要输入5V )
      光电编码器:增量式编码器 AB两相输出 5V 3.3V 都可以 建议3.3V
      电源板   :7805 OR 2940 5V稳压芯片都可以,主要是给主控部分和编码器提供稳定电能。
      减速电机:关于电机的选择是容易被忽视的,电机的好换直接关系着平衡车能不能站立。我的建议是,尽量选择转速和力矩都大一些的,因为转速太小不容易回正,力矩过小载荷也就相应的小, 最好是选择带有编码盘的直流减速电机,这样可以免去编码盘的安装(安装不好,根本测不到数据,很蛋疼滴!),当然这类电机一般都很贵!你也可以选择尾部带有伸出轴的减速电机,也好方便你安装码盘。最最最重要的就是,一定要选择空挡间隙小的电机,不然就会和我的一样,在平衡位置晃来晃去的!切记!


以上是我的自平衡的硬件部分,很简单吧,其实自平衡的硬件不难,很多都可以在淘宝上买到模块,当然,你也可以自己DIY

下面是我的手持遥控板的硬件部分:
      主控器:STC89C51 12MHZ
      按键   :8路独立式按键  原理图几乎在所有的教材上面都有  记住 51单片机P0口是没有内部上拉电阻的,如果你把按键放在P0口,就需要外接10K的上拉。若是接到其他I/O口,可以不用外接。
      无线模块:NRF24L01 SPI协议  用I/O口模拟SPI协议 感觉还可以
      LED部分: 具体个数由你们自己安排,仅仅为了调试方便,提示程序运行+按键提示++
      电源部分:5V稳压+3.3V稳压两个 5V给单片机,LED和按键上拉部分,3.3V则是提供给NRF2401

/*************************************************************************************/
好了接下来就是软件部分了:
   自平衡部分:
          因为我正好也在学习操作系统,所以也就将整个用户程序放在操作系统上运行,一来可以熟悉操作系统编程,而来也可以直观体验操作系统与普通裸机程序的不同。
          软件平台:uC/OS-II操作系统  时钟1ms  书上说一般在10ms_100ms之间,我测试1ms还可以,CPU占用率只有20% 不到
          底层I2C模块:也是借鉴论坛里面的资料(原谅我连贡献者ID都不知道了。。。。),经过我一直修改成了我工程的底层函数。由STM32的硬件I2C+DMA+中断的模式传输,不仅省去了CPU等待的时间损耗,也加快了速度---我还是将最初从坛子里面下载的硬件I2C源程序贴在这里,以此感谢那位大神:
          数据融合部分采用卡尔曼算法,不多说,也是从坛子里面借鉴的!
          控制部分采用PID算法,分为直立部分,速度控制部分和转向部分。直立控制(PD)是整个控制的核心,所以必须放在主要位置(我的程序是2ms控制一次);速度控制(PI)构成直立部分的一个干扰,频率要低一些,我采用的100ms ;最后的转向部分(P)就是简单的将遥控指令比例后输出即可;(整个算法借鉴第七届全国大学生“飞思卡尔”杯智能汽车竞赛电磁组直立行车参考设计方案(版本1.0)我也会在下面贴出来,务必仔细阅读一遍以上)

         这里我需要感谢的就是四轴板块的匿名,我借鉴了他的上位机来在线调试PID参数,这样就不用调一次参数下载一次程序,建议大家采用这种方法;我的程序里面有匿名上位机的协议,需要了解上位机协议的可以参阅RC.c文件。

  手持遥控部分:这里就不多说了,模拟SPI协议和NRF2401的驱动都是移植并修改的,请直接参考程序即可:
/*************************************************************************************/

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表