标题: stm32平衡车程序,包括6050的解算,卡尔曼滤波,PID算法等 [打印本页]

作者: 随心流动    时间: 2018-9-14 15:14
标题: stm32平衡车程序,包括6050的解算,卡尔曼滤波,PID算法等
这是一套完整的stm32f103的平衡车程序,大家可以参考一下

单片机源程序如下:
  1. #include "delay.h"
  2. #include "sys.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "bluetooth.h"
  6. #include "motor.h"
  7. #include "speed.h"
  8. #include "mp6050.h"
  9. #include "key.h"
  10. #include "ultrasonic.h"
  11. #include "DataScope_DP.h"


  12. int main(void)
  13. {
  14.         u8 i,Send_Count;
  15.        
  16.         delay_init(72);
  17.         NVIC_Configuration();
  18.         uart_init(9600);
  19.         LED_Init();
  20.         KEY_Init();
  21.         BLUETOOTH_Init(9600);
  22.         MPU6050_Init();
  23.         PID_Init();
  24.         ENCODER_Init();
  25.         ULTRASONIC_Init();
  26.         MOTOR_Init();

  27.   while (1)
  28.   {
  29. //                DataScope_Get_Channel_Data( acc_x, 1 );  //上位机波形显示
  30. //                DataScope_Get_Channel_Data( gyro_y, 2 );  
  31. //                DataScope_Get_Channel_Data( angle_ax, 3 );   
  32. //                DataScope_Get_Channel_Data( angle_gy , 4 );     
  33. //                DataScope_Get_Channel_Data(angle, 5 );   
  34. //                DataScope_Get_Channel_Data(Kp , 6 );  
  35. //                DataScope_Get_Channel_Data(speed, 7 );  
  36. //                DataScope_Get_Channel_Data( 0, 8 );   
  37. //                DataScope_Get_Channel_Data(0, 9 );   
  38. //                DataScope_Get_Channel_Data( 0 , 10);  
  39. //                Send_Count = DataScope_Data_Generate(10);  
  40. //                for( i = 0 ; i < Send_Count; i++)   
  41. //                {  
  42. //                        while((USART1->SR&0X40)==0);   
  43. //                        USART1->DR = DataScope_OutPut_Buffer[i];   
  44. //                }  
  45. //                delay_ms(50); //20HZ        
  46.                
  47.                
  48.                 ULTRASONIC_Distance();//600ms测距一次
  49.                         //USART_ITConfig(USART3, USART_IT_TXE, ENABLE);//使能USART3发送中断
  50.                 delay_ms(600);
  51.   }
  52. }
复制代码

所有资料51hei提供下载:
平衡车.rar (331.46 KB, 下载次数: 233)




作者: admin    时间: 2018-9-14 17:58
补全原理图或者详细说明一下电路连接即可获得100+黑币
作者: 随心流动    时间: 2018-9-28 11:22
这是平衡车的原理图,仅供参考使用

电路图.pdf

519.85 KB, 下载次数: 81, 下载积分: 黑币 -5


作者: 18239311863    时间: 2018-9-28 23:39
很不错哦
作者: xiolo    时间: 2018-10-3 23:27
请问楼主为什么STM32F4 老死在这一句while((USART1->SR&0X40)==0);   谢谢
作者: 随心流动    时间: 2018-10-8 17:09
xiolo 发表于 2018-10-3 23:27
请问楼主为什么STM32F4 老死在这一句while((USART1->SR&0X40)==0);   谢谢

推荐你看一下这个http://www.stmcu.org.cn/module/forum/thread-613968-1-12.html
作者: 花蝴蝶    时间: 2019-2-20 08:32
我这里也有一个原理图,gd的芯片,仅供参考

平衡车原理图.pdf

651.46 KB, 下载次数: 21, 下载积分: 黑币 -5


作者: gogtgt    时间: 2019-10-11 19:55
是全部程序吗?
作者: hua123456    时间: 2019-10-16 11:43
感谢分享     
作者: tyq13253613591    时间: 2019-10-27 14:49
我那里也有部分资料,需要自取

作者: 仗世文    时间: 2019-11-7 10:20
非常nice
作者: 13067071271    时间: 2019-11-26 23:18
很不错噢




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