2014年智能车竞赛光电组程序


2014年智能车竞赛光电组获奖代码,使用线性CCD光电摄像头,K60单片机处理,图像二值化,PID控制,平均速度2m/s。
资源截图
代码片段和文件信息

#include “common.h“
#include “include.h“
#include “calculation.h“


/*********************************************************** 
函数名称:MOTORPWM_init
函数功能:
入口参数:
出口参数:无 
备 注: 
***********************************************************/
void  MOTORPWM_init(void)
{
    lptmr_counter_init(LPT0_ALT2 LIN_COUT 2 LPT_Rising)  ;   //初始化脉冲计数器 ,PTC5输入捕获脚,LIN_cout =100,预处理为2,上升沿捕获 
    FTM_PWM_init(FTM0  CH0 800000);
    FTM_PWM_init(FTM0  CH1 800000);                        //电机占空比设置初始化    占空比 = duty /(MOD +1 ) ;FTM_CnV_REG(FTMx[ftmn] ch) = cv;
    FTM_PWM_init(FTM0  CH2 800000);
    FTM_PWM_init(FTM0  CH3 800000);                        //电机占空比设置初始化    占空比 = duty /(MOD +1 ) ;FTM_CnV_REG(FTMx[ftmn] ch) = cv;

}


/*********************************************************** 
函数名称:TURNPWM_init
函数功能:
入口参数:
出口参数:无 
备 注: 
***********************************************************/
void  TURNPWM_init(void)
{
      
      FTM_PWM_init(FTM1 CH0  18030);                           //舵机占空比设置初始化   MOD =19531 ;舵机1
      FTM_PWM_init(FTM1 CH1  18030);                           //舵机占空比设置初始化   MOD =19531 ;舵机2
      FTM_CnV_REG(FTMx[FTM1] CH1) = MIDSTRING ; 
}
/*********************************************************** 
函数名称:TurnPWM
函数功能:根据转向值和角度传感器计算转向值
入口参数:TurnPosition          计算黑线位置
          TurnMidPosition       黑线中点值

出口参数:无 
备 注: 
***********************************************************/
extern u16 ASPeed1 ;
u16 speed;
s16 TurnPWM(u8 TurnPositionu8 TurnMidPosition)
{
    s16 direction;
    s16 TurnPWM ;
    static s16 TurnKP TurnKD ;
    static s16 direction0 = TURNMIDPOSITION ;
    TurnKP = 60 ;
    TurnKD = 4 ;
    direction = TurnPosition - TurnMidPosition ;

    speed=40-(u16)(0.5*abs(direction));
    if(speed<=0)  speed=2;
    ASPeed1=speed;
    
    /*if((direction<10)&&(direction > -10))//pwm45
    {
      TurnKP = 40 ;
      TurnKD = 5 ;
      
    } */
    
    
    TurnPWM =  TurnKP * direction + TurnKD * (direction - direction0);
    if(TurnPWM > TURNPWMMAX) {TurnPWM = TURNPWMMAX ;}
    else if (TurnPWM < TURNPWMMIN ) {TurnPWM = TURNPWMMIN ;}  
        
    direction0 = direction ;
    TurnPWM += MIDSTRING ;
    return TurnPWM ;
}

/*
** ===================================================================
** SpeedPID
   输入:speedCount采集车速,AmSpeed 目标车速  ;  
   输出 :SpeedPWMOUT  计算车速 ;
** ===================================================================
*/


int16_t  SpeedKP = 0 ;
int16_t  SpeedKI = 0 ;
int16_t  SpeedKD = 0 ;
//int16_t  SpeedPWM = 0 ;
      
 int16_t SpeedPID(uint16_t speedCountuint16_t AmSpeed){
 //  uint8_t i;

     static int16_t LastSpeedCut0LastSpeedCut1LastSpeedCut2 SpeedLastPWMK ;
     int16_t  SpeedPWMKP SpeedPWMKI SpeedPWMKDSpeedPWMK ;
     int16_t  SpeedPWMOUT;    
     int16_t  SpeedDifference0=0;
     int16_t  speedDEARE1speedDEARE2DSpeed ;              

     SpeedKP = 80;
     SpeedK

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-10-01 17:54  0.无路径记忆
     目录           0  2014-10-01 17:54  0.无路径记忆uild
     目录           0  2014-10-01 17:54  0.无路径记忆uildInput_demo
     文件       48787  2012-09-22 18:51  0.无路径记忆uildInput_demofire_Input_demo.dep
     文件       52298  2012-02-28 15:05  0.无路径记忆uildInput_demofire_Input_demo.ewd
     文件       55200  2012-04-16 23:51  0.无路径记忆uildInput_demofire_Input_demo.ewp
     目录           0  2014-10-01 17:54  0.无路径记忆uildPWM_Input_PIT_demo
     文件       89123  2012-09-22 18:51  0.无路径记忆uildPWM_Input_PIT_demofire_PWM_Input_PIT_demo.dep
     文件       52298  2012-02-28 15:05  0.无路径记忆uildPWM_Input_PIT_demofire_PWM_Input_PIT_demo.ewd
     文件       55332  2012-04-16 23:53  0.无路径记忆uildPWM_Input_PIT_demofire_PWM_Input_PIT_demo.ewp
     目录           0  2014-10-01 17:53  0.无路径记忆uildadc_demo
     文件       71310  2012-09-22 18:51  0.无路径记忆uildadc_demofire_adc_demo.dep
     文件       52298  2012-02-28 15:05  0.无路径记忆uildadc_demofire_adc_demo.ewd
     文件       55104  2012-04-16 23:34  0.无路径记忆uildadc_demofire_adc_demo.ewp
     目录           0  2014-10-01 17:53  0.无路径记忆uildcmsis_demo
     文件       51930  2012-09-22 18:51  0.无路径记忆uildcmsis_demofire_cmsis_demo.dep
     文件       52298  2012-03-29 21:00  0.无路径记忆uildcmsis_demofire_cmsis_demo.ewd
     文件       55147  2012-05-09 23:44  0.无路径记忆uildcmsis_demofire_cmsis_demo.ewp
     目录           0  2014-10-01 17:53  0.无路径记忆uildconfig files
     文件        2030  2010-10-28 03:30  0.无路径记忆uildconfig files128KB_Pflash.icf
     文件        2206  2010-11-12 03:41  0.无路径记忆uildconfig files128KB_Pflash_128KB_Dflash.icf
     文件        2035  2012-02-28 15:33  0.无路径记忆uildconfig files128KB_Ram.icf
     文件        2030  2010-10-28 03:30  0.无路径记忆uildconfig files256KB_Pflash.icf
     文件        2214  2012-03-01 20:12  0.无路径记忆uildconfig files256KB_Pflash_256KB_Dflash.icf
     文件        2024  2010-10-28 03:30  0.无路径记忆uildconfig files32KB_Ram.icf
     文件        2041  2012-03-01 18:46  0.无路径记忆uildconfig files512KB_Pflash.icf
     文件        2217  2010-11-12 03:41  0.无路径记忆uildconfig files64KB_Pflash_64KB_Dflash.icf
     文件        2024  2010-10-28 03:30  0.无路径记忆uildconfig files64KB_Ram.icf
     文件        3463  2012-03-08 21:04  0.无路径记忆uildconfig filesfire_RAM_K60N512.icf
     文件        3441  2012-03-08 21:04  0.无路径记忆uildconfig filesfire_ROM_K60N512.icf
     目录           0  2014-10-01 17:53  0.无路径记忆uilddac_demo
............此处省略544个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)