资源简介

基于STM32F1循迹小车源码,包括移动与检测两部分,试用与普遍比赛所使用的循迹小车使用代码

资源截图

代码片段和文件信息

#include “sys.h“
#include “filter.h“
#include “control.h“
#define L4 PFin(0)  //pf0输入
#define L3 PFin(1)
#define L2 PFin(2)
#define L1 PFin(3)
#define R1 PFin(4)
#define R2 PFin(5)
#define R3 PFin(6)
#define R4 PFin(7)
/**************************************************************************
作者:平衡小车之家
我的淘宝小店:http://shop114407458.taobao.com/
**************************************************************************/
int Balance_PwmVelocity_PwmTurn_Pwm;
u8 Flag_Target;
int Voltage_TempVoltage_CountVoltage_All;
void send_data(void)
{

    usart1_send(0xff);
    usart1_send(0xfe); //起始校验位
    usart1_send(Angle_Balance);
    usart1_send(Distance);
    usart1_send(Eight_tracks());
    usart1_send(0);
    usart1_send(0);
    usart1_send(0);
    usart1_send(0);
    usart1_send(0);
}

/**************************************************************************
函数功能:八路循迹模块
入口参数:int
返回  值:unsigned int
0 亮 黑
1 暗 白
**************************************************************************/
int Eight_tracks(void)
{
    int tempflag;
    if(flag==1)
    {
        if(L4==1&&L3==1&&L2==1&&L1==1&&R1==1&&R2==1&&R3==1&&R4==1)
        {
            flag=1;
            temp=0;
        }

        if(L4==0&&L3==0&&L2==0&&L1==1&&R1==1&&R2==0&&R3==0&&R4==0)
        {
            temp=8;
            flag=1;
        }

        if(L4==0&&L3==0&&L2==1&&L1==1&&R1==0&&R2==0&&R3==0&&R4==0)
        {
            temp=4;
            flag=1;
        }

        if(L4==0&&L3==0&&L2==0&&L1==0&&R1==1&&R2==1&&R3==0&&R4==0)
        {
            temp=6;
            flag=1;
        }

        if(L4==0&&L3==0&&L2==0&&L1==0&&R1==0&&R2==0&&R3==0&&R4==0)
        {
            temp=5;
            flag=1;
        }

        if(L4==0&&L3==0&&L2==0&&L1==0&&R1==0&&R2==0&&R3==0&&R4==0)
        {
            temp=4;
            flag=1;
        }
    }
    else
    {   
flag=0;
        temp=9;
    }
    return temp;  //返回temp的值
}


/**************************************************************************
函数功能:获取角度 三种算法经过我们的调校,都非常理想
入口参数:获取角度的算法 1:DMP  2:卡尔曼 3:互补滤波
返回  值:无
**************************************************************************/
void Get_Angle(u8 way)

{

    float Accel_YAccel_XAccel_ZGyro_YGyro_Z;
    Temperature=Read_Temperature();      //===读取MPU6050内置温度传感器数据,近似表示主板温度。
    if(way==1)                           //===DMP的读取在数据采集中断提醒的时候,严格遵循时序要求
    {
        Read_DMP();                      //===读取加速度、角速度、倾角
        Angle_Balance=Pitch;             //===更新平衡倾角
        Gyro_Balance=gyro[1];            //===更新平衡角速度
        Gyro_Turn=gyro[2];               //===更新转向角速度
        Acceleration_Z=accel[2];         //===更新Z轴加速度计
        Angle_Balance=myabs(Angle_Balance);
    }
    else
    {
        Gyro_Y=(I2C_ReadOneByte(devAddrMPU6050_RA_GYRO_YOUT_H)<<8)+I2C_ReadOneByte(devAddrMPU6050_RA_GYRO_YOUT_L);    //读取Y轴陀螺仪
        Gyro_Z=(I2C_ReadOneByte(devAddrMPU605

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        399  2011-05-09 18:17  循迹小车\检测\keilkill.bat

     文件       5225  2018-12-27 21:22  循迹小车\检测\MiniBalance\CONTROL\control.c

     文件       4875  2018-12-16 21:48  循迹小车\检测\MiniBalance\CONTROL\control.c.orig

     文件        510  2018-12-14 21:41  循迹小车\检测\MiniBalance\CONTROL\control.h

     文件       2891  2015-07-09 14:05  循迹小车\检测\MiniBalance\DataScope_DP\DataScope_DP.C

     文件        586  2015-07-09 14:05  循迹小车\检测\MiniBalance\DataScope_DP\DataScope_DP.h

     文件      19342  2012-12-14 11:16  循迹小车\检测\MiniBalance\DMP\dmpKey.h

     文件       6765  2012-12-14 11:16  循迹小车\检测\MiniBalance\DMP\dmpmap.h

     文件      84104  2015-07-09 14:05  循迹小车\检测\MiniBalance\DMP\inv_mpu.c

     文件       4335  2015-07-09 14:05  循迹小车\检测\MiniBalance\DMP\inv_mpu.h

     文件      57839  2015-07-09 14:05  循迹小车\检测\MiniBalance\DMP\inv_mpu_dmp_motion_driver.c

     文件       3386  2015-07-09 14:05  循迹小车\检测\MiniBalance\DMP\inv_mpu_dmp_motion_driver.h

     文件       2105  2015-12-07 15:52  循迹小车\检测\MiniBalance\filter\filter.c

     文件        399  2016-04-06 14:10  循迹小车\检测\MiniBalance\filter\filter.h

     文件      11323  2016-04-07 08:53  循迹小车\检测\MiniBalance\MPU6050\MPU6050.c

     文件      15009  2016-04-07 08:53  循迹小车\检测\MiniBalance\MPU6050\mpu6050.h

     文件       4893  2017-02-21 11:12  循迹小车\检测\MiniBalance\show\show.c

     文件        331  2018-12-12 18:16  循迹小车\检测\MiniBalance\show\show.h

     文件      17273  2010-06-07 10:25  循迹小车\检测\MiniBalance_COER\core_cm3.c

     文件      85714  2011-02-09 14:59  循迹小车\检测\MiniBalance_COER\core_cm3.h

     文件      12765  2011-03-10 10:52  循迹小车\检测\MiniBalance_COER\startup_stm32f10x_md.s

     文件       2968  2017-02-21 09:40  循迹小车\检测\MiniBalance_HARDWARE\ADC\adc.c

     文件        413  2016-04-07 08:53  循迹小车\检测\MiniBalance_HARDWARE\ADC\adc.h

     文件       2887  2015-06-07 00:48  循迹小车\检测\MiniBalance_HARDWARE\DataScope_DP\DataScope_DP.C

     文件        581  2015-05-04 12:37  循迹小车\检测\MiniBalance_HARDWARE\DataScope_DP\DataScope_DP.h

     文件      19342  2012-12-14 11:16  循迹小车\检测\MiniBalance_HARDWARE\DMP\dmpKey.h

     文件       6765  2012-12-14 11:16  循迹小车\检测\MiniBalance_HARDWARE\DMP\dmpmap.h

     文件      84104  2015-07-09 14:05  循迹小车\检测\MiniBalance_HARDWARE\DMP\inv_mpu.c

     文件       4335  2015-07-09 14:05  循迹小车\检测\MiniBalance_HARDWARE\DMP\inv_mpu.h

     文件      57839  2015-07-09 14:05  循迹小车\检测\MiniBalance_HARDWARE\DMP\inv_mpu_dmp_motion_driver.c

............此处省略505个文件信息

评论

共有 条评论