找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3181|回复: 2
收起左侧

基于STM32F4的独轮自平衡机器人制作 附源程序原理图PCB文件

[复制链接]
ID:538487 发表于 2021-1-27 14:04 | 显示全部楼层 |阅读模式
前不久完成的一个自平衡独轮车,实物图如下:演示视频:https://www.bilibili.com/video/BV1nV411q7fe
IMG_20210118_221417.jpg

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:538487 发表于 2021-1-27 14:11 | 显示全部楼层
晕。。。。代码太大了,居然传不上来

Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)
51hei.png 51hei.png
51hei.png

原理图及pcb文件.zip

9.85 MB, 下载次数: 55, 下载积分: 黑币 -5

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:538487 发表于 2021-1-27 15:03 | 显示全部楼层
源码如下
  1. #include "sys.h"

  2. /********************************************************************
  3. 说明:本程序移植自平衡小车之家的STM32F103C8T6,所用芯片为STM32F4ZGT6
  4. 该程序仅供学习交流用,请勿用作商业用途
  5.                                                                                                                                                                                                                                                 2020-1-27
  6.                                                                                                                                                                                                                                                 ZhOu
  7. ********************************************************************/

  8. float Middle=179,Walk_Middle=-0.33;//BALANCE
  9. float Motor_Balance,Motor_Walk;//MOTOR SPEED
  10. float        Balance_KP=1800,Balance_KD=8,Velocity_KP=150,Velocity_KI=3,Walk_Balance_KP=450,Walk_Balance_KD=12,Walk_Velocity_KP=175,Walk_Velocity_KI=10; //PID
  11. float Encoder_Balance,Encoder_Walk;//ENCODER
  12. float Pitch,Roll,Yaw;   //三轴角度和XYZ轴目标速度
  13. u8 Flag_Show=0;//OLED SHOW
  14. u8 delay_50,delay_flag;//DELAY
  15. char star_flag=0,Flag_Stop=0;


  16. int main()
  17. {
  18.         char key,time=0;
  19.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
  20.         delay_init(168);  //初始化延时函数
  21.         LED_Init();
  22.         KEY_Init();
  23.         uart_init(115200);        //串口初始化波特率为115200
  24.         TIM4_PWM_Init(10000-1,1-1);
  25.         TIM9_PWM_Init(10000-1,1-1);
  26.         Encoder_Init_TIM2();
  27.         Encoder_Init_TIM3();
  28.         OLED_Init();
  29.         OLED_Fill(0x00);
  30.         IIC_Init();                     //=====IIC初始化
  31.         MPU6050_initialize();           //=====MPU6050初始化       
  32.         DMP_Init();                     //=====初始化DMP     
  33.         MY_EXTI_Init();                    //=====MPU6050 5ms定时中断初始化
  34.         TIM_SetTIM4Compare1(0);
  35.         TIM_SetTIM4Compare2(0);
  36.         TIM_SetTIM4Compare3(0);
  37.         TIM_SetTIM4Compare4(0);
  38.         while(1)
  39.         {
  40.                 key=KEY_Scan(0);
  41.                 KEY_Work(key);
  42.                 if(time==5)
  43.                 {
  44.                         time=0;
  45.                         OLED_Fill(0x00);
  46.                         if(star_flag==1) LED1=0;
  47.                         else if(star_flag==2) LED1=!LED1;
  48.                 }
  49.                 if(Flag_Show==0)
  50.                         oled_show();
  51.                 else if(Flag_Show==1)
  52.                         DataScope();
  53.                 delay_flag=1;       
  54.                 delay_50=0;
  55.                 while(delay_flag);             //通过MPU6050的INT中断实现的50ms精准延时                               
  56.                 time++;
  57.         }
  58. }
复制代码

独轮车源码.7z

393.63 KB, 下载次数: 59, 下载积分: 黑币 -5

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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