標(biāo)題:
第七屆工訓(xùn)賽物流組小車電控程序
[打印本頁]
作者:
愛慕春妮
時(shí)間:
2021-8-6 12:50
標(biāo)題:
第七屆工訓(xùn)賽物流組小車電控程序
第七屆工訓(xùn)賽物流組資料(小車電控程序)
#include "stm32f10x.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "timer.h"
#include "encoder.h"
#include "motor.h"
#include "dataprocess.h"
#include "steer.h"
#include "show.h"
#include "oled.h"
#include "exti.h"
#include "DataScope_DP.h"
#include "adc.h"
#include "dma.h"
#include "steercontrol.h"
u8 Mode_All=1; //總模式標(biāo)志,0,控制電機(jī),1,控制舵機(jī)
u16 Time_Count=0; //時(shí)間計(jì)數(shù)變量
u16 Distance_F,Distance_L; //前方距離和左邊距離
u16 LocationInit_X,LocationInit_Y; //初始坐標(biāo)
int Location_X,Location_Y; //當(dāng)前坐標(biāo)
float Yaw ; //航向角
int Encoder_Left,Encoder_Right;
int Distance_Left=0,Distance_Right=0; //用于更新坐標(biāo)(單位時(shí)間內(nèi)【50ms】左輪前進(jìn)距離和右輪前進(jìn)距離)
u8 state=1; //mode=0,停止;mode=1,直行;mode=2,右轉(zhuǎn)90度;mode =3,左轉(zhuǎn)90度;mode=4,左轉(zhuǎn)180度
u16 Voltage; //電池電壓
u16 AD_Value[2]; //電池電壓ADC轉(zhuǎn)換的結(jié)果
u8 Turn_Flag; //轉(zhuǎn)向標(biāo)志,如果某一次轉(zhuǎn)向完成,則置1,反之,置0
u8 Task=2; //通過掃描二維碼得到的任務(wù)
unsigned char FSM_Status = 0; //狀態(tài)機(jī)的狀態(tài)變量
float Target1=750,Target2=750,Target3=750,Target4=750,Target5=835,Target6=750; //電機(jī)目標(biāo)值
float TargetX=0.2,TargetY=0,Target_Beta=-10,Target_Alpha=0,Target_Gamma=-5; //姿態(tài)目標(biāo)值,Target_Beta 1號(hào)舵機(jī)旋轉(zhuǎn)角度,Target_Alpha,云臺(tái)角度,Target_Gamma,6號(hào)舵機(jī)角度
u16 Angle1=90,Angle2=90,Angle3=90,Angle4=90,Angle5=90,Angle6=105;
int main(void)
{
u16 i;
delay_init(); //延時(shí)函數(shù)初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
LED_Init(); //LED初始化
OLED_Init(); //OLED初始化
uart_init(128000); //串口一初始化
// uart4_init(9600); //測距串口初始化
// uart5_init(115200); //openmv串口初始化
// AdcInit(); //電池電壓采集
// MYDMA_Config(); //DMA1采集ADC
// IIC_Init(); //=====模擬IIC初始化
// MPU6050_initialize(); //=====MPU6050初始化
// DMP_Init(); //=====初始化DMP
Encoder_Init_TIM2(); //編碼器初始化 ,右輪,為正值
Encoder_Init_TIM3(); //編碼器初始化 ,左輪,為負(fù)值
Motor_Init(); //電機(jī)控制IO口初始化
Motor_PWM_Init(7199,0); //電機(jī)pwm初始化,10KHz
TIM1_PWM_Init(9999,144); //舵機(jī)PWM初始化,50Hz,T=20ms
TIM8_PWM_Init(9999,144); //舵機(jī)PWM初始化,50Hz,T=20ms
// TIM6_Int_Init(499,7200); //50ms定時(shí)中斷
TIM7_Int_Init(99,7200); //10ms定時(shí)中斷
EXTIX_Init(); //按鍵外部中斷初始化
// EXTI_PC5_Init(); //mpu6050INT引腳中斷初始化
// SetSteer(95,90,90,90,90,105);
// delay_ms(1000);
// delay_ms(1000);
// SetSteer_PID(95,155,90,180,90,130);
while(1)
{
oled_show();
delay_ms(50);
}
while(1)
{
state =1;//直行
oled_show();
if(Location_X == 0 && Location_Y >= 200)
{
state=0;//停
break;
}
}
for(i=0;i<20;i++)
{
oled_show();
delay_ms(50);
}
while(1)
{
state = 2; //右轉(zhuǎn)90 90
oled_show();
if(Turn_Flag == 1)//轉(zhuǎn)向完成
{
state = 0; //停
Turn_Flag =0;
break;
}
}
delay_ms(300);
while(1)
{
state = 1;//直行
oled_show();
if(Location_Y >= 200 && Location_X >= 1800)
{
state =0;
break;
}
}
delay_ms(300);
while(1)
{
state = 2; //右轉(zhuǎn)90 180
oled_show();
if(Turn_Flag == 1)//轉(zhuǎn)向完成
{
state = 0; //停
Turn_Flag =0;
break;
}
}
delay_ms(300);
while(1)
{
state = 2; //右轉(zhuǎn)90 -90
oled_show();
if(Turn_Flag == 1)//轉(zhuǎn)向完成
{
state = 0; //停
Turn_Flag =0;
break;
}
}
delay_ms(300);
while(1)
{
state = 1;//直行
oled_show();
if(Location_Y >= 200 && Location_X <= 900)
{
state =0;
break;
}
}
while(1)
{
state = 2; //右轉(zhuǎn)90 0
oled_show();
if(Turn_Flag == 1)//轉(zhuǎn)向完成
{
state = 0; //停
Turn_Flag =0;
break;
}
}
delay_ms(300);
while(1)
{
state = 4;//左轉(zhuǎn)180 -180
oled_show();
if(Turn_Flag == 1)//轉(zhuǎn)向完成
{
state = 0; //停
Turn_Flag =0;
break;
}
}
delay_ms(300);
while(1)
{
state = 2; //右轉(zhuǎn)90 -90
oled_show();
if(Turn_Flag == 1)//轉(zhuǎn)向完成
{
state = 0; //停
Turn_Flag =0;
break;
}
}
delay_ms(300);
while(1)
{
state = 1;//直行
oled_show();
if(Location_Y >= 200 && Location_X <= 0)
{
state =0;
break;
}
}
while(1)
{
state = 3; //左轉(zhuǎn)90 -180
oled_show();
if(Turn_Flag == 1)//轉(zhuǎn)向完成
{
state = 0; //停
Turn_Flag =0;
break;
}
}
delay_ms(300);
while(1)
{
state = 1;//直行
oled_show();
if(Location_Y <= 0 && Location_X <= 0)
{
state =0;
break;
}
}
while(1)
{
Led_Flash(50000);
oled_show();
delay_ms(50);
}
}
復(fù)制代碼
代碼下載,如有錯(cuò)誤,請(qǐng)指正:
stm32程序.7z
(313.44 KB, 下載次數(shù): 25)
2021-8-6 16:00 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1