内含Android控制APP,近期编写的现在分享给大家
安卓app源码
单片机源程序如下:
- #include "stm32f10x.h"
- #include "inv_mpu_dmp_motion_driver.h"
- #include "math.h"
- #include "inv_mpu.h"
- #include "oled.h"
- #include "delay.h"
- #include "adc.h"
- #include "motor.h"
- #include "mpuiic.h"
- #include "mpu6050.h"
- #include "timer.h"
- #include "usart1.h"
- extern int Moto1,Moto2; //电机PWM变量 应是Motor的 向Moto致敬
- extern u8 data[2]; //WIFI数据
- short aacx=0,aacy=0,aacz=0; //加速度值
- float pitch,roll,yaw=0; //欧拉角
- short y_angle=0; //Y轴角度
- int TIM_2=0,TIM_4=0; //编码器脉冲数
- int Battery=0; //电池电压
- int Balance_PWM=0; //角度环输出脉冲
- int Velocity_PWM=0; //速度环输出脉冲
- int Turn_PWM=0; //转向变量
- int main(void)
- {
-
- delay_init(); //延时函数初始化
- OLED_Init(); //OLED初始化
- MiniBalance_PWM_Init(7199,0);
- Encoder_Init_TIM2(); //初始化编码器左
- Encoder_Init_TIM4(); //初始化编码器右
- USART1_Init(115200); //初始化串口1
- ESP8266_Init(); //初始化ESP8266参数
- Adc_Init(); //ADC初始化
- MPU_Init(); //MPU6050参数初始化
- mpu_dmp_init(); //MPU6050_DMP初始化
- TIM1_Int_Init(4999,71); //5ms的定时器中断
- OLED_Fill(0x00); //清屏
- OLED_Str_8x16(0,0,"Battery:");
- OLED_Str_8x16(80,0,".");
- OLED_Str_8x16(96,0,"V");
- while(1)
- {
-
- Battery=(Get_Adc_Average(8,10)*0.004028)*10;//计算电池电压
- OLED_Number_8x16(64,0,Battery/100);
- OLED_Number_8x16(72,0,Battery%100/10);
- OLED_Number_8x16(88,0,Battery%10);
- }
- }
- /*============================= TIM3定时5ms================================*/
- void TIM1_UP_IRQHandler(void)
- {
- if (TIM_GetITStatus(TIM1, TIM_IT_Update) != RESET)//判断是否更新中断
- {
- TIM_ClearITPendingBit(TIM1, TIM_IT_Update);//清除中断标志位
- TIM_2=-Read_Encoder(2);//获取右轮脉冲值
- TIM_4=Read_Encoder(4);//获取左轮脉冲值
- if(mpu_dmp_get_data(&pitch,&roll,&yaw)==0&&MPU_Get_Gyroscope(&aacx,&aacy,&aacz)==0)//获取欧拉角和加速度值
- {
-
- Balance_PWM=balance(roll,aacx);//直立环
- Velocity_PWM=velocity(TIM_2,TIM_4);//速度环
- Moto1=Balance_PWM-Velocity_PWM+Turn_PWM;//计算右轮PWM值
- Moto2=Balance_PWM-Velocity_PWM-Turn_PWM;//计算左轮PWM值
- Xianfu_Pwm();//PWM限幅
- Set_Pwm(Moto1,Moto2);//赋值给PWM寄存器
- Motor_Off(roll); //实时监测角度 大于或小于50度时 强制停止电机
- }
-
- }
- }
复制代码
所有资料51hei提供下载:
平衡小车APP.7z
(5.07 MB, 下载次数: 33)
平衡小车STM32程序.7z
(252.55 KB, 下载次数: 43)
|