




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三届“飞”大学智能汽车邀请技术第三届“飞”大学智能汽车邀请技术学I &)*+,- &)*+,-GHKH 2.1,!-2.2GHKH 2.1,!-2.23.1 3.2 3.3 ZHR_HR5.15.25.35.45.55.6+6.16.26.36.6Hf6.16.26.36.6HfYhjlHnoT3qu11.1i11.2AD*6+),-_aby67/0MdHCS12u:;?#Pd7aKb-1Hc -*6+),-_aby67/0MdHCS12u:;?#Pd7aKb-1Hc - 1 2、 机械结构设3流2、 机械结构设3流程设- 2 PDF 文件使用 ctory三智能车发展历1、最初形三智能车发展
2、历1、最初形态(如图 - 3 vwZxyPz?FqKMbc?PdTO:exLF=Pf:$g(h-Hz0PvwZxyPz?FqKMbc?PdTO:exLF=Pf:$g(h-Hz0PA,M-.K/09Ma1Z #N/?Rj5#I#/0;ZN;*FMI0r6A-PIJ/45MNvoa Hz - 4 (1)。(3)(1)。(3)1/2(5)(6)四机械设计部- 5 合舵机竖放左右左后轮测右后轮1、 路径检测红外传感器的安-合舵机竖放左右左后轮测右后轮1、 路径检测红外传感器的安- 6 PDF 文件使用 ctory 试用版本创建 电主2、 起跑线检测红外传2、 起跑线检测红外传感器的安71.71.50%
3、3、舵机的安- 7 4定- 4定- 8 15、电池的安6、主板15、电池的安6、主板的固- 9 7、 测速电机的7、 测速电机的安33887- 10*R1HNOjR2940*R1HNOjR2940p# 2940 yvI8#vDcdeNOyMmn7B?oN#O,tuQHYN, pM5zIMZ9n,AD4HEGHIMUbZ5z-z,!deK7XU|AKYMADO4ez-=c;*5bcMEFIhJ,c; Wz-z*Kdr*sMmn=Yo,e*KH*s 5H- 16AD线以及白板所获得的 AD1234567可以看到,第六个红外传感器采回的是黑线的 AD 值,而其它的传感器采回的是白70.在确定舵机的偏
4、转角的时候可以对对管设定权值来设定偏转角,假设舵机的控制函数为 Direction(char angel),其中传递的形参的范围为 AD线以及白板所获得的 AD1234567可以看到,第六个红外传感器采回的是黑线的 AD 值,而其它的传感器采回的是白70.在确定舵机的偏转角的时候可以对对管设定权值来设定偏转角,假设舵机的控制函数为 Direction(char angel),其中传递的形参的范围为 110190,七个红外采回的 AD 值分别放在left2,left1,mid,right1,right2,right3angel=150+(right3-left3)/4+(right2-left2
5、)/6+ ( right1 - left ) / 86电调节方。七调试过程及数据分的参数整定过(1I,DP(2PPI- 17PDF 文件使用 ctory 试用版本创建 (3(4KSW=YdA,p1mnNopT fPj2H*3H u(3(4KSW=YdA,p1mnNopT fPj2H*3H u4H xRG|i5H4?e(014140W2e%PdMNO,F-=W_xyMz91nuU-hJb 81,m-,(;e7l),t1u-t2u9:#.HCS12#f89/. .t7uHCS1289/- 19%PdMNO,F-=W_xyMz91nuU-hJb 81,m-,(;e7l),t1u-t2u9:#.HCS
6、12#f89/. .t7uHCS1289/- 191H#include /* common defines and macros #include /* derivative LINK_INFO unchar unsigned DIR_MID -ON_LINE /*AD d;1H#include /* common defines and macros #include /* derivative LINK_INFO unchar unsigned DIR_MID -ON_LINE /*AD d;midl midr - 20;/; typedef d ATD struct mid ; type
7、def struct controler Controler void Delay100us( unchar time ) /+nvoid Delay100ms( unchar time ) /+n/*LCDy Init_LCD( void ) _unchar( unchar number, unchar x, unchar y ) ;/; typedef d ATD struct mid ; typedef struct controler Controler void Delay100us( unchar time ) /+nvoid Delay100ms( unchar time ) /
8、+n/*LCDy Init_LCD( void ) _unchar( unchar number, unchar x, unchar y ) /elm iZUbunchar_char( char number, unchar x, unchar y ( number, unchar x, unchar y ) /elm - 21iZUbvoid _(number, unchar x, unchar y ) ( void ) Moto( speed ) Direction( unchar dir ;/*ADvoid Init_ATD( void ) /ADvoid D( d* atdget )
9、/NwADInit_IO( void ) /q I/O _My Control_dir( ATD atdget, unchar* dir ) ; IJ ATD Init_Control( void ) (con_speed ) void iZUbvoid _(number, unchar x, unchar y ) ( void ) Moto( speed ) Direction( unchar dir ;/*ADvoid Init_ATD( void ) /ADvoid D( d* atdget ) /NwADInit_IO( void ) /q I/O _My Control_dir( A
10、TD atdget, unchar* dir ) ; IJ ATD Init_Control( void ) (con_speed ) void speed( char void Sci0Open( void ) void Sci0Write( unsigned char chSend ) unsigned char Sci0Read( ) /*EEPROM;- 22(volatile)EER_PROTECTED_WRONG (-EER_PARAMETER_WRONG (-S(-S Init_ATD( void ) Init_ATD( void PORTB_BIT5 = 0 ATD0CTL2
11、|= Delay100us( 5 (volatile)EER_PROTECTED_WRONG (-EER_PARAMETER_WRONG (-S(-S Init_ATD( void ) Init_ATD( void PORTB_BIT5 = 0 ATD0CTL2 |= Delay100us( 5 ;=;=;=;D( ATD* atdget - 23while( ( );atdget-=ATD0DR0H atdget-=atdget-=atdget-midr atdget-midl atdget-=atdget-=atdget-=ATD0CTL2 &= 0 x7F #define LCD_POR
12、T /LCDWky#define LCD_CON while( ( );atdget-=ATD0DR0H atdget-=atdget-=atdget-midr atdget-midl atdget-=atdget-=atdget-=ATD0CTL2 &= 0 x7F #define LCD_PORT /LCDWky#define LCD_CON /LCDt_mode Clear Off0 x08 Poist On - 24Init_LCD( void ) Is_busy( void mand( cmd ) Write_data( unchar data_w ) Display_one_cha
13、r( unchar unchar x, unchar )void _unchar( unchar number, unchar x, y) miZUbuncharvoid _char( char number, unchar x, unchar );void ( number, unchar x, y);/elm iZUbvoid _(number, unchar x, unchar y ;Init_LCD( void DDRB |= ;DDRA |= ;LCD_PORT = ;LCD_CON = ;)Init_LCD( void ) Is_busy( void mand( cmd ) Wri
14、te_data( unchar data_w ) Display_one_char( unchar unchar x, unchar )void _unchar( unchar number, unchar x, y) miZUbuncharvoid _char( char number, unchar x, unchar );void ( number, unchar x, y);/elm iZUbvoid _(number, unchar x, unchar y ;Init_LCD( void DDRB |= ;DDRA |= ;LCD_PORT = ;LCD_CON = ;);Delay
15、100us( 5 ) );Off ;) On ) -25void Is_busy( void DDRA 0 x00 &= |= /PORTA;/PORTBRS,R/W,E 口设定为 0, while LCD_PORT );&= ;DDRA 0 xFF /PORTAvoid Is_busy( void DDRA 0 x00 &= |= /PORTA;/PORTBRS,R/W,E 口设定为 0, while LCD_PORT );&= ;DDRA 0 xFF /PORTA/PORTALCD_PORT ;令mand( )Delay100us( 5 ) Is_busy() LCD_PORT= LCD_
16、CON LCD_CON ;cmd ;/PORTBRS,R/W, E0, Delay100us( 5 ;0.5/将ELCD_CON LCD_PORT - 26Write_data( )Delay100us( 5 ;Is_busy( LCD_PORT= LCD_CON ;0 xEa ;LCD_CON = 0 x11 Delay100us( 5 LCD_CON&=Write_data( )Delay100us( 5 ;Is_busy( LCD_PORT= LCD_CON ;0 xEa ;LCD_CON = 0 x11 Delay100us( 5 LCD_CON&=0 xEF LCD_PORT = /
17、PORTBRS,R/W,E1,00.5/将E;void Display_one_char( if( x 16 | x 2 | y 0 y = 1 if( 2 = y ) x+=0 x40;x = x + mand( ; /向液晶输出数据Write_data( data_w - 27_unchar( number, unchar x, y)unchar i unchar num 3 x = ( x - 1 ) * ;num = / -= num 0 * 100 1= number / 2= number - num 1 * i=0; i 3; i + Display_one_char( num
18、i + 48, x, y x + Display_one_char( , x, y ) _unchar( number, unchar x, y)unchar i unchar num 3 x = ( x - 1 ) * ;num = / -= num 0 * 100 1= number / 2= number - num 1 * i=0; i 3; i + Display_one_char( num i + 48, x, y x + Display_one_char( , x, y ) _char( number, unchar x, unchar y unchar i unchar num
19、 x = ( x - 1 * 4 if( number 0 number = -( number ) Display_one_char( -, x, y ) - 28x + Display_one_char( , x, y ) x + num = number / -= num 0 * 100 1= number / 2= number - num 1 i=0; i 3; i + Display_one_char( i + x, x + ( number, y)i num x + Display_one_char( , x, y ) x + num = number / -= num 0 *
20、100 1= number / 2= number - num 1 i=0; i 3; i + Display_one_char( i + x, x + ( number, y)i num num = / 10000 -= 10000 num 0 num = / 1000 -= num 1 * 1000 num = number / 100 -= num 2 * 100 num = number / 10 - 29num 4 = number - num 3 * 10 x = ( x - 1 ) * 6 for( i = 0; i 5; i + Display_one_char( num i
21、+ 48, x, y ;x + Display_one_char( , x, y ) _(number, unchar x, y)unchar i unchar num 5 x = ( x - 1 ) * 9 if( number 0 number = -( number ) Display_one_char( -, x, y ) x + num = / 10000 -= 10000 num 0 num 4 = number - num 3 * 10 x = ( x - 1 ) * 6 for( i = 0; i 5; i + Display_one_char( num i + 48, x,
22、y ;x + Display_one_char( , x, y ) _(number, unchar x, y)unchar i unchar num 5 x = ( x - 1 ) * 9 if( number 0 number = -( number ) Display_one_char( -, x, y ) x + num = / 10000 -= 10000 num 0 num = / 1000 -= num 1 * 1000 num = number / 100 -= num 2 * 100 num = number / 10 num = number - num 3 * 10 -
23、30for( i = 0; i 5; i + Display_one_char( num i + 48, x, y ;x + Display_one_char( x, y ) ( ) Moto( ) Direction( );void E 0 x00 =0 x20 M2D3= ;/T)v-Wfor( i = 0; i = )/ if( speed SPD_FMAX )/ speed = SPD_FMAX =0 =speed / if( speed =u130170tDIR_RMAXPDIR_LMAXP/uuFMdiruDirection( unchar dir ic pre_dir = DIR
24、_MID if( dir pre_dir DTY23 = DIR_RMAX + ;Delay100us( 5 ) else if( dir =u130170tDIR_RMAXPDIR_LMAXP/uuFMdiruDirection( unchar dir ic pre_dir = DIR_MID if( dir pre_dir DTY23 = DIR_RMAX + ;Delay100us( 5 ) else if( dir DIR_RMAX dir = if( dir DIR_LMAX dir = DIR_LMAX DTY23 = dir ;#define i - 33Ui =0 E 3 =
25、0, 0, 0 (con_speed i = con_speed - now_speed =(Ei-Ei-1)2)+Ei-Ei-1+(Ui =0 E 3 = 0, 0, 0 (con_speed i = con_speed - now_speed =(Ei-Ei-1) 3 ) + ( E i 6 ) +(Ei-(Ei-11)+E- 2 ) / = + dU i - E -1;i - E ;Moto( ( )Ui ) 6H.char conspeed void Init_Control( )TIOS = ;/PTPT_myPT_My - 34= 0 / PT = ;/T)v-WnOu7P)vnF
26、u4TIE 0 x07 /PT1 PT2 PT3y = ;PT_My T1= ;TCNT = ;=/PT0oW2500t2500 4V10000V 0.01=;/PT1oW 125004PH0.05=;= 0 / PT = ;/T)v-WnOu7P)vnFu4TIE 0 x07 /PT1 PT2 PT3y = ;PT_My T1= ;TCNT = ;=/PT0oW2500t2500 4V10000V 0.01=;/PT1oW 125004PH0.05=;/ PT2oW625004PH0.25cli CODE_SEG NEAR_SEG errupt _Control( )sic speedtim
27、es = ;sspeed_sum 0;temp_speed 32 = 0 - -if( 0 ( PORTK_BIT2 ) speed = else 1 = ( PORTK_BIT2 ) speed = - 1 0 x01 TC0 +=2500 if( 0 = ( % 5 ) flag CODE_SEG CODE_SEG NEAR_SEG errupt 9 Dir_Control( void if( 0 ( PORTK_BIT2 ) speed = else 1 = ( PORTK_BIT2 ) speed = - 1 0 x01 TC0 +=2500 if( 0 = ( % 5 ) flag
28、CODE_SEG CODE_SEG NEAR_SEG errupt 9 Dir_Control( void ATD atdget unchar dir asm sei Init_ATD( ) D( &atdget ) Control_dir( atdget, &dir - 36Direction( dir ) TC1 += 12500 T1 |= 0 x02 conspeed = 10 flag = 1 asm cli CODE_SEG CODE_SEG NEAR_SEG errupt 10 )1 |= 0 x04 TC2 += 62500 CODE_SEG 7H,-Controler ctr
29、l dir_cal = 0 void Control_dir( ATD )sic unchar l_or_r = 0 unchar =0;Direction( dir ) TC1 += 12500 T1 |= 0 x02 conspeed = 10 flag = 1 asm cli CODE_SEG CODE_SEG NEAR_SEG errupt 10 )1 |= 0 x04 TC2 += 62500 CODE_SEG 7H,-Controler ctrl dir_cal = 0 void Control_dir( ATD )sic unchar l_or_r = 0 unchar =0;=
30、0;=0;=0;- 37char differ_mid = 0 char adder = 0 if(atdget.left2ON_LINE|atdget.left1ON_LINE| atdget.midl ON_LINE )is_on_linechar differ_mid = 0 char adder = 0 if(atdget.left2ON_LINE|atdget.left1ON_LINE| atdget.midl ON_LINE )is_on_line=1; l_or_r = 1 ;else if( atdget.right2 ON_LINE | atdget.midr ON_LINE
31、 )ON_LINE l_or_r = =;1 if( is_on_line differ_mid =-;atdget.midl - atdget.midr if( differ_side3 = 3 = -differ_side3 - 38= 3 if( = 3 = -;= 3 if( = 3 if( = 3 = -;= 3 if( = 3 = -;= 3 if( differ_mid 0 =-differ_mid = 3 = -differ_mid = 3 - 39;differ_mid *= ctrl.mid if( 4 PORTE 1);1);2);differ_mid, 2, );add
32、er=differ_side3+differ_side2+differ_side1+differ_midif( adder 0 ;differ_mid *= ctrl.mid if( 4 PORTE 1);1);2);differ_mid, 2, );adder=differ_side3+differ_side2+differ_side1+differ_midif( adder 0 dir_cal -= adder dir_cal += adder *dir = DIR_MID + ;!l_or_r *dir +=5 l_or_r - 40*dir = DIR_LMAX *dir = DIR_
33、RMAX if( 3 = PORTE is_on_line, 2);1);8H#define Num ;differ_mid Num unchar temp extern Controler ;/ unchar count *dir = DIR_LMAX *dir = DIR_RMAX if( 3 = PORTE is_on_line, 2);1);8H#define Num ;differ_mid Num unchar temp extern Controler ;/ unchar count Init_LCD( ) ( ) Init_IO( ) Init_Control( ) PORTB=
34、 0 x00 - -_unchar( 255, 1);ctrl.mid 1;=2 =3 for( ; ; atdget unchar dir ;differ_mid Init_ATD( ) D( &atdget ;Control_dir( atdget, );Direction( ) =-;=-;=-;differ_mid atdget.midr - atdget.midl temp = & 0 x0F switch( _unchar( 255, 1);ctrl.mid 1;=2 =3 for( ; ; atdget unchar dir ;differ_mid Init_ATD( ) D( &atdget ;Control_dir( atdget, );Direction( ) =-;=-;=-;differ_mid atdget.midr - atdget.midl temp = & 0 x0F switch( )case 0 _unchar( 1 ) _unchar( atdget.left2, 2, 1 ) - 42_unchar( atdget.left1, 1, 2 ) atdget.midl, 2, );break case 1 atdget.right3, 1);atd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育信息化2.0时代教师信息技术应用能力评价体系构建与实施研究报告
- 医药流通企业供应链优化与成本控制绩效评价体系优化与完善实践案例分析报告
- 艺术市场数字化交易平台艺术品市场艺术品物流与仓储研究报告
- 快时尚品牌供应链金融与区块链技术应用案例分析
- 葡萄酒产区特色品牌国际化品牌国际化品牌合作模式研究报告
- 2026年高考政治总复习清单-第三单元 经济全球化
- 2025年航天器热控系统项目发展计划
- 《商业银行经营管理》课件 -
- 上半年酒店工作总结集锦15篇
- 吸氧相关知识考核试题及答案
- 2025年巷道掘砌工(高级)职业技能鉴定参考试题(附答案)
- 主仆契约协议书范本
- 高校辅导员考试全面解析试题及答案
- 概要写作(满分范文)专练-上海新高考英语一轮总复习(解析版)
- 选修一人教版单词表
- (完整版)高中历史世界史大事年表
- DeepSeek介绍及其典型使用案例
- 《民用建筑设计》课件
- 新生儿呼吸窘迫综合征护理查房课件
- 重氮化工艺操作证考试题库(含答案)
- 区块链原理与实践全套完整教学课件
评论
0/150
提交评论