¹âµç×éÎ人¿Æ¼¼´óѧÊ×°²Ò»¶Ó¼¼Êõ±¨¸æ - ͼÎÄ

¹æÔòÒªÇó³µÁ¾Í¨¹ýÊ®×Ö½»²æÂ·¿ÚÐèÒªÖ±ÐУ¬²»ÔÊÐí×óת¡¢ÓÒת¡£ÈüµÀÈçͼ4.6Ëùʾ¡£Õâ¾ÍÐèÒªÎÒÃÇÄܹ»×¼ÇеÄÅжÏÊ®×Ö·ÀֹͼÏñ½«CCDµ±×÷ÍäµÀ½øÐд¦Àí¡£ÎÒÃǶÔÓÚÊ®×ÖµÄÅжÏÊÇÏÈÓõÚÈý¸öÒ²¾ÍÊÇ×îÔ¶µÄÄǸöCCD½øÐÐÔ¤ÅУ¬È»ºó¶ÔÓÚѰÏßÏÈÊÇÑ¡Ôñ×î½üµÄÄÇÒ»¸öCCD½øÐÐѰÏߣ¬µ±µÚ¶þ¸öCCD³öÊ®×ÖµÚÒ»¸öCCDÈëÊ®×ÖºóÓÖÑ¡ÔñµÚ¶þ¸öCCD½øÐÐѰÏߣ¬ÕâÑù¾ÍÄܹ»×¼È·µÄÅжϺʹ¦ÀíÊ®×Ö½»²æÂ·¿ÚÁË¡£¾ßÌå³ÌÐòÈçÏ£º

ͼ4.6 Ê®×Ö½»²æÂ·¿Ú

void cross_road()//Ê®×ÖccdÇл»,ÓÅÏÈÑ¡Ôñ½Ï½øµÄccdѲÏß {

cross_in_flag=0; cross_out_flag=0;

if(//ccd1_both_lost_count>=4 // &&

ccd3_roadwidth[0]>70 &&ccd3_roadwidth[1]>70 &&ccd3_roadwidth[2]>70 &&ccd3_roadwidth[3]>70

)//ccd3¶ªÏߣ¬µÚÈý¸öCCD½øÈëÊ®×Ö

{ccd3_cross_flag=1;} else ccd3_cross_flag=0; if(ccd1_roadwidth[0]>70 &&ccd1_roadwidth[1]>70 &&ccd1_roadwidth[2]>70 &&ccd1_roadwidth[3]>70

)//ccd1¶ªÏߣ¬µÚ¶þ¸öCCD½øÈëÊ®×Ö ccd1_cross_flag=1;

else ccd1_cross_flag=0; if(ccd2_roadwidth[0]>70 &&ccd2_roadwidth[1]>70 &&ccd2_roadwidth[2]>70

39

µÚ¾Å½ìÈ«¹ú´óѧÉúÖÇÄÜÆû³µÑûÇëÈü¼¼Êõ±¨¸æ

&&ccd2_roadwidth[3]>70

)//ccd1¶ªÏߣ¬µÚÒ»¸öCCD½øÈëÊ®×Ö {ccd2_cross_flag=1;}

else if(ccd1_cross_flag==1

&&ccd2_roadwidth[0]>70 &&ccd2_roadwidth[1]>70 )

{ccd2_cross_flag=1;} else ccd2_cross_flag=0;

if(ccd3_cross_flag==1&&ccd1_cross_flag==0&&ccd2_cross_flag==1)//ccd2Ê®×Ö£¬ccd1·ÇÊ®×Ö£¬ÓÅÏÈÑ¡ÔñÓÐЧ×î½üccdѲÏß {

if(ccd1_right_record[0]==1

&&ccd1_right_record[1]==1 &&ccd1_left_record[0]==1 &&ccd1_left_record[1]==1 &&ccd1_roadwidth[0]<45

&&ccd1_roadwidth[1]<45//ccd1ÒѾ­³öÊ®×Ö,ÇÒËÑÏßÕý³££¬Æ«²îÓÐЧ

&&ccd1_roadwidth[2]<45 &&ccd1_roadwidth[3]<45 )

{cross_out_flag=1;bellring=100;} }

if(ccd2_cross_flag==1&&ccd1_cross_flag==1&&ccd3_cross_flag==0)//ccd2£¬ccd1Ê®×Ö£¬ccd3·ÇÊ®×Ö { if(

