标题: STM32两轮自平衡小车系统毕设分享 含源码与PCB文件 [打印本页]

作者: 造梦Sir    时间: 2018-8-15 15:59
标题: STM32两轮自平衡小车系统毕设分享 含源码与PCB文件
      首先说一下硬件用的哪些主控芯片用的是100脚的STM32F103VET6,陀螺仪用的是MPU6050,电机驱动用的是TB6612,蓝牙是汇承的HC05邮票孔封装的,WIFI用的是济南有人科技的USR-WIFI232-S,小车底盘用的是平衡小车之家的某一款带编码器的(不是我买的,同学的),电池用的是一节7.2的镍镉电池,液晶用的是中景园电子1.3寸IIC接口的OLED,开关用的是三脚纽子开关,电池接口用的是T插,电阻电容这些用的基本上是0603封装,编码器5V降压用的是ASM1117-5.0,3.3V降压用的是SP6203,拨码开关用的是4P贴片式2.54mm角距的,按键是两脚贴片,microusb接口用的是5针 7.2四脚插板牛角母座,超声波是某宝上几块钱烂大街的那种,蜂鸣器是有源的,编码器是小车底盘自带的,电池电压检测是电阻分压之后通过电压跟随器接入MCU内部AD测量的。

   
然后再说一下主控板上的资源STM32F103VET6主控芯片;两个microusb口,第一个是MCU的串口1,可作为普通的串口收发数据,通过调节板上BOOT选项,也可将其作为ISP下载程序接口;第二个是SWD硬件仿真接口;蓝牙模块,与MCU的串口2连接;WIFI模块,与MCU的串口3相连;一块1.3寸IIC协议的液晶接口;超声波接口;双电机驱动;六轴陀螺仪;电池电压检测;4个用于调试的LED;4个独立式按键;一组4P的拨码开关;有源蜂鸣器;两个6P带AB相编码器的电机接口。

  再说一下硬件配套的软件:这份配套的软件,也算是我一点一点黏贴拼凑实测出来的,模块分的很清楚。再来说一下个人的感觉吧,网上资料一大堆,但是大多都是只有程序,没有对应的较为完整电路原理图。很少见到软硬件全部开源并且能够对应的资料。所以就带来这样一个后果,我们用别人的程序,我们自己画的电路。举个例子,某宝上卖这个的程序我看过,个人觉得,如果不搭配他的硬件,想用自己的硬件而直接把他的软件工程拿过来修改的话,很烦很乱基本上是扯淡。因为里面东西牵涉太多,你第一次做并不知道哪些是无关紧要哪些是必不可少的,比如蓝牙的遥控部分,超声波部分啊等等这些在他完整版的工程里面都是写好的,再者我们肯定是先调直立环,然后在调试速度环和方向环,所以你把他完整版的工程拿过来用,你告诉我怎么删减或者怎么注释掉速度环、方向环和一些锦上添花的功能模块呢?还有很多地方都是寄存器直接配置,我完全看不懂不知道怎么修改,一头雾水。所以最好的办法就是,参照别人的程序,一点一点自己粘贴然后修改底层建自己的工程。或者你也可以把自己的电路画的跟别人的一样,避免修改别人的底层,这样你粘贴过来甚至都不用改就能用了。PS:我分享出来的是配套的硬件+软件,毫不夸张的说,直接把我这个PCB送去打样回来焊接好,程序烧写进去,调下参数就应该可以简单直立了。
    最后简单展示一下分享的资源,至于源文件全部在附件可下载。最后希望可以帮助到真正需要的人。
这是电路原理图:

这是PCB图:


这是打样好的PCB:

这是程序框架图:

这是最后搭建好的实物图:


