STM32项目分享:避障小车设计
“我们不做一锤子买卖,只做技术成长的长期伙伴!”
目录
一、视频展示
二、项目简介
三、原理图设计
四、PCB硬件设计
五、程序设计
六、资料分享
一、视频展示
避障小车设计视频分享 https://www.bilibili.com/video/BV1APsmzpEQm/?share_source=copy_web&vd_source=c55e01462f1c123460ecc885775129f8
https://www.bilibili.com/video/BV1APsmzpEQm/?share_source=copy_web&vd_source=c55e01462f1c123460ecc885775129f8
二、项目简介
避障小车设计
 1、能够实现按键控制小车启动、停止;
 2、能够设置速度档位;
 3、能够设置显示速度档位和行驶状态;
 4、能够通过语音控制小车前进、后退、左转、右转、停止;
 5、能够实现避障功能:
 6、能够通过直流电池供电;
 扩展:
 1、能够实现手机蓝牙控制:
 2、能够实现循迹功能;
三、原理图设计

四、PCB硬件设计

五、程序设计
#include "stm32f10x.h"                  // Device header
#include "delay.h"
#include "lcd.h"
#include "timer.h"
#include "IOput.h"
#include "HW_Track.h"
#include "wave.h"
#include "usart.h"
#include "IRC.h"
#include "MOTOR.h"extern u8 res,res1;
u8 mode,set,speed,cound,speed_flag;
u8 step=70;void Wave(void)
{length = Senor_Using(); //超声波程序if(length>20){go(step,step);OLED_ShowCH(72,4,"前进");}else{time_count = 0;while(time_count <= 100){back(step,step);OLED_ShowCH(72,4,"后退");}time_count = 0;while(time_count <= 60){turn_left(step,step);OLED_ShowCH(72,4,"左转");}}
}void TrackWave(void)
{if(length>20){HW_Track(); //循迹程序OLED_ShowCH(72,4,"    ");JDQ=0;}else{stop();OLED_ShowCH(72,4,"停止");JDQ=1;}length = Senor_Using(); //超声波程序
}void Blueteeth(void)
{if(res1 =='a' || res ==0x01){res1=0;res=0;go(step,step);OLED_ShowCH(72,4,"前进");}else if(res1 =='b' || res ==0x02){res1 = 0;res = 0;back(step,step);OLED_ShowCH(72,4,"后退");}else if(res1 =='c' || res ==0x03){res1 = 0;res = 0;turn_left(step,step);OLED_ShowCH(72,4,"左转");}else if(res1 =='d' || res ==0x04){res1 = 0;res = 0;turn_right(step,step);OLED_ShowCH(72,4,"右转");}else if(res1 =='e' || res ==0x05){res1 = 0;res = 0;stop();OLED_ShowCH(72,4,"停止");}}
int main (void)
{delay_init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);OLED_Init();delay_ms(1);OLED_Clear();input_init();output_init();TIM2_Int_Init(71,9999); TIM_PWM_Init(100,8);CH_SR04_Init();Usart3_Init(9600);Usart1_Init(9600);motor_init();Drv_Hw_Init ();OLED_ShowCH(72,4,"停止");OLED_ShowCH(40,2,"停止模式");while(1){Med_Hw_ReadKeyValue();key_scan(1,1,1);OLED_ShowCH(0,0,"   避 障 小 车  ");OLED_ShowCH(0,2,"模式:");OLED_ShowCH(0,4,"运动状态:");OLED_ShowCH(0,6,"挡位:");if(add_flag==1){add_flag=0;speed_flag++;if(speed_flag>=4)speed_flag=0;}if(speed_flag==0){step=0;OLED_ShowCH(40,6,"停止");}else if(speed_flag==1){step=60;OLED_ShowCH(40,6,"一挡");}else if(speed_flag==2){step=70;OLED_ShowCH(40,6,"二挡");}else if(speed_flag==3){step=80;OLED_ShowCH(40,6,"三挡");}if(set_flag==1|| res1 =='q' || res ==0x07){res1 = 0;res = 0;stop();set_flag=0;set++;if(set>=4){set=0;}}if(set==3){mode = 3;OLED_ShowCH(40,2,"避障模式");}if(set==1){mode = 1;OLED_ShowCH(40,2,"循迹模式");}if(set==2){mode = 2;OLED_ShowCH(40,2,"遥控模式");}if(set==0){mode = 0;OLED_ShowCH(40,2,"停止模式");}if(mode == 0){stop();OLED_ShowCH(72,4,"停止");}else if(mode == 1){TrackWave();}else if(mode == 2){Blueteeth();}else if(mode == 3){Wave();}if(res1 =='s'  || res ==0x06){res1=0;res=0;BEEP=~BEEP;}}
}六、资料分享
点击即可查看当前资料分享。