ccd3_right_record[0]==1

&&ccd3_right_record[1]==1 &&ccd3_left_record[0]==1 &&ccd3_left_record[1]==1 &&ccd3_roadwidth[0]<=70 &&ccd3_roadwidth[1]<=70 &&ccd3_roadwidth[2]<=70

)//ccd3ÒѾ­³öÊ®×Ö£¬ÇÒËÑÏßÕý³££¬Æ«²îÓÐЧ {cross_in_flag=0;bellring=100;} } }

40

4.3.5 Õϰ­²ßÂÔ·ÖÎö

ÈüµÀÕϰ­ÊǶԳÆÐ¨ÐÎÌ壬³¤¿í¸ß·Ö±ðΪ 30¡¢10¡¢5ÀåÃס£Â·ÕÏÄÚ²à±ßÔµ¾àÀëÈüµÀÖÐÐÄÏß¾àÀëÊÇ 5 ÀåÃס£Â·ÕϵijöÏÖ¸øÖ±Á¢Ð¡³µ´øÀ´Á˷dz£´óµÄÓ°Ï죬ÈçÈôäĿµÄ³åײÉÏÈ¥£¬±ØÈ»»áµ¼Ö·­³µ¶ùÎÞ·¨¼ÌÐø½øÐб¾È¦µÄ±ÈÈü£¬Òò´Ë£¬ÎÒÃDz»µÃ²»¶ÔÆä½øÐмì²â£¬µ±CCD¼ì²âµ½Á¬Ðø4³¡È«ºÚµÄÇé¿öÏ£¬ÎÒÃDZãĬÈÏΪС³µÇ°·½³öÏÖÁË·ÕÏ£¬²¢¶ÔËÙ¿ØÒÔ¼°×ªÏò½øÐд¦Àí£¬½ø¶ø´ïµ½Æ½Îȹý·ÕϵÃЧ¹û¡£

ͼ4.7 ·ÕÏ

4.3.6 ÆÂµÀ²ßÂÔ·ÖÎö

CCDÔÚÈëÆÂµÀʱ£¬ÓÉÓÚÑöÊÓ£¬CCD¿´²»µ½ÆÂµÀÐÅÏ¢£¬ÇÒCCD¼ì²â²»³öÊÇ·ñ´¦ÓÚÆÂµÀ¡£ÎÒÃÇÀûÓÃÍÓÂÝÒÇÔÚ´¹Ö±Ë®Æ½ÃæµÄ·½ÏòÉϵĽÇËÙ¶È»ý·ÖÀ´Åб𣬵±»ý·ÖÖµ´óÓÚÉ趨ֵ£¬¼´ÈÏΪ£¬´¦ÓÚÉÏÆÂ½×¶Î¡£Í¬ÑùÒ²ÄÜÅбðÏÂÆÂ¡£

4.4¶ÔËٶȵıջ·¿ØÖÆ

ͼ4.7 PID¿ØÖƹ¤×÷Ô­Àí

PID¿ØÖƲßÂÔÆä½á¹¹¼òµ¥£¬Îȶ¨ÐԺ㬿ɿ¿ÐԸߣ¬²¢ÇÒÒ×ÓÚʵÏÖ¡£ÆäȱµãÔÚÓÚ¿ØÖÆÆ÷µÄ²ÎÊýÕû¶¨Ï൱·±Ëö£¬ÐèÒªºÜÇ¿µÄ¹¤³Ì¾­Ñé¡£Ïà¶ÔÓÚÆäËûµÄ¿ØÖÆ·½Ê½£¬ÔÚ³ÉÊìÐԺͿɲÙ×÷ÐÔÉ϶¼ÓÐןܴóµÄÓÅÊÆ¡£ËùÒÔ×îºóÎÒÃÇÑ¡ÔñÁËPIDµÄ¿Ø

41

µÚ¾Å½ìÈ«¹ú´óѧÉúÖÇÄÜÆû³µÑûÇëÈü¼¼Êõ±¨¸æ

ÖÆ·½Ê½¡£

ÔÚС³µÅܶ¯ÖУ¬ÒòΪ²»ÐèÒª¿¼ÂÇС³µÖ®Ç°×ß¹ýµÄ·Ïߣ¬ËùÒÔ£¬ÎÒÃÇÉáÆúÁËI¿ØÖÆ£¬½«Ð¡³µ×ªÏòµÄPID¿ØÖƼò»¯³ÉPD¿ØÖÆ¡£