源程序:
  1. /*        Includes ------------------------------------------------------------------*/
  2. #include "stm32f10x.h"
  3. #include "stdio.h"
  4. #include "systic.h"
  5. #include "OLED.h"
  6. #include "MPU6050.h"
  7. #include "LED.h"
  8. #include "Buzzer.h"
  9. #include "Switch.h"
  10. #include "Key.h"
  11. #include "Motor.h"
  12. #include "USART.h"
  13. #include "TIM.h"
  14. /*        define---------------------------------------------------------------------*/
  15. uint32_t Main_Count = 0;
  16. uint8_t  Key_num = 0;
  17. uint32_t Test;
  18. uint8_t Temp[20];

  19. int main(void)
  20. {
  21.           USART_NVIC_Configuration();                                        // 配置串口中断
  22.         USART_Config();                                                                // 配置串口
  23.     SysTick_Init();            //滴答定时器初始化
  24.         OLED_Init();            //OLED引脚初始化
  25.         OLED_Clear();            //OLED清屏
  26.         OLED_First_Line();  //OLED第一行显示: 贺梓洹毕业设计
  27.         LED_Init();                    //LED引脚初始化
  28.         Speak_Init();            //蜂鸣器引脚初始化
  29.         Switch_Init();            //拨码开关引脚初始化
  30.         Key_Init();                    //按键引脚初始化
  31.         MPU6050_Init();
  32.         PWM_Init(7199,0);
  33.         TIM_Config();
  34. //        Speak=1;
  35. //        Delay_s(1);
  36. //        Speak=0;
  37.         while(1)
  38.         {
  39. //          KeyScan();

  40. //          if(Key1_Count==1)
  41. //          {
  42. //                  Key1_Count=0;
  43. //                kp=kp+3;
  44. //          }
  45. //          OLED_ShowNum(0,6,Key1_Count,6,16);//显示ASCII字符的码值
  46. //          OLED_ShowNum(0,4,Key2_Count,6,16);//显示ASCII字符的码值
  47. //          OLED_ShowNum(0,6,Key3_Count,3,16);//显示ASCII字符的码值
  48. //          OLED_ShowNum(103,6,Key4_Count,3,16);//显示ASCII字符的码值
  49. //          Delay_ms(5);
  50. //          OLED_ShowNum(103,6,Key4_Count,3,16);//显示ASCII字符的码值
  51. //         LED2=0;
  52. //         LED3=0;
  53. //         LED4=0;
  54. //         Speak=0;
  55. //         Delay_s(1);
  56. ////         LED1=1;
  57. //         LED2=1;
  58. //         LED3=1;
  59. //         LED4=1;
  60. //         Speak=1;
  61. //         Delay_s(1);

  62. //                     READ_MPU6050();
  63. //                   Kalman_Filter(Data_6050.Acc_X , Data_6050.Gryo_Y);       
  64. ////           //GyroX++;
  65. //           OLED_ShowNum(103,2,Data_6050.Acc_X,3,16);//显示ASCII字符的码值
  66. ////           //GyroY++;
  67. //           OLED_ShowNum(103,4,Data_6050.Gryo_Y,3,16);//显示ASCII字符的码值
  68. ////           //GyroZ++;
  69. //           OLED_ShowNum(103,6,angle,3,16);//显示ASCII字符的码值
  70. //           Delay_ms(100);
  71.         }
  72. }
复制代码



以下是源文件:
电路原理图: 平衡车原理图.zip (77.55 KB, 下载次数: 556)
PCB图: 平衡车PCB.zip (11.55 MB, 下载次数: 483)
BOM表: 平衡车元器件清单表.pdf (90.52 KB, 下载次数: 445)
源程序: 自平衡小车源程序.rar (408.3 KB, 下载次数: 614)


作者: admin    时间: 2018-8-15 17:56
好资料,51黑有你更精彩!!!

作者: 造梦Sir    时间: 2018-8-16 13:56
admin 发表于 2018-8-15 17:56
能分享完整资料吗?

昨天我是想保存草稿,待会再整理的,结果不知道是什么原因,怎么就发出来了。不过现在好了,都分享出来了。
作者: 平车    时间: 2018-9-4 10:17
楼主,求问
同样是stm32自平衡小车,车身抖了一会后电机突然不运做了,换了驱动模块也一样,是哪里出了问题啊。用的是tb6612
作者: bleach    时间: 2018-9-5 08:27
感谢楼主分享
作者: hongdong    时间: 2018-9-26 18:39
很有用 学习
作者: 一叶知秋黄    时间: 2018-10-14 12:27
感谢分享
作者: 失心恋2015    时间: 2018-10-24 16:36
感谢楼主分享

作者: tuoxiao    时间: 2018-10-24 17:34

感谢楼主分享

