1. 飛思卡爾攝像頭組小車如何識別軌跡起點和終點
起點?。。。 起點要判斷嗎。。 直接讓他空跑幾秒程序就可以了、、、 終點的話我當年勇紅外去讀的。。。 沒用攝像頭 2個紅外裝在車2變同時黑色就是終點 用C語言寫的
2. 求飛思卡爾智能車CCD攝像頭程序
Main.c
#include <hidef.h> /* common defines and macros */
#include <mc9s12db128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12db128b"
#include "define.h"
#include "init.h"
// variable used in video process
volatile unsigned char image_data[ROW_MAX][LINE_MAX] ; // data array of picture
unsigned char black_x[ROW_MAX] ; // 0ne-dimensional array
unsigned char row ; // x-position of the array
unsigned char line ; // y-position of the array
unsigned int row_count ; // row counter
unsigned char line_sample ; // used to counter in AD
unsigned char row_image ;
unsigned char line_temp ; // temperary variable used in data transfer
unsigned char sample_data[LINE_MAX] ; // used to save one-dimension array got in
interruption
// variables below are used in speed measure
Unsigned char pulse[5] ; // used to save data in PA process
Unsigned char counter; // temporary counter in Speed detect
Unsigned char cur_speed; // current speed
short stand;
short data;
unsigned char curve ; // valve used to decide straight or turn
short Bounds(short data);
short FuzzyLogic(short stand);
/*----------------------------------------------------------------------------*\
receive_sci
\*----------------------------------------------------------------------------*/
unsigned char receive_sci(void) // receive data through sci
{ unsigned char sci_data;
while(SCI0SR1_RDRF!=1);
sci_data=SCI0DRL;
return sci_data;
}
/*----------------------------------------------------------------------------*\
transmit_sci
\*----------------------------------------------------------------------------*/
void transmit_sci(unsigned char transmit_data) // send data through sci
{
while(SCI0SR1_TC!=1);
while(SCI0SR1_TDRE!=1);
SCI0DRL=transmit_data;
}
/*****************************************************************************
***/
/*----------------------------------------------------------------------------*\
abs_sub
\*----------------------------------------------------------------------------*/
unsigned char abs_sub(unsigned char num1, unsigned char num2)
{ unsigned char difference;
if(num1>=num2){
difference=num1-num2;
}else{
difference=num2-num1;
}
return difference;
}
void pwm_set(unsigned int tycycle)
{
PWMDTY1=tycycle&0x00FF;
PWMDTY0=tycycle>>8;
}
void get_black_wire(void) // used to extract black wire
{ unsigned char i;
for(row=0;row<ROW_MAX;row++){
for(line=LINE_MIN;line<LINE_MAX-3;line++){
if(image_data[row][line]>image_data[row][line+3]+VALVE){
for(i=3;i<10;i++){
if(image_data[row][line+i]+VALVE<image_data[row][line+i+3]){
black_x[row]=line+i/2+2;
i=10;
}
}
line=LINE_MAX;
} else{
//black_x[row]=(black_x[row]/45)*78;
}
}
}
}
/*----------------------------------------------------------------------------*\
這是第一屆上海交通大學技術報告裡面的.
智能車論壇里有很多.
3. 如何開始學習製作飛思卡爾攝像頭智能車
我也准備做飛思卡爾的攝像頭競賽,對於攝像頭,我也是才開始學,關於經驗,還是有一些智能車方面的經驗。
(1)智能車論壇上有最新的今年的技術報告,多看一看。
(2)不知道你們組好隊了沒有,組隊也很關鍵,我覺得要有一人軟體比較強,有想法,肯認認真真的去編寫程序,耐得住枯燥乏味,耐得住寂寞。還有有一個人擅長硬體,關於車體的改裝,PCB的繪制,電路板的製作,硬體問題的解決等等。另外一個人就要軟硬都會,充當一個權衡點。到了後期,大家可能都要去看程序,去調車,因為硬體固定後就基本不動了;
(3)多請教你們學校的參加過競賽的學長,他們的建議,可以讓你們少走很多彎路
(4)對於攝像頭的相關知識多下載資料,多看,提前多了解
(5)往年的視頻可以多看看,從中你可以發現他們跑的好的車的一些演算法,一些技巧,以及對某些賽道的處理方法。
以上都是個人的一些建議,希望對你有用