steer_d = steer_kn+char_abs((int)(diserror))*d_rate;//תÏòD¸úËæÆ«²î±ä»¯ÂÊ

steerpwmout=temp*(steer_control_count+1)/5+steerpwmold;

±¾·½°¸ÖÐͨ¹ýË«µç»úµÄ²îËÙ¿ØÖƲÉÓÃλÖÃʽµÄPD¿ØÖÆ£¬Ëٶȱջ·¿ØÖƲÉÓÃÁËλÖÃʽPI¿ØÖÆ¡£

speed_pout=speed_kp*(speed_error);

ËÙ¶ÈI¿ØÖÆ£¬»ý·Ö·ÖÀë,ÔÚÆ«²î¹ý´óʱ¹Ø±Õ»ý·Ö¡£ if (speed_error<=15&&speed_error>=-15) {speed_integration+=speed_ki*speed_error;}

if(speed_integration>=180)//»ý·ÖÏÞ·ù£¬ÐèÒª²âÊÔÈ·¶¨ÏÞ·ùÖµ speed_integration=180;

if(speed_integration <=-180) speed_integration=-180;

speedpid_out =speed_integration+speed_pout; if(speedpid_out>=speedpidout_limit) speedpid_out=speedpidout_limit;

if(speedpid_out<=-speedpidout_limit) speedpid_out=-speedpidout_limit;

}

uint8 speed_sample_count=0;

void SpeedControlOut() //ËÙ¶ÈÆ½»¬Êä³ö {

speedpid_pwm=speedpidold_out+(speedpid_out-speedpidold_out)*(speed_sample_count+1)/50.0;

}

ÔÚ±¾·½°¸ÖУ¬Ê¹ÓÃÊÔ´Õ·¨À´È·¶¨¿ØÖÆÆ÷µÄ±ÈÀý¡¢»ý·ÖºÍ΢·Ö²ÎÊý¡£

ÊÔ´Õ·¨ÊÇͨ¹ý±Õ»·ÊÔÑ飬¹Û²ìϵͳÏìÓ¦ÇúÏߣ¬¸ù¾Ý¸÷¿ØÖƲÎÊý¶ÔϵͳÏìÓ¦µÄ´óÖÂÓ°Ï죬·´¸´ÊÔ´Õ²ÎÊý£¬ÒÔ´ïµ½ÂúÒâµÄÏìÓ¦£¬×îºóÈ·¶¨PID¿ØÖƲÎÊý¡£ÊÔ´Õ²»ÊÇäĿµÄ£¬¶øÊÇÔÚ¿ØÖÆÀíÂÛÖ¸µ¼Ï½øÐеġ£ÔÚ¿ØÖÆÀíÂÛÖÐÒÑ»ñµÃÈç϶¨ÐÔ֪ʶ£º

±ÈÀýµ÷½Ú£¨P£©×÷ÓãºÊǰ´±ÈÀý·´Ó¦ÏµÍ³µÄÆ«²î£¬ÏµÍ³Ò»µ©³öÏÖÁËÆ«²î£¬±ÈÀýµ÷½ÚÁ¢¼´²úÉúµ÷½Ú×÷ÓÃÓÃÒÔ¼õÉÙÆ«²î¡£±ÈÀý×÷Óô󣬿ÉÒÔ¼Ó¿ìµ÷½Ú£¬¼õÉÙÎó²î£¬µ«Êǹý´óµÄ±ÈÀý£¬Ê¹ÏµÍ³µÄÎȶ¨ÐÔϽµ£¬ÉõÖÁÔì³ÉϵͳµÄ²»Îȶ¨¡£

»ý·Öµ÷½Ú£¨I£©×÷ÓãºÊÇʹϵͳÏû³ýÎÈ̬Îó²î£¬Ìá¸ßÎÞ²î¶È¡£ÒòΪÓÐÎó²î£¬»ý·Öµ÷½Ú¾Í½øÐУ¬Ö±ÖÁÎ޲»ý·Öµ÷½ÚÍ£Ö¹£¬»ý·Öµ÷½ÚÊä³öÒ»³£Öµ¡£»ý·Ö×÷ÓõÄÇ¿ÈõÈ¡¾öÓë»ý·Öʱ¼ä³£ÊýTi£¬TiԽС£¬»ý·Ö×÷ÓþÍԽǿ¡£·´Ö®Ti´óÔò»ý·Ö

42

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)