作者: faithfulbuffer    时间: 2018-11-18 19:42
感谢分享
作者: hhhhhh11    时间: 2018-11-26 16:10
谢谢大佬!
作者: 孙笑川    时间: 2018-11-29 08:35
谢谢大佬
作者: lwf1    时间: 2018-12-1 13:04
谢谢分享!!
作者: zhuliang    时间: 2019-1-9 15:51
大佬 学习了
作者: 半杯水110    时间: 2019-1-18 11:08
谢谢分享
作者: OPJH    时间: 2019-1-26 13:03
那个PID调节的代码在哪里?我想看看你的那个转向环的代码,最近再调转向,总是在抖动转不了弯
作者: 111154    时间: 2019-1-26 22:04
太给力了!
作者: 211209    时间: 2019-2-12 22:41
代码里面全部屏蔽是什么鬼
作者: csgtli    时间: 2019-2-13 13:52
有意思,感谢分享
作者: 造梦Sir    时间: 2019-2-18 11:40
211209 发表于 2019-2-12 22:41
代码里面全部屏蔽是什么鬼

你说的是main函数里面吧?所有东西都放在中断里了。
作者: yxwdzero    时间: 2019-2-18 19:52
谢谢 老大
作者: maru    时间: 2019-2-22 14:19
谢分享
作者: LILY.    时间: 2019-3-17 09:48
谢谢分享
作者: zt2019    时间: 2019-3-21 16:53
好心的楼主si能不能发我一份,万分感激。
1730348496@qq.com
作者: qinweiwei    时间: 2019-3-27 11:09
看了很实用,感谢
作者: huangxiaoyun520    时间: 2019-3-27 11:39
最近再调转向,总是在抖动转不了弯
作者: 453716577    时间: 2019-3-28 19:37
感谢楼主分享
作者: 学习快乐    时间: 2019-4-15 22:09
好东西,希望赚点黑币下载来学习
作者: wzlEagle    时间: 2019-4-16 10:21
大神,能加一下吗?我也想做个小车遥控器什么的
作者: lucq7896    时间: 2019-5-14 13:41
请问  有套件吗?
作者: 快乐眼泪    时间: 2019-5-14 20:22
感觉这个好深奥
作者: yzhbyyy    时间: 2019-5-20 14:12
感谢分享!!!!!!!
作者: cityhunter_86    时间: 2019-5-24 10:29
不错的资料,感谢分享
作者: LILY.    时间: 2019-5-24 16:24
谢谢楼主分享
作者: laixugen    时间: 2019-5-25 20:42
感谢大佬分享
作者: 小赖赖    时间: 2019-6-13 15:21
好东西
作者: chenzhufly    时间: 2019-6-13 16:39

有意思,感谢分享
作者: cat9975    时间: 2019-6-15 11:12
有意思,不错的资料
作者: 学习快乐    时间: 2019-7-1 10:04
我用103c8t6做的,代码有没有推荐的,我想参考一下
作者: 学习快乐    时间: 2019-7-1 10:09
用的是stm32f103c8t6吗
作者: shockbee    时间: 2019-7-14 10:28
谢谢分享 正在做平衡小车过考核
作者: 下一秒-    时间: 2019-7-17 20:51
PCB做得不错
作者: g98888    时间: 2019-7-23 10:38
很强,感谢楼主无私分享
作者: 怎么起名字    时间: 2019-7-23 16:28
一点击下载就会404呀。弄了好多黑币  哭了。。
作者: ws352924202    时间: 2019-7-25 10:48
谢谢楼主
作者: 想学智能小车    时间: 2019-7-30 22:23
学习了谢谢
作者: 雨后的晴天    时间: 2019-8-5 21:31
真厉害啊棒棒的
作者: china043    时间: 2019-8-6 15:32
很好,下载看看,正在搞这类项目
作者: 豆豆苍穹    时间: 2019-8-20 11:57
好好学习,天天向上
作者: zhangjinming    时间: 2019-11-4 13:57
感谢分享
作者: 天使神装    时间: 2019-11-5 09:09
学习一下,搜集资料
作者: buzdyaoqian    时间: 2019-11-28 17:15
找了好久的pvb参考 多谢!!!
作者: 1206052154    时间: 2019-12-1 00:43
谢谢大佬
作者: gb505329191    时间: 2019-12-1 10:01
收藏了,空了给儿子做个玩具,顺便动手学习单片机。
作者: 天使神装    时间: 2019-12-19 16:53
学习一下,mark
作者: lsyi    时间: 2019-12-19 20:08

