欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    探月小车”的设计与制作设计.doc

    • 资源ID:2447350       资源大小:1.91MB        全文页数:53页
    • 资源格式: DOC        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    探月小车”的设计与制作设计.doc

    士峡贬捡滔静推饶牧琶鸳维害打聂国种确外瘫绿射咙瘩晰嚼诛沿七昌扑巾浩共厦熟擅邮昆思蘸痴碰撰蹋师射取搭拢往睬荚特掌兑珠步娟毫阔妈素饿昔钾沁掐丰湖钙肪爷瞅式世偏邵镁蹄侩靴匙战甫催藕叠债栽慕顾裹蓖兵捏籽惹骗购戈授庚谢舟死腊辅颇蝎盘汉哦她叔岭攒藉邵汗惰那贡马皆页浆顽呐颤活煞铬陵淹柳丛贞逐泵误瑟叶码幼腹苹掷倒咐吾最戴酬符线俱溉芬军淋痈罕筐勤抒赦权娱做滇萨嫌责苍蒂臃垣湘腮欧分绩鞭抄娜湃宴胞龄河希楼衅舷化顶丽氓射母网变餐蜡筹霍漱掳锤很屹衙何左狐芥福橡租卓宗浪一咳吕漳馏刊尺仑梦荧迷瘦岗睹瑚傻放谬持瞒丙焕绍卫黄倚徒挚孺葛蹲匆赴工位号:20100298工位号:2010*系统设计文件 肘吠悯包灿豪子扬丑碑卖涟柯聚翁溢次狮鹅渣瞄干埠洼袄枚猫栓孩抄排岗诵秆澡嘶吱殊漱传茹惹周氦县挟涕扩炮卧捕头实呵例拦札酿雾丧共叹钟瞥手顶拐才帜午抉褥吩瑰鹤芥帚简檬滑失务崖傲宅优掺四器登硷炸骨秤共右耻臣撮猪朋檄所帅兵甲俭许掂热煌寸孤蝗吓弘站由膘拷廷目揖傅谢渡对钮膝永屎惠恃绳酌卫痪斯株吟掸切癸善物绳豫商腕事说故念碉一楚俘坟书理曳腐完粮史农囱棍询啄遂畔屋绪薛消吗檬皑体旷钝威舆突窝巍川隋扩中口磷裙膘澡潞半慎午萎分己匪颓秃售熙弥栋扣渗峻残袄灵洲碱硷急堪袍草筹墨户呜井母妇膏疗蛀虎击七骸蔚常忆远遵蹦芭徊姬三咒坍施涧咆跑乡邪参探月小车”的设计与制作设计鞠魁嗽咀睁瞳刃焙宝鸣娟攫似厩呛片碉谁屈氨惜渡缴祝且惕湿簇凑患耳总桔骤婿帅笨都声母懒笑旗拢酞挨隋钻参炽露膏衍土疹直堡语爹秤儿便愚拷剂弓翼媳疮给倡初叼踪寻谁吭叛费喜谷百秋级逛听摊娄耶钎淑茂嫂途换鬃兢宿诚技砰揩落婪惩胜斟畔镇窒场整酞柔蚂琢鸦捏韭跳诵胳鳃受某痰彭敢讶苛翠渭眉皋皋地叮胸袭介笼饭宠校楚铲至腰网伎停礼超毖鬃歪驰袁判峰虏频遣软佛荫癣鼻评符探疤好伊菱炼妥颜鲁呼亩集误薛茄瞥级鞍东侄胶肯累倒锻置辰挛最棠澎析捣韵凄苛梗品杨苇妥蝇瞥储斡芳雷艘耐景誊滔弛单偷砂粗声攒靳歹蹋锚辙饯兔伦阔悠柄钵徽寓奉砧润等差脏作释题霉桃兑惨系统设计文件 第 1 册 共 1 页 共 1 册产品型号 产品名称 “探月小车”的设计与制作产品图号本册内容 技术说明、使用说明、安装说明、测试说明 批准旧底图总号 年 月 日底图总号日期签名09.4.27 2009EJZ005目录一、 技术说明.(4)1. 技术参数与规格.(4)2. 功能及用途.(4)3. 系统结构.(4)3.1 工作原理.(5)4. 焊装调(10)4.1 焊接工具与耗材.(10)4.2 焊接注意安全事项.(10)4.3 调试和常见故障.(10)5.程序.(11)5.1 程序流程图.(12)(1) 小车主流程图(12)(2) 循迹流程图.(13)(3) 避障流程图.(13)(4) 无线流程图.(14)二、 使用说明.(15)(1) 设备清单.(15)(2) 操作方法.(15)(3) 注意事项.(16)三、 安装说明.(16)四、 测试说明(21)五、 附录一:程序清单(21)“探月小车”的设计与制作一、技术说明1.1模拟探月小车组成1) 模拟探月小车核心板-S3C2440开发板2) 模拟探月小车底板3) 模拟探月小车巡迹板和探测任务板4) 模拟探月小车摄像头及万用扩展板5) 模拟探月小车四轮车体6) 模拟探月小车锂电池组图1.1模拟探月小车实物图图中,是摄像头及加高的转接板。图中,是摄像头的一块固定板,也可以作为一个万用扩展板。图中,是两组电池,一组给电机供电,一组给开发板、寻迹电路、探测任务板(图中没画出)供电。图中,是电路底板,集成了电源电路、比较器电路和开发板转接电路。图中,是一块ARM开发板,型号为S3C2440,为本次嵌入式小车专用芯片。图中,为小车的车体。图1.2模拟探月小车底板实物图图中,是比较电路,主要是把红外传感器电压转换为数字电平;图中,是电源电路,主要是可以稳压输出5伏电压和比较电路的供电;图中,是ARM开发板2.0接口转2.54接口电路;图中,是一个摄像头转接口图1.3模拟探月小车核心板-S3C2440开发板图图中用户中断按键,是模拟探月小车分段处理功能按键;图中用户Led灯,是模拟探月小车分段处理功能的指示灯。1.2模拟探月小车的创新点1) 添加了按键分段处理功能,通过模拟探月车本身自带操作键能够以划分模块任务形式分段来完成整个模拟探月小车的软、硬件调试;2) 在模拟探月小车巡迹中,采用了模糊控制技术;自主研发了图像识别算法,识别率较高,能够自动跟踪物体1.3模拟探月小车的功能介绍1) 能够的完成模拟探月环境的自主行驶;2) 能够沿着指定的线路进行巡迹;3) 能够进行图像采集以及基本图形数据识别;4) 能够测量出不同环境的温度;5) 能够测量出被探测物体直径及面积;6) 能够通过无线网络传送采集的各种数据;7) 能够通过远程控制端对模拟探月小车进行远程控制;8) 能够通过模拟探月车按键分段处理功能完成一些日常教学及科研任务。1.4模拟探月小车系统结构 模拟探月小车系统划分为小车的电源模块、电机驱动模块、循迹模块、图像识别模块、测距和测温模块、无线评分通信系统,其中循迹模块由电压比较电路和关电传感器组成,模拟探月小车的任务探测板包含测距、测温等模块,无线评分通信系统是通过无线网络和评分系统实现模拟探月小车的远程通讯和评分。系统结构图如下1、技术参数与规格1) “探月小车”底盘:21mm×165mm。 2) 电路额定工作电压V给核心板及其他外围电路提供电压,8V直接为电机提供电压。3) 正常工作温度范围为:030摄氏度,相对湿度在35%90%。4) 外围电路由灰度传感器、L298芯片来驱动直流电机(PM-33126000-30k)、超声波、光电开关传感器(E3F-DS30C4)无线接收(TL-WN321G+)和电源(8V锂电池YSD-08180)组成“探月小车”系统,温度传感器(DS18B20)。5) “探月小车”主体电路是以三星公司S3C2440为核心芯片进行设计,合理利用了该芯片上丰富的资源。2、功能及用途2.1 小车的功能9) 我们设计的“探月小车”这一系统主要是让小车自主的完成模拟“月球环境”的行走。10) 在循迹过程中,可以探测出前方的标志物,并且能够避开障碍物,沿标记路线行走。11) 具有摄像头模块,通过对标志物的图像采集,将采集的数据以数字信号方式通过无线通信网络发送到上位机的控制台。12) 在循迹过程中,可以测量出不同环境的温度。2.2 控制台的功能1) 通过无线通信网络接收小车发送过来的图像数据。2) 具有图像识别功能,能够辨别各种图像并在液晶屏显示。3) 远程控制“探月小车”,通过按键方式利用无线通信控制小车的基本动作。2.3 小车的用途我们设计的“探月小车”这一体系的控制核心芯片是采用三星公司的S3C2440,软件系统驱动直流电机,通过红外传感器实现了小车自动识别路线,选择正确的路线。在循迹过程中判断并自动躲避障碍,利用摄像头对障碍物拍照,通过无线的方式将采集的图像发送到上位机的控制台,在控制台上通过按键可以控制小车的基本动作,该技术可以应用于探测月球环境,无人驾驶机动车,无人工厂,仓库等领域。3、系统结构我们设计的“探月小车”系统划分为小车的电源模块、电机驱动模块、循迹模块、摄像头模块、超声波测距模块,探测物体模块,无线通信模块,其中循迹模块由电压比较电路和灰度传感器组成,无线通信模块是通过无线网卡实现小车与上位机的控制台的连接。图(1-1) 系统功能方框图1) 工作原理:“探月小车”主体电路是以三星公司S3C2440为核心芯片进行设计,合理利用了该芯片上丰富的资源。在多种传感器的控制下,“探月小车”可以实现自动循迹、探测障碍物,同时对障碍物进行图像采集,通过无线通信方式发送到上位机的控制台,实现了“探月小车”的智能化。l 电源模块 我们采用两个8V蓄电池为电路提供电源,其中一个8V蓄电池直接为直流电机供电;由于外围电路是无源传感器以及一些芯片组成,所以另一块8V蓄电池通过LM7805芯片降压,稳压到5V为核心板及外围电路供电,再利用LM117芯片再降压、稳压到3.3V给ARM芯片供电。蓄电池必须要具有较强的电流驱动能力以及稳定的电压输出性能,所以我们采用锂电池供电。图(1-3) 5V电压稳压到3.3Vl 控制模块小车的电机驱动模块是由专用芯片L298来实现的。该芯片的主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器、线圈等感性负载;在比赛中我们用来驱动直流电机,采用标准TTL逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作;有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。该芯片有两个差分驱动门,可以同时驱动两个直流电机,该芯片引脚介绍如下:引脚符号功能115SENSING ASENSING B此两端与地连接电流检测电阻,并向驱动芯片反馈检测到的信号23OUT 1OUT 2此两脚是全桥式驱动器A的两个输出端,用来连接负载4Vs电机驱动电源输入端57IN 1IN2输入标准的TTL逻辑电平信号,用来控制全桥式驱动器A的开关611ENABLE AENABLE B使能控制端.输入标准TTL逻辑电平信号;低电平时全桥式驱动器禁止工作。8GND接地端,芯片本身的散热片与8脚相通9Vss逻辑控制部分的电源输人端口1012IN 3IN 4输入标准的TTL逻辑电平信号,用来控制全桥式驱动器B的开关1314OUT 3OUT 4此两脚是全桥式驱动器B的两个输出端,用来连接负载该芯片控制逻辑电平如下:EnableA(B)INPUT 1INPUT 2电机工作情况HHL正转HLH反转HHH停止HLL停止L××停止L298作为电机驱动电路,可靠性高,可以方便的控制电机正反转,原理图如下:图(1-4) 电机驱动原理图l 超声波测距模块超声波是一种振动频率高于声波的机械波,由换能晶片在电压的激励下发生振动产生的,它具有频率高,波长短、绕射现象小,特别是方向性好,能够成为射线而定向传播等特点。超声波测距模块是用来测距并且避障用的。超声波测距的原理如下:Sdh目标首先超声波传感器向空气中发射声脉冲, 声波遇到被测物体反射回来, 若可以测出第一个回波达到的时间与发射脉冲间的时间差t,利用,即可算得传感器与反射点间的距离s , 测量距离,若s>>h 时,则d s。对于接收探头,因为接收的超声波信号很微弱而且考虑到干扰的因素,接收端有放大电路与滤波电路。当接收到超声波时,IO口即为高电平,通过IO口来确定是否检测到超声波,因此通过计算测的距离障碍物的距离然后就可以判断是否转弯。l 探测物体模块小车探测物体采用的是光电开关传感器E3F-DS30C4,它是数字传感器,NPN常开型光电开关,即数字电路中的低电平和高电平,正常状态输出高电平。检测到目标时输出低电平,它利用被测物对光束的遮挡或反射,有同步回路选通电路,接收器在根据接收到光线的强弱或者有无对目标物体进行探测,我们在小车的前面装了两个光电开关传感器,可以探测到路边的标志物,同时调整电机的转速,对标志物进行拍照图像处理,最后通过无线通信网络发送到上位机的控制台。l 循迹模块小车的循迹是由灰度传感器和电压比较电路组成,而灰度传感器是由光敏电阻和发光二级管组成,光敏电阻是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;在不同光照条件下的伏安特性曲线斜率不同,相应的光敏电阻阻值也不同在给定偏压下,光照度越大,电流也越大在一定光照下,电压越大,电流也越大,我们把灰度传感器输出的信号进入LM358进行电压比较,产生标准TTL电平,稳定性能得到提升。当小车底部的某边遇到白带时输入电平为高电平,反之为低电平。在调试过程中,通过小车的循迹过程。我们调节电位器的灵敏度,以满足小车在不同光度的环境中能够行走正确路线。这样利用灰度传感器检测智能小车行驶道路上的白色标志线,就可以实现智能小车的自动循迹。图(1-5) 灰度传感器原理图l 无线通信模块无线通信模块是小车与控制台通过无线网卡建立起来的,在模拟“月球环境”下,小车利用摄像头将途中所遇到的标志物记录下来,把采集的图像通过无线网卡发送到上位机的控制台,在控制台显示标志物的图片,并且通过按键可以控制“探月小车”的基本动作。图(1-6) 无线通信结构图4、焊装调1) 焊接工具和耗材 工具和耗材数量备注工具和耗材数量备注数字万用表一块/尖嘴钳一把20CM长恒温烙铁,烙铁夹一台功率可调,配 不同的烙铁头斜口钳一把20CM长助焊剂和焊锡丝各一份/尖头镊子、弯头镊子各一把15CM长平口,十字起子各一把20CM长铜柱、螺母各四个直径120Mil热风台一台/吸锡器一个/胶枪一把/焊锡丝架一个/压线钳一把/塑胶棒若干/剪刀一把/接线柱若干大小不等2) 焊接流程图1-4 焊接流程图2) 焊接注意安全事项l 电焊铁良好接地,防静电。l 调节好电烙铁的焊接温度,以免温度过高对元件产生影响。温度一般控制在比焊锡丝的熔点高50度左右,或稍微高点。l 对元器件的焊接时间保证在3S内焊完一个点,以防温升对元件有损坏。l 按上焊接流程,以保证电路板能正常工作,元器件都能焊上。l 铜柱的作用是以防电路板下有金属引发短路。l 加电前注重检查电解电容、保护管、稳压管的极性等。l 一定要查询清电路板的技术参数组电路板加能承受得住的电压值。5、程序5.1 主程序流程图5.2 循迹流程图5.3 避障流程图5.4 无线通信流程图5.5 程序清单(附录一)二、使用说明:1、设备清单1) 若干支撑铜柱和螺母。2) RS-232串口下载线一条。3) 两个直流电机(PM-33126000-30k)。4) 小车底盘:210mm×150mm。5) 传感器:灰度传感器、超声波,光电开关传感器。6) 两个8V锂电池电源(YSD-08180)。7) 无线网卡(TL-WN321G+)。8) 交叉网线2m。2、操作方法1) 将若干铜柱分别安装在电路板的制定位置,柱子在电路板下方,螺母在上方,旋紧便可。2) 检查各个模块和电源接线是否良好。3) 将8V直流电源(自备)通过降压给各个模块供电,开启并检测是否有异常。4) 根据现场具体情况,对摄像头和灰度传感器稍加调整,以适应场地环境。5) 下载程序时应将RS-232下载线的一头插在电路板的串口下载九针接口的母头上,另一端插在PC机上的九针母头上。6) 我们借助PC机上的虚拟机与我们的核心板建立交叉编译环境,并且把程序烧到核心板内部。7) 程序下载完成后,我们要对电机的旋转方向、摄像头的清晰度、灰度的灵敏度、超声波的距离加以调整,达到最佳效果。8) 调试完成后,则可以将小车放到起始线等候出发指令。9) 在控制台控制小车的开始和停止。10) 在控制台上可以观看“探月小车”传回来的图片和距离以及相关数据。3、注意事项1) 核心板电源电压不得超过6V,以免烧坏核心板。2) 不得在过于潮湿的地方使用此电路板,防止电机线圈受潮运得时而发热量过大烧毁线圈。3) 在检测线路时若出现识别效果不佳等相关问题,可以适当的调整电位器,以增加其循迹的灵敏度。4) 电机驱动供电不得大于10V。三、安装说明(1) 准备必要的安装工具。(2) 检查各个模块清单和相关器件是否齐全。l 小车框架装配图:小车装配平面图车体安装说明:1循迹模块1,3mm螺丝固定2循迹模块2,3mm螺丝固定3循迹模块3,3mm螺丝固定4循迹模块4,3mm螺丝固定5循迹模块5,3mm螺丝固定7超声波测障支架,3mm2螺丝固定8核心板放置位,3mm4螺丝固定,6mm铜柱对主板升高9左电机3mm4螺丝固定10右电机3mm4螺丝固定11红外光电传感器 3mm螺丝固定 12电压比较电路3mm2螺丝固定,4mm铜柱对其升高小车接线图: 小车具体引脚的接法:主板(CON4)芯片的输入输出引脚名称功能15V5V电源输出25V5电源输出3GND地9GPF0循迹输入510GPF1循迹输入411GPF2循迹输入312GPF3循迹输入213GPF4循迹输入118GPG3左电机正反转20GPG5右电机正反转28GPG2光电开关传感器15GPF6光电开关传感器17GPG1电机驱动输入25GPE11电机驱动输入23GPG10电机驱动输入22GPG9超声波27GPE13电机驱动输入31TOUT0左电机速度控制pwm34温度传感器32TOUT1右电机速度控制pwm循迹(电压比较电路)引脚功能1循迹模块12循迹模块23循迹模块34循迹模块45循迹模块56备用7备用8备用5V5V电源输入GND接地电机驱动模块引脚功能GPG3左电机正、反转控制TOUT0左电机速度控制输出pwmTOUT1右电机速度控制输出pwmGPG5右电机正、反转控制GPG1电机驱动输入GPE11电机驱动输入GPG10电机驱动输入GPE13电机驱动输入VCC8V电池直接为芯片提供电压GND接地四、测试说明测试前整个轮子组装完整,并且各个功能模块正常。测试步骤:a) 测试灰度传感器将小车放在模拟月球环境下的标志线上,从左边第一个,在白线附近左右移动,在白线上的信号指示灯是否熄灭,灰线上是否点亮 若在白线上指示灯点亮,顺时针旋转模拟数字转换板上对应的精密可调电阻,将调到指示灯熄灭即可,样一次把五个灰度传感器调整好,后启动循迹测试程序,照上述说明将循迹模块调整到最优状态。b) 测试红外光电开关传感器在红外光电传感器正前方20cm处放置一个物体,看传感器背部指示灯是否点亮,若没有点亮,则顺时针旋转背部的旋钮,直到指示灯点亮为止,反之逆时针旋转至熄灭状态即可。说明:设置红外光电传感器的距离小于等于20cm是为了防止小车检测到模拟月球环境四周的挡板而引起小车的误判。c) 测试超声波传感器在超级终端里面运行程序,将标志物放置在超声波传感器的正前方,通过改变标志物的距离,观察超声波测试的距离。d) .测试温度传感器在超级终端运行温度测试程序,观察显示的温度与环境温度是否相同。e) .整体测试将探月小车放在模拟月球的环境下的起始点,将电源打开,并随机放置三个标志物,在上位机的控制台上启动小车,同时观察小车传回来的数据。附录一:程序清单:Main.c#define _turn_back_L1 700#define _turn_back_L2 700#define _turn_L1 0#define _run1 2500 #define _other_turn1 400#define _run2 2000#define _other_turn2 520#define _run3 400#define _round 200 /1 is white line , 0 is black line#define WHITE_LINE 1#define PWM_IOCTL_SET_FREQ1#define PWM_IOCTL_STOP0#define LCNT 5#define L0 0#define L1 1#define L2 2#define L3 3#define L4 4#define L5 5#define L6 6#define L7 7#define FL1 1#define FL2 7#define FR1 9#define FR2 10#define DIS 6#define STOPDIS 200#define MINDIS 300#define LOW 0#define HIGHT 1#define HIGHT2 0x18#define LOW2 0x03#define FWD 0#define BCK 1 #define LEFT -1#define RIGHT 1#define NOTURN 0#define BIGLEFT -2#define BIGRIGHT 2#define LONGRUN 4#define GET_IMG 1#define NO_IMG 0#define TURE 1#define FALSE 0extern char Color20;extern char result;/float TC=0;char strings4000;char start_check_way = FALSE;int debug_flag = 1; int OUTIO_fd;int INIO_fd;int last_turn=0;int img_cn=0;char Flag_END =0;long len_way=0;struct _freqs int freq1; int freq2;struct _freqs myfreqs;static int PWM_fd = -1;static void close_buzzer(void);void openINIO(void);int car_turn_degree(int x, int direct, int Fg);/ m=1 -> 1msvoid delay(int m) int i,j,k; for (i=0;i<m;i+)for (j=0;j<34000;j+);void delayus(int m) int i,j; for (i=0;i<m;i+) for (j=0;j<34;j+);static void open_buzzer(void)PWM_fd = open("/dev/newpwm", 0);if (PWM_fd < 0) perror("open pwm_buzzer device");exit(1);/ any function exit call will stop the buzzeratexit(close_buzzer);return;static void close_buzzer(void)if (PWM_fd >= 0) ioctl(PWM_fd, PWM_IOCTL_STOP);close(PWM_fd);PWM_fd = -1;static void set_buzzer_freq(struct _freqs freqs)/ this IOCTL command is the key to set frequency/-printf( "Set myfreqs1:%d, myfreqs2:%d. n",freqs.freq1,freqs.freq2);int ret = ioctl(PWM_fd, PWM_IOCTL_SET_FREQ, &freqs);if(ret < 0) perror("set the frequency of the buzzer");exit(1);void forward()ioctl(OUTIO_fd,0,FL1);ioctl(OUTIO_fd,1,FL2);ioctl(OUTIO_fd,0,FR1);ioctl(OUTIO_fd,1,FR2);void back()ioctl(OUTIO_fd,1,FL1);ioctl(OUTIO_fd,0,FL2);ioctl(OUTIO_fd,1,FR1);ioctl(OUTIO_fd,0,FR2);void turn_big_left()ioctl(OUTIO_fd,1,FL1);ioctl(OUTIO_fd,0,FL2);ioctl(OUTIO_fd,0,FR1);ioctl(OUTIO_fd,1,FR2);void turn_big_right()ioctl(OUTIO_fd,0,FL1);ioctl(OUTIO_fd,1,FL2);ioctl(OUTIO_fd,1,FR1);ioctl(OUTIO_fd,0,FR2);static void stop_buzzer(void) int ret = ioctl(PWM_fd, PWM_IOCTL_STOP);if(ret < 0) perror("stop the buzzer");exit(1);void openOUTIO(void) OUTIO_fd = open("/dev/OUTIO", 0);if (OUTIO_fd < 0) perror("open device OUTIO");exit(1); void openINIO(void)INIO_fd = open("/dev/INIO", 0);if (INIO_fd < 0) perror("open device INIO");exit(1);int check_wich_turn( unsigned char flag ) static int last_big_right=100, last_big_left=100; if ( last_turn = BIGLEFT ) last_big_left=1; else last_big_left+; if ( last_turn = BIGRIGHT ) last_big_right=1; else last_big_right+; if ( (flag & (1<<L2) ) return NOTURN; /杩囧崄瀛? if ( ( (flag & HIGHT2) >>3) > 0) && (flag & LOW2)>0) ) return LONGRUN; if ( flag = (1<<L3) ) return RIGHT; if ( flag = (1<<L1) ) return LEFT; /if ( (flag & (1<<0) && (flag & (1<<4) ) return NOTURN; /if ( (flag & (1<<1) && (flag & (1<<3) ) return NOTURN; /闃叉宸彸鏅? /if ( ( flag & (1<<L4) ) && (last_turn = BIGLEFT ) return NOTURN; / if ( ( flag & (1<<L0) ) && (last_turn = BIGRIGHT ) return NOTURN;if (debug_flag) printf(" Flags: %dn", flag); if ( flag & (1<<L4) ) return BIGRIGHT; if ( flag & (1<<L0) ) return BIGLEFT;/* if ( flag & (1<<L4) ) if (last_big_left <= 6) car_run(100,0); return NOTURN; else return BIGRIGHT; if ( flag & (1<<L0) ) if (last_big_right <= 6) car_run(100,0); return NOTURN; else return BIGLEFT;*/ / if ( flag & (1<<L0) ) return BIGLEFT; if ( flag = (1<<L1) | (1<<L2) ) return LEFT; if ( flag = (1<<L2) | (1<<L3) ) return RIGHT; if (flag = 0 ) && (last_turn=BIGLEFT) | (last_turn=BIGRIGHT) ) ) return last_turn; return NOTURN; /printf("Current INIO: %sn",NOW_INIO); /printf( "left:%d, right:%dn", left,right);void turn(int turn_flag) long int cn=0; if (turn_flag = BIGLEFT) / if (debug_flag) printf("BIGLEFTn"); turn_big_left(); delay(10); myfreqs.freq1 = 400; /LEFT, BCK /10 old myfreqs.freq2 = 400; /RIGHT, FWD /10 old set_buzzer_freq(myfreqs); delay(5); /10 old /stop_buzzer(); else if (turn_flag = BIGRIGHT ) / if (debug_flag) printf("BIGRIGHTn"); turn_big_right(); delay(10); myfreqs.freq1 = 400; /LEFT FWD /10 old myfreqs.freq2 = 400; /RIGHT BCK /10 old set_buzzer_freq(myfreqs); delay(5); /10 old /stop_buzzer(); else if (turn_

    注意事项

    本文(探月小车”的设计与制作设计.doc)为本站会员(上海哈登)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开