欢迎来到天天文库
浏览记录
ID:36247482
大小:47.00 KB
页数:8页
时间:2019-05-07
《双动力船模模块》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、双动力船模模块一.遥控电路部分1.遥控电路规划图:MCURF收发模块A/D转向控制模块液晶显示模块键盘控制模块2.各模块说明Rf收发模块:Rf收发芯片采用全双工的nrf905,用于遥控电路和控制电路的通讯,将遥控器设定的set_speed和set_angle发送给控制电路执行,同时接受控制电路测得的real_speed。因而有一个接收驱动函数rfr()和一个发送驱动函数rft()。A/d转向控制模块:A/d转向控制模块由接有滑动变阻器的a/d转换器组成。改变滑动变阻器的阻值,电压在0-5v变化,输出的数字量在0-255变化,再减去128后就是我们要的hand_angle(在-128-
2、127变化)了键盘控制模块:a.遥控器键盘的组织:SendOn/offupleftrightdownb.键的功能:On/off:使驱使电路初始化。初始化后船的速度变为零。Send:信号的发送。当send键按下时将调动rf收发模块的rft(),将设定好的set_speed和set_angle发送给驱使电路。键值键的功能备注UpSet_speed0++;set_speed1++DownSet_speed0--;set_speed1--LeftAuto_angle++当按下send键后将自动清零。用于对转向的智能控制。其优先级高于手动方式。RightAuto_angle--Up+leftS
3、et_speed0++由于螺旋桨的原因,在两个电机在转速相等时船体不一定就能直线航行,因而可以通过微调两边的转速而达到直线航行的目的。Down+leftSet_speed0--Up+rightset_speed1++Down+rightset_speed1--注:实现自动方式优先级高于手动方式定时中断入口读取自动角度auto_angle和a/d的手动角度hand_angleAuto_speed==0Set_speed=hang_speedSet_speed=auto_speed定时中断出口液晶显示模块:用于显示set-angle,real-speed和set-speed,写在主函数中
4、。3.逻辑纽带关系a.数据buffer的设定:Structuredata_buffer{Ucharset_speed0;//设定的左驱动电机的速度Ucharset_speed1;//设定的右驱动电机的速度Charset_angle;//设定的转过的角度Ucharreal_speed0;//实际测的左驱动电机的速度Ucharreal_speed1;//实际测的右驱动电机的速度};注:real_speed0和real_speed1是通过rfr()接收的,set_speed0,set_speed1和set_angle是通过遥控自己设定的b.数据关系结构图:Set-speedset-angl
5、e(两个)定时扫描键盘读取set_speed值对其值进行修改定时读取hand_angle和auto_angle,对set-angle修改当send键按下时发送并将atuo_angle清零real-speed(两个)主函数中读set_speed和set_angle显示二.控制电路部分1.控制电路规划图MCURF收发模块转速检测模块(两个)驱动电机模块(两个)2.各模块说明:Rf收发模块:同上驱动电机模块:a.闭环系统速度的调节:由于水的阻力很大,在船航行中有加速慢降速快的特点,因而我们采用bang_bang算法来控制船的转速。对real-speed和set-speed进行比较来实现pw
6、m占空比的调节。bang_bang算法调速方案:定时中断入口获得当前数度real_speed和设定的数度set_speedSet_speeed>real_speed定时中断出口驱动电机占空比为0%驱动电机占空比为100%b.开环系统转弯角度的控制:由于转弯的角度和两个驱动电机的转速,转弯的时间有关。因而我们在设定两个驱动电机的转速后,通过时间的长短来控制转弯的角度。转速检测模块:由单片机的外部中断,定时计数功能和光电探口组成。定时得到驱动电机的实际转速real-speed。real-speed将作为驱动电机控制的一参数试用,同时定时发送回遥控电路作为实时监测。速度检测方案:外部中断i
7、ntx打开有下跳沿Countx++T0定时时间到Real_speedx=countxCountx=0;3.逻辑纽带关系a.数据buffer的设定:Structuredata_buffer{Ucharreal_speed0;//实际测的左驱动电机的速度Ucharreal_speed1;//实际测的右驱动电机的速度Ucharset_speed0;//设定的左驱动电机的速度Ucharset_speed1;//设定的右驱动电机的速度Charset_angle;//
此文档下载收益归作者所有