看了很实用,感谢
作者: 吾雄无穷    时间: 2019-12-20 12:52
电路图有原图吗
作者: QSM980405    时间: 2019-12-26 19:07
谢谢楼主,爱你哟
作者: hellohero    时间: 2020-1-17 12:02
好东西,楼主很强大
作者: TTQ001    时间: 2020-1-21 09:13
谢谢楼主分享

作者: zhangmingxv    时间: 2020-1-28 17:28
小白,,看不懂
作者: jiyawei    时间: 2020-1-31 11:59
非常感谢楼主分享,正在学习中
作者: songhetai    时间: 2020-2-2 11:03
下载学习一下,感谢分享
作者: yhgwork    时间: 2020-2-5 13:22
不错的平横小车,要用到PID吧
作者: kophai    时间: 2020-2-24 15:03
好资料下载下来学习一下
作者: 1qwe    时间: 2020-4-26 11:57
谢谢,能分享一下嘛
作者: daocheng    时间: 2020-4-27 15:37
帖子写的很好,STM32两轮自平衡小车系统,设计很新颖,成品好可爱,我挺喜欢STM32两轮自平衡小车的,对我帮助很大,学习到了,谢谢分享!!!
作者: 季月宝贝    时间: 2020-4-28 14:15
感谢楼主分享
作者: liyunhua123    时间: 2020-5-3 12:51
打开没有用。

作者: 8674865    时间: 2020-6-4 21:49
非常好,学习了,谢谢
作者: 嘟嘟胖子    时间: 2020-6-23 15:03
谢谢分享
作者: xiaoyong4000    时间: 2020-6-28 20:11
PCB图画的不错,代码内容比较强
作者: baishifanzon    时间: 2020-7-2 14:01
感谢楼主无私的分享,很好的学习资料
作者: 啤酒瓶子老大    时间: 2020-7-3 10:21
感谢分享。留个记号以后好找。
作者: l59123    时间: 2020-7-7 14:38
好资料,51黑有你更精彩!!!
作者: 趁你还年轻    时间: 2021-3-19 07:58
请问楼主,为什么画PCB的时候放了那么多过孔呢?
作者: cooleaf    时间: 2021-3-22 15:26
这个车做的人不少啊,感觉每个人都加了点不一样的东西!
作者: 曾现路    时间: 2021-4-19 10:27
超级感谢楼主,来学习一下
作者: 18239311863    时间: 2021-4-24 01:37
平车 发表于 2018-9-4 10:17
楼主,求问
同样是stm32自平衡小车,车身抖了一会后电机突然不运做了,换了驱动模块也一样,是哪里出了问 ...

可能电路烧了
作者: 曾现路    时间: 2021-6-19 09:55
自己想玩一下,参考楼主的学习学习哦
作者: fengmodiy    时间: 2021-6-27 00:31
太强了,大神
作者: 会飞的小翔    时间: 2021-7-15 17:02
51黑有你更精彩!
作者: gaoshuo230    时间: 2021-7-22 09:57
admin 发表于 2018-8-15 17:56
好资料,51黑有你更精彩!!!

高手  从头准备把单片机捡起来了
作者: chenxinxian    时间: 2021-10-20 14:17

感谢大佬分享,代码有没有推荐的,我想参考一下
作者: ythero    时间: 2021-11-18 10:27
用的是stm32f103c8t6吗
作者: wgaopeng    时间: 2021-11-18 21:29
好资料,51黑有你更精彩!!!
作者: charlyking    时间: 2022-7-6 00:14
有PID 算法的解读吗?
作者: Z123456ID    时间: 2022-8-22 20:55
必须顶,良心博主
作者: 地球    时间: 2022-8-23 11:40
楼主写的程序把每个模块都分开了,非常方便改动!
作者: longwu4886    时间: 2023-9-11 10:19
vct6对吗?
作者: zhugw519    时间: 2023-10-10 15:55
感谢楼主开源,值得学习
作者: lkf_8888    时间: 2023-10-10 20:08
看看能不能仿做出来。
作者: dachong3302    时间: 2024-1-19 16:27
资料真好,刚找这方面的资料学习




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1