资源简介

飞思卡尔智能车摄像头组全套代码,包括底层驱动,赛道识别,舵机控制,电机转速控制,公式和参数可以参考。有菜单系统,方便直接在车上改变参数。定义了一套通信协议,方便与上位机互传数据。上层代码可以参考,底层驱动请结合自己的电路板更改,如果没有安装编码器,控制电机请直接使用set_duty()函数修改占空比。

资源截图

代码片段和文件信息


#include “common.h“
#include “include.h“
#include “calculation.h“
#include “LCD.h“
#include “Coding.h“


/*********************************************************** 
函数名称:CCD_init
函数功能:
入口参数:
出口参数:无 
备 注: 
***********************************************************/
extern u8  BUFF[500] ;
extern u8  ADdata[DATALINE][DATACOUNT];
void CCD_INC (void){
     gpio_Interrupt_init(PORTD14 GPI_UPFALLING) ;          //场中断
     gpio_Interrupt_init(PORTD13 GPI_DOWN RING) ;          //行中断 
     DMA_PORTx2BUFF_Init (DMA_CH4 (void *)&PTE_BYTE0_IN ADdata PTD12 DMA_BYTE1 DATACOUNT DMA_rising_down);
     }


u8 CCD_get_angle()
{
  //u8 start_line=10;
  //u8 end_line=40;
  u8 road[DATALINE];
  u8 l=0;
  u8 r=DATACOUNT;
  int sum=0;
  u8 res=0;
  int tmp_count=0;
  
  int i;
  int j;
  
  for(i=DATALINE-1;i>=0;i--)
  {
    //找左边黑线
    for(j=0;j    {
      if(ADdata[i][j]<0x80)
      {
        l=j;
        tmp_count=0;
      }
      else
      {
        tmp_count++;
        if(tmp_count>=3)
          break;
      }
    }
    tmp_count=0;
    
    //找右边黑线
    for(j=DATACOUNT;j>=0;j--)
    {
      if(ADdata[i][j]<0x80)
      {
        r=j;
        tmp_count=0;
      }
      else
      {
        tmp_count++;
        if(tmp_count>=3)
          break;
      }
    }
    tmp_count=0;
    
    //计算中线位置
    if(l>=r)
    {
      //丢线
      if(i==DATALINE-1)
        road[i]=MID;
      else
        road[i]=road[i+1];
    }
    road[i]=(l+r)/2;
  }
  
  //拟合角度
  //简易
  for(i=0;i  {
    sum+=road[i];
  }
  sum=sum/DATALINE;
  
  sum=sum-MID;
  
  sum=sum*20/MID+90;
  
  if(sum<70)
  {
    res=70;
  }
  else if(sum>110)
  {
    res=110;
  }
  
  else
  {
    res=sum;
  }
  
  return res;
}


///////////////////////
//跑道边界和中线
u8 road_mid[DATALINE];
u8 road_left[DATALINE];
u8 road_right[DATALINE];

//参数设置
u8 road_limit=5;
u8 road_threshold=40;
u8 frame_TOP=5;
u8 frame_BOTTOM=45;
u8 frame_LEFT=5;
u8 frame_RIGHT=175;
u8 ROAD_MID=90;
u8 max_range=5;
u8 max_error=5;
u8 red_light=253;

void CCD_set_limit(u8 limit)
{
road_limit=limit;
}

u8 CCD_get_limit()
{
return road_limit;
}


void CCD_set_threshold(u8 threshold)
{
road_threshold=threshold;
}

u8 CCD_get_threshold()
{
return road_threshold;
}

u8 CCD_setget_parameter(u8 datau8 ioint item)
{
u8 tmp=0;
switch(item)
{
case limit_ID:
{
if(io==INPUT)
{
//输入
road_limit=data;
}
else
{
//输出
tmp=road_limit;
}
}break;

case threshold_ID:
{
if(io==INPUT)
{
//输入
road_threshold=data;
}
else
{
//输出
tmp=road_threshold;
}
}break;

case frame_TOP_ID:
{
if(io==INPUT)
{
//输入
frame_TOP=data;
}
else
{
//输出
tmp=frame_TOP;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-03-29 15:47  Tore1.2\
     文件      322163  2014-11-04 15:31  Tore1.2\K60 IAR配置文件.docx
     目录           0  2015-02-12 22:45  Tore1.2\build\
     目录           0  2015-02-12 22:45  Tore1.2\build\Input_demo\
     文件       48787  2012-09-22 18:51  Tore1.2\build\Input_demo\fire_Input_demo.dep
     文件       52298  2012-02-28 15:05  Tore1.2\build\Input_demo\fire_Input_demo.ewd
     文件       55200  2012-04-16 23:51  Tore1.2\build\Input_demo\fire_Input_demo.ewp
     目录           0  2015-02-12 22:45  Tore1.2\build\PWM_Input_PIT_demo\
     文件       89123  2012-09-22 18:51  Tore1.2\build\PWM_Input_PIT_demo\fire_PWM_Input_PIT_demo.dep
     文件       52298  2012-02-28 15:05  Tore1.2\build\PWM_Input_PIT_demo\fire_PWM_Input_PIT_demo.ewd
     文件       55332  2012-04-16 23:53  Tore1.2\build\PWM_Input_PIT_demo\fire_PWM_Input_PIT_demo.ewp
     目录           0  2015-02-12 22:45  Tore1.2\build\adc_demo\
     文件       71310  2012-09-22 18:51  Tore1.2\build\adc_demo\fire_adc_demo.dep
     文件       52298  2012-02-28 15:05  Tore1.2\build\adc_demo\fire_adc_demo.ewd
     文件       55104  2012-04-16 23:34  Tore1.2\build\adc_demo\fire_adc_demo.ewp
     目录           0  2015-02-12 22:45  Tore1.2\build\cmsis_demo\
     文件       51930  2012-09-22 18:51  Tore1.2\build\cmsis_demo\fire_cmsis_demo.dep
     文件       52298  2012-03-29 21:00  Tore1.2\build\cmsis_demo\fire_cmsis_demo.ewd
     文件       55147  2012-05-09 23:44  Tore1.2\build\cmsis_demo\fire_cmsis_demo.ewp
     目录           0  2015-02-12 22:45  Tore1.2\build\config files\
     文件        2030  2010-10-28 03:30  Tore1.2\build\config files\128KB_Pflash.icf
     文件        2206  2010-11-12 03:41  Tore1.2\build\config files\128KB_Pflash_128KB_Dflash.icf
     文件        2035  2012-02-28 15:33  Tore1.2\build\config files\128KB_Ram.icf
     文件        2030  2010-10-28 03:30  Tore1.2\build\config files\256KB_Pflash.icf
     文件        2214  2012-03-01 20:12  Tore1.2\build\config files\256KB_Pflash_256KB_Dflash.icf
     文件        2024  2010-10-28 03:30  Tore1.2\build\config files\32KB_Ram.icf
     文件        2041  2012-03-01 18:46  Tore1.2\build\config files\512KB_Pflash.icf
     文件        2217  2010-11-12 03:41  Tore1.2\build\config files\64KB_Pflash_64KB_Dflash.icf
     文件        2024  2010-10-28 03:30  Tore1.2\build\config files\64KB_Ram.icf
     文件        3463  2012-03-08 21:04  Tore1.2\build\config files\fire_RAM_K60N512.icf
     文件        3441  2012-03-08 21:04  Tore1.2\build\config files\fire_ROM_K60N512.icf
............此处省略636个文件信息

评论

共有 条评论