2025-04-18 16:22:24 +08:00
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include "stm32f4xx.h"
|
|
|
|
|
#include "delay.h"
|
|
|
|
|
#include "infrared.h"
|
|
|
|
|
#include "cba.h"
|
|
|
|
|
#include "ultrasonic.h"
|
|
|
|
|
#include "CanP_HostCom.h"
|
|
|
|
|
#include "hard_can.h"
|
|
|
|
|
#include "bh1750.h"
|
|
|
|
|
#include "syn7318.h"
|
|
|
|
|
#include "power_check.h"
|
|
|
|
|
#include "can_user.h"
|
|
|
|
|
#include "data_base.h"
|
|
|
|
|
#include "roadway_check.h"
|
|
|
|
|
#include "tba.h"
|
|
|
|
|
#include "data_base.h"
|
|
|
|
|
#include "swopt_drv.h"
|
|
|
|
|
#include "uart_a72.h"
|
|
|
|
|
#include "Can_check.h"
|
|
|
|
|
#include "Timer.h"
|
|
|
|
|
#include "Rc522.h"
|
|
|
|
|
#include "drive.h"
|
|
|
|
|
#include "bkrc_voice.h"
|
|
|
|
|
|
|
|
|
|
/***************************** <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *****************************/
|
|
|
|
|
|
|
|
|
|
static uint32_t Power_check_times; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
static uint32_t LED_twinkle_times; // LED<45><44>˸<EFBFBD><CBB8><EFBFBD><EFBFBD>
|
|
|
|
|
static uint32_t WIFI_Upload_data_times; // ͨ<><CDA8>Wifi<66>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
static uint32_t RFID_Init_Check_times; // RFID<49><44>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
uint8_t Go_Speed = 40; // ǰ<><C7B0><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
uint8_t wheel_Speed = 50; // ת<><D7AA><EFBFBD>ٶ<EFBFBD>
|
|
|
|
|
uint16_t Go_Temp = 280; // ǰ<><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
|
|
|
|
uint16_t dis_size = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
uint8_t make = 0; // ȫ<>Զ<EFBFBD><D4B6><EFBFBD>ʻ<EFBFBD><CABB>־λ
|
|
|
|
|
uint8_t SYN7318_Flag = 0; // SYN7318<31><38><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID<49><44><EFBFBD><EFBFBD>
|
|
|
|
|
uint8_t number = 0; // <20><><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
uint8_t coordinate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㷵<EFBFBD><E3B7B5>ֵ
|
|
|
|
|
|
|
|
|
|
int suduzhi1;//=0;//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>ֵ1
|
|
|
|
|
int suduzhi2;//=0;//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>ֵ2
|
|
|
|
|
int suduzhi3;//=0;//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>ֵ3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void KEY_Check(void); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⺯<EFBFBD><E2BAAF>
|
|
|
|
|
static void Hardware_Init(void); // Ӳ<><D3B2><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
char Data[5];
|
|
|
|
|
|
|
|
|
|
/* ȫ<>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>к<EFBFBD><D0BA><EFBFBD> */
|
|
|
|
|
void Car_Thread(void)
|
|
|
|
|
{
|
|
|
|
|
switch(make)
|
|
|
|
|
{
|
2025-04-18 20:51:35 +08:00
|
|
|
|
case CITY_PATROL_INSPECTION:
|
2025-04-18 16:22:24 +08:00
|
|
|
|
{
|
|
|
|
|
Send_ZigbeeData_To_Fifo(SEG_TimOpen, 8); // LED<45><44>ʾ -> <20><>ʱģʽ<C4A3><CABD><EFBFBD><EFBFBD>
|
|
|
|
|
delay_ms(200);
|
|
|
|
|
Send_ZigbeeData_To_Fifo(SEG_TimOpen, 8); // LED<45><44>ʾ -> <20><>ʱģʽ<C4A3><CABD><EFBFBD><EFBFBD>
|
|
|
|
|
delay_ms(200);
|
|
|
|
|
Car_Track(Go_Speed); //ѭ<><D1AD>
|
|
|
|
|
Car_Go(Go_Speed,Go_Temp); //ǰ<><C7B0>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Tba_L_LED = 0; //<2F><>ת<EFBFBD>ƿ<EFBFBD>
|
|
|
|
|
Car_L(wheel_Speed); //<2F><>ת
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0);
|
|
|
|
|
Tba_L_LED = 1; //<2F><>ת<EFBFBD>ƹ<EFBFBD>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Car_Time_Track(30,800); //ǰ<><C7B0>һ<EFBFBD>루·<EBA3A8>м<EFBFBD><D0BC>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>̵ƣ<CCB5>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Send_ZigbeeData_To_Fifo(TrafficA_Open,8); //<2F><>ͨ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>ʶ<EFBFBD><CAB6>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Send_ZigbeeData_To_Fifo(TrafficA_Red,8); //<2F><><EFBFBD><EFBFBD>״̬
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0); //ͣ<><CDA3>
|
|
|
|
|
delay_ms(15000);
|
|
|
|
|
Send_ZigbeeData_To_Fifo(TrafficA_Open,8); //<2F><>ͨ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>ʶ<EFBFBD><CAB6>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Send_ZigbeeData_To_Fifo(TrafficA_Green,8); //<2F>̵<EFBFBD>
|
|
|
|
|
delay_ms(1500);
|
|
|
|
|
Car_Track(Go_Speed); //ѭ<><D1AD>
|
|
|
|
|
Car_Go(Go_Speed,Go_Temp); //ǰ<><C7B0>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Qv_Car_HW("ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ·<CABE><C2B7>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Tba_L_LED = 0; //<2F><>ת<EFBFBD>ƿ<EFBFBD>
|
|
|
|
|
Car_L(wheel_Speed); //<2F><>ת
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0);
|
|
|
|
|
Tba_L_LED = 1; //<2F><>ת<EFBFBD>ƹ<EFBFBD>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Infrared_Send(Alarm_Open,6);//<2F><><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>
|
|
|
|
|
delay_ms(1000);
|
|
|
|
|
Car_L(90); // <20><><EFBFBD><EFBFBD>ת
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0);
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Car_Track(Go_Speed); //ѭ<><D1AD>
|
|
|
|
|
Car_Go(Go_Speed,Go_Temp); //ǰ<><C7B0>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Gate_Open_Zigbee(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>բ
|
|
|
|
|
Gate_Show_Zigbee("A11451"); // <20><>բ<EFBFBD><D5A2>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
|
|
|
|
delay_ms(200);
|
|
|
|
|
Gate_Show_Zigbee("A11451"); // <20><>բ<EFBFBD><D5A2> ʾ<><CABE><EFBFBD><EFBFBD>
|
|
|
|
|
delay_ms(600);
|
|
|
|
|
YY_Comm_Zigbee(0x20, 0x01);
|
|
|
|
|
Car_Track(Go_Speed); // ѭ<><D1AD>
|
|
|
|
|
Car_Go(Go_Speed,Go_Temp); // ǰ<><C7B0>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
delay_ms(200);
|
|
|
|
|
Tba_R_LED = 0; //<2F><>ת<EFBFBD>ƿ<EFBFBD>
|
|
|
|
|
Car_R(wheel_Speed); //<2F><>ת
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0);
|
|
|
|
|
Tba_R_LED = 1; //<2F><>ת<EFBFBD>ƹ<EFBFBD>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Car_Track(Go_Speed); //ѭ<><D1AD>
|
|
|
|
|
Car_Go(Go_Speed,Go_Temp); //ǰ<><C7B0>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Tba_L_LED = 0; //<2F><>ת<EFBFBD>ƿ<EFBFBD>
|
|
|
|
|
Car_L(wheel_Speed); //<2F><>ת
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0);
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Tba_L_LED = 1; //<2F><>ת<EFBFBD>ƹ<EFBFBD>
|
|
|
|
|
delay_ms(200);
|
|
|
|
|
Light_Inf(3); // <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD>ǿ<EFBFBD>Ⱥ<EFBFBD><C8BA><EFBFBD>
|
|
|
|
|
delay_ms(200);
|
|
|
|
|
Car_R(80); // <20><><EFBFBD><EFBFBD>ת
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0);
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Car_Time_Track(20,1500); //<2F><><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͣ<C7B0><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
delay_ms(5000);
|
|
|
|
|
YY_Play_Zigbee("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>");
|
|
|
|
|
Car_Track(Go_Speed); // ѭ<><D1AD>
|
|
|
|
|
Car_Go(80,2000); //<2F><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ǰ<EFBFBD><C7B0>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Tba_L_LED = 0; //<2F><>ת<EFBFBD>ƿ<EFBFBD>
|
|
|
|
|
Car_L(wheel_Speed); //<2F><>ת
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0);
|
|
|
|
|
Tba_L_LED = 1; //<2F><>ת<EFBFBD>ƹ<EFBFBD>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Car_Track(Go_Speed); //ѭ<><D1AD>
|
|
|
|
|
Car_Go(Go_Speed,Go_Temp); //ǰ<><C7B0>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Tba_L_LED = 0; //<2F><>ת<EFBFBD>ƿ<EFBFBD>
|
|
|
|
|
Car_L(wheel_Speed); //<2F><>ת
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0);
|
|
|
|
|
Tba_L_LED = 1; //<2F><>ת<EFBFBD>ƹ<EFBFBD>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Car_Time_Track(20,1000);
|
|
|
|
|
ETC_Get_Zigbee(); //ETCϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Car_Track(Go_Speed); //ѭ<><D1AD>
|
|
|
|
|
Car_Go(Go_Speed,Go_Temp); //ǰ<><C7B0>
|
|
|
|
|
delay_ms(200);
|
|
|
|
|
Car_Track(Go_Speed); //ѭ<><D1AD>
|
|
|
|
|
Car_Go(Go_Speed,Go_Temp); //ǰ<><C7B0>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Tba_L_LED = 0; //<2F><>ת<EFBFBD>ƿ<EFBFBD>
|
|
|
|
|
Car_L(wheel_Speed); //<2F><>ת
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0);
|
|
|
|
|
Tba_L_LED = 1; //<2F><>ת<EFBFBD>ƹ<EFBFBD>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Car_Back(Go_Speed,1000);//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Garage_Cont_Zigbee('A', 1); // <20><><EFBFBD>峵<EFBFBD><E5B3B5>A <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>
|
|
|
|
|
delay_ms(100);
|
|
|
|
|
Send_ZigbeeData_To_Fifo(SMG_TimClose, 8); // <20><><EFBFBD><EFBFBD><EFBFBD>ܼ<EFBFBD>ʱ -> <20>ر<EFBFBD>
|
|
|
|
|
delay_ms(300);
|
|
|
|
|
Send_ZigbeeData_To_Fifo(SMG_TimClose, 8); // <20><><EFBFBD><EFBFBD><EFBFBD>ܼ<EFBFBD>ʱ -> <20>ر<EFBFBD>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Send_ZigbeeData_To_Fifo(Charge_Open, 8); // <20><><EFBFBD>߳<EFBFBD><DFB3><EFBFBD> -> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
delay_ms(200);
|
|
|
|
|
Send_ZigbeeData_To_Fifo(Charge_Open, 8); // <20><><EFBFBD>߳<EFBFBD><DFB3><EFBFBD> -> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
delay_ms(200);
|
|
|
|
|
YY_Play_Zigbee("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Car_Go(0,0);
|
|
|
|
|
make = 0x00;
|
|
|
|
|
break;
|
|
|
|
|
}
|
2025-04-18 20:51:35 +08:00
|
|
|
|
case EXEC_DETECT_TASK:
|
2025-04-18 16:22:24 +08:00
|
|
|
|
{
|
|
|
|
|
Garage_Cont_Zigbee('A', 0); //<2F><><EFBFBD>峵<EFBFBD><EFBFBD><E2B5BD>0<EFBFBD><30>
|
2025-04-18 20:51:35 +08:00
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> _set_timer(SEG_TimOpen, 8);
|
2025-04-18 16:22:24 +08:00
|
|
|
|
Send_ZigbeeData_To_Fifo(SEG_TimOpen, 8); // LED<45><44>ʾ -> <20><>ʱģʽ<C4A3><CABD><EFBFBD><EFBFBD>
|
|
|
|
|
delay_ms(200);
|
|
|
|
|
Send_ZigbeeData_To_Fifo(SEG_TimOpen, 8); // LED<45><44>ʾ -> <20><>ʱģʽ<C4A3><CABD><EFBFBD><EFBFBD>
|
2025-04-18 20:51:35 +08:00
|
|
|
|
delay_ms(200);
|
|
|
|
|
//debug zigbee stop the car
|
2025-04-18 16:22:24 +08:00
|
|
|
|
delay_ms(10000);
|
2025-04-18 20:51:35 +08:00
|
|
|
|
//
|
|
|
|
|
{
|
|
|
|
|
Car_Track(Go_Speed); //ѭ<><D1AD>
|
|
|
|
|
Car_Go(Go_Speed,Go_Temp); //ǰ<><C7B0>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Tba_R_LED = 0; //<2F><>ת<EFBFBD>ƿ<EFBFBD>
|
|
|
|
|
Car_R(wheel_Speed); //<2F><>ת
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0);
|
|
|
|
|
Tba_R_LED = 1; //<2F><>ת<EFBFBD>ƹ<EFBFBD>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
}
|
2025-04-18 16:22:24 +08:00
|
|
|
|
Ultrasonic_Ranging(); // <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
dis_size = dis;
|
|
|
|
|
TFT_Dis_Zigbee('A',dis_size); // LED<45><44>ʾ<EFBFBD><CABE>־<EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
delay_ms(200);
|
|
|
|
|
LED_Dis_Zigbee(dis_size); // LED<45><44>ʾ<EFBFBD><CABE>־<EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
TFT_Dis_Zigbee('A',dis_size);
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Tba_L_LED = 0; //<2F><>ת<EFBFBD>ƿ<EFBFBD>
|
|
|
|
|
Car_L(wheel_Speed); //<2F><>ת
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0);
|
|
|
|
|
Tba_L_LED = 1; //<2F><>ת<EFBFBD>ƹ<EFBFBD>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Car_Track(Go_Speed); //ѭ<><D1AD>
|
|
|
|
|
Car_Go(Go_Speed,Go_Temp); //ǰ<><C7B0>
|
|
|
|
|
Car_Track(Go_Speed); //ѭ<><D1AD>
|
|
|
|
|
Car_Go(Go_Speed,Go_Temp); //ǰ<><C7B0>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Tba_R_LED = 0; //<2F><>ת<EFBFBD>ƿ<EFBFBD>
|
|
|
|
|
Car_R(wheel_Speed); //<2F><>ת
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0);
|
|
|
|
|
Tba_R_LED = 1; //<2F><>ת<EFBFBD>ƹ<EFBFBD>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Ultrasonic_Ranging(); // <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
dis_size = dis;
|
|
|
|
|
TFT_Dis_Zigbee('B',dis_size); // LED<45><44>ʾ<EFBFBD><CABE>־<EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
delay_ms(200);
|
|
|
|
|
LED_Dis_Zigbee(dis_size); // LED<45><44>ʾ<EFBFBD><CABE>־<EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
TFT_Dis_Zigbee('B',dis_size);
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Car_R(40); // <20><><EFBFBD><EFBFBD>ת
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Control(0,0);
|
|
|
|
|
Car_Track(Go_Speed); //ѭ<><D1AD>
|
|
|
|
|
Car_Go(Go_Speed,Go_Temp); //ǰ<><C7B0>
|
|
|
|
|
Car_Track(Go_Speed); //ѭ<><D1AD>
|
|
|
|
|
Car_Go(Go_Speed,Go_Temp); //ǰ<><C7B0>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Car_R(80); // <20><><EFBFBD><EFBFBD>ת
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Car_R(40); // <20><><EFBFBD><EFBFBD>ת
|
|
|
|
|
Car_Back(Go_Speed,1000);//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
Garage_Cont_Zigbee('A', 1); // <20><><EFBFBD>峵<EFBFBD><E5B3B5>A <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>
|
|
|
|
|
delay_ms(100);
|
|
|
|
|
Send_ZigbeeData_To_Fifo(SMG_TimClose, 8); // <20><><EFBFBD><EFBFBD><EFBFBD>ܼ<EFBFBD>ʱ -> <20>ر<EFBFBD>
|
|
|
|
|
delay_ms(300);
|
|
|
|
|
Send_ZigbeeData_To_Fifo(SMG_TimClose, 8); // <20><><EFBFBD><EFBFBD><EFBFBD>ܼ<EFBFBD>ʱ -> <20>ر<EFBFBD>
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Send_ZigbeeData_To_Fifo(Charge_Open, 8); // <20><><EFBFBD>߳<EFBFBD><DFB3><EFBFBD> -> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
delay_ms(200);
|
|
|
|
|
Send_ZigbeeData_To_Fifo(Charge_Open, 8); // <20><><EFBFBD>߳<EFBFBD><DFB3><EFBFBD> -> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
delay_ms(200);
|
|
|
|
|
YY_Play_Zigbee("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
delay_ms(500);
|
|
|
|
|
Car_Go(0,0);
|
|
|
|
|
make = 0x00;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⺯<EFBFBD><E2BAAF> */
|
|
|
|
|
void KEY_Check(void)
|
|
|
|
|
{
|
|
|
|
|
if(S1 == 0)
|
|
|
|
|
{
|
|
|
|
|
delay_ms(10);
|
|
|
|
|
if(S1 == 0)
|
|
|
|
|
{
|
|
|
|
|
LED1 = !LED1;
|
|
|
|
|
while(!S1);
|
2025-04-18 20:51:35 +08:00
|
|
|
|
make=CITY_PATROL_INSPECTION;
|
2025-04-18 16:22:24 +08:00
|
|
|
|
YY_Play_Zigbee("<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѳ<EFBFBD><EFBFBD>");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(S2 == 0)
|
|
|
|
|
{
|
|
|
|
|
delay_ms(10);
|
|
|
|
|
if(S2 == 0)
|
|
|
|
|
{
|
|
|
|
|
LED2 = !LED2;
|
|
|
|
|
while(!S2);
|
2025-04-18 20:51:35 +08:00
|
|
|
|
make = EXEC_DETECT_TASK;
|
2025-04-18 16:22:24 +08:00
|
|
|
|
YY_Play_Zigbee("ִ<EFBFBD>м<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(S3 == 0)
|
|
|
|
|
{
|
|
|
|
|
delay_ms(10);
|
|
|
|
|
if(S3 == 0)
|
|
|
|
|
{
|
|
|
|
|
LED3 = !LED3;
|
|
|
|
|
while(!S3);
|
|
|
|
|
// Infrared_Send(Alarm_Open,6);//<2F><><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>
|
|
|
|
|
// delay_ms(500);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(S4 == 0)
|
|
|
|
|
{
|
|
|
|
|
delay_ms(10);
|
|
|
|
|
if(S4 == 0)
|
|
|
|
|
{
|
|
|
|
|
LED4 = !LED4;
|
|
|
|
|
while(!S4);
|
|
|
|
|
Car_Time_Track(20,3000);
|
|
|
|
|
delay_ms(300);
|
|
|
|
|
Car_R(80); // <20><><EFBFBD><EFBFBD>ת
|
|
|
|
|
delay_ms(300);
|
|
|
|
|
Car_Time_Track(20,3000);
|
|
|
|
|
delay_ms(300);
|
|
|
|
|
Car_R(80); // <20><><EFBFBD><EFBFBD>ת
|
|
|
|
|
Car_Go(0,0);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int main(void)
|
|
|
|
|
{
|
|
|
|
|
uint16_t Light_Value = 0; // <20><>ǿ<EFBFBD><C7BF>ֵ
|
|
|
|
|
uint16_t CodedDisk_Value = 0; // <20><><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
Hardware_Init(); // Ӳ<><D3B2><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
LED_twinkle_times = gt_get() + 50;
|
|
|
|
|
Power_check_times = gt_get() + 200;
|
|
|
|
|
WIFI_Upload_data_times = gt_get() + 200;
|
|
|
|
|
RFID_Init_Check_times = gt_get() + 200;
|
|
|
|
|
Principal_Tab[0] = 0x55; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ͷ
|
|
|
|
|
Principal_Tab[1] = 0xAA;
|
|
|
|
|
Follower_Tab[0] = 0x55; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䳵<EFBFBD><E4B3B5><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ͷ
|
|
|
|
|
Follower_Tab[1] = 0x02;
|
|
|
|
|
Send_UpMotor(0, 0);
|
|
|
|
|
while(1)
|
|
|
|
|
{
|
|
|
|
|
KEY_Check(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
Can_WifiRx_Check(); // Wifi<66><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
|
|
|
|
|
Can_ZigBeeRx_Check(); // Zigbee<65><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
|
|
|
|
|
Car_Thread(); // ȫ<>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>к<EFBFBD><D0BA><EFBFBD>
|
|
|
|
|
if(gt_get_sub(LED_twinkle_times) == 0) // <20><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>
|
|
|
|
|
{
|
|
|
|
|
LED_twinkle_times = gt_get() + 50; // LED4״̬ȡ<CCAC><C8A1>
|
|
|
|
|
LED4 = !LED4;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(gt_get_sub(Power_check_times) == 0) // <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
Power_check_times = gt_get() + 200;
|
|
|
|
|
Power_Check();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if 1
|
|
|
|
|
if(gt_get_sub(RFID_Init_Check_times) == 0) // RFID<49><44>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
RFID_Init_Check_times = gt_get() + 200;
|
|
|
|
|
if(Rc522_GetLinkFlag() == 0)
|
|
|
|
|
{
|
|
|
|
|
Readcard_daivce_Init();
|
|
|
|
|
MP_SPK = !MP_SPK;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MP_SPK = 0;
|
|
|
|
|
LED1 = !LED1;
|
|
|
|
|
Rc522_LinkTest();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
if(gt_get_sub(WIFI_Upload_data_times) == 0) // <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
WIFI_Upload_data_times = gt_get() + 500;
|
|
|
|
|
if(Host_AGV_Return_Flag == RESET) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
Principal_Tab[2] = Stop_Flag; // <20><><EFBFBD><EFBFBD>״̬
|
|
|
|
|
Principal_Tab[3] = Get_tba_phsis_value(); // <20><><EFBFBD><EFBFBD>״̬
|
|
|
|
|
|
|
|
|
|
Ultrasonic_Ranging(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2>
|
|
|
|
|
Principal_Tab[4] = dis % 256; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵͰ<DDB5>λ
|
|
|
|
|
Principal_Tab[5] = dis / 256; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ߰<DDB8>λ
|
|
|
|
|
|
|
|
|
|
Light_Value = Get_Bh_Value(); // <20><>ǿ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2>
|
|
|
|
|
Principal_Tab[6] = Light_Value % 256; // <20><>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD>ݵͰ<DDB5>λ
|
|
|
|
|
Principal_Tab[7] = Light_Value / 256; // <20><>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD>ݸ߰<DDB8>λ
|
|
|
|
|
|
|
|
|
|
CodedDisk_Value = CanHost_Mp; // <20><><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
Principal_Tab[8] = CodedDisk_Value % 256;
|
|
|
|
|
Principal_Tab[9] = CodedDisk_Value / 256;
|
|
|
|
|
|
|
|
|
|
Principal_Tab[10] = coordinate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԯ<EFBFBD><D4AE><EFBFBD><EFBFBD><EFBFBD>㷵<EFBFBD><E3B7B5>ֵ
|
|
|
|
|
|
|
|
|
|
Send_WifiData_To_Fifo(Principal_Tab, 13); // ͨ<><CDA8>Wifi<66>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
UartA72_TxClear();
|
|
|
|
|
UartA72_TxAddStr(Principal_Tab, 13); // ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
UartA72_TxStart();
|
|
|
|
|
coordinate = 0 ;
|
|
|
|
|
}
|
|
|
|
|
else if((Host_AGV_Return_Flag == SET) && (AGV_data_Falg == SET))
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
UartA72_TxClear();
|
|
|
|
|
UartA72_TxAddStr(Follower_Tab, 50); // ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
UartA72_TxStart();
|
|
|
|
|
Send_WifiData_To_Fifo(Follower_Tab, 50); // ͨ<><CDA8>Wifi<66>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
AGV_data_Falg = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Ӳ<><D3B2><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
void Hardware_Init(void)
|
|
|
|
|
{
|
|
|
|
|
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); // <20>жϷ<D0B6><CFB7><EFBFBD>
|
|
|
|
|
delay_init(168); // <20><>ʱ<EFBFBD><CAB1>ʼ<EFBFBD><CABC>
|
|
|
|
|
Tba_Init(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
Infrared_Init(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
Cba_Init(); // <20><><EFBFBD>İ<EFBFBD><C4B0><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
Ultrasonic_Init(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
Hard_Can_Init(); // CAN<41><4E><EFBFBD>߳<EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
BH1750_Configure(); // BH1750<35><30>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
SYN7318_Init(); // <20><><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
Electricity_Init(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
UartA72_Init(); // A72Ӳ<32><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6>ʼ<EFBFBD><CABC>
|
|
|
|
|
Can_check_Init(7, 83); // CAN<41><4E><EFBFBD>߶<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
roadway_check_TimInit(999, 167); // ·<><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
Timer_Init(999, 167); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶʱ<D1B6><CAB1>֡
|
|
|
|
|
Readcard_daivce_Init(); // RFID<49><44>ʼ<EFBFBD><CABC>
|
|
|
|
|
BKRC_Voice_Init(); // С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
}
|