基于stm32单片机的视频遥控小车APP
1、系统介绍
1.1、功能介绍与演示视频
- 编号:107
- 视频简介中获取资料
- 演示视频:https://www.bilibili.com/video/BV1em4y1P7im
功能介绍:
- 1、使用手机APP控制小车移
- 2、在手机APP可以查看小车上的视频
- 3、通过手机APP可以控制水泵、LED的打开与关闭
2、程序设计
2.1、系统主函数
int main(void)
{
System_Init();//所有系统配置在这个函数里完成
Delay_ms(10);
MOTO_PWM_Out_AB(3000, 3000);
MOTO_PWM_Out_CD(3000, 3000);
while (1)
{
//小车移动控制
switch (car_control)
{
case 0x000: //停车
MOTO_PWM_Out_AB(3000, 3000); //调整PWM
MOTO_PWM_Out_CD(3000, 3000); //调整PWM
Car_Stop();
break;
case 0x01: //前进
MOTO_PWM_Out_AB(3000, 3000); //调整PWM
MOTO_PWM_Out_CD(3000, 3000); //调整PWM
Car_Go();
break;
case 0x02: //后退
MOTO_PWM_Out_AB(3000, 3000); //调整PWM
MOTO_PWM_Out_CD(3000, 3000); //调整PWM
Car_Back();
break;
case 0x03: //左转圈
MOTO_PWM_Out_AB(3000, 3000); //调整PWM
MOTO_PWM_Out_CD(3000, 3000); //调整PWM
Car_Turn_Left();
Delay_ms(500);//车无角度传感器,且由于车速不同,调整延时长短实现大概的转角 90度。
Car_Go();
break;
case 0x04: //右转圈
MOTO_PWM_Out_AB(3000, 3000); //调整PWM
MOTO_PWM_Out_CD(3000, 3000); //调整PWM
Car_Turn_Right();
Delay_ms(500);//车无角度传感器,且由于车速不同,调整延时长短实现大概的转角 90度。
Car_Go();
break;
default: //停车
MOTO_PWM_Out_AB(3000, 3000); //调整PWM
MOTO_PWM_Out_CD(3000, 3000); //调整PWM
Car_Stop();
break;
}
//水泵控制
switch(realy_control)
{
case 0x0a: //打开水泵
RELAY_ON
break;
case 0x0b: //关闭水泵
RELAY_OFF
break;
default:
RELAY_OFF //关闭水泵
break;
}
}
}
2.2、继电器初始化函数
void RelayInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化
RELAY_OFF //关闭继电器
}
3、实物图
4、视频演示&资料下载
- 视频简介中获取资料
视频演示