欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    华中科技大学传感器课设报告.doc

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

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

    华中科技大学传感器课设报告.doc

    华中科技大学计算机科学与技术学院传感器技术课程设计 课程实验报告专业班级: IOT1201姓 名: 韩雨桥 学 号: U201215110 指导老师: 宋恩民、高鹏毅 完成日期: 2015年 6 月 16 日目录一、课程设计的目的 3二、课程设计的内容 3三、课程设计相关器材 3四、课设具体结构分析与实现 4五、课设各部分功能实现 5六、调试结果 15七、课设心得与感想 15一、 课程设计的目的 机器人创意设计与制作课程的总目标是提高学生的创新能力、综合设计能力和动手实践能力,进而培养和提升学生的STEM素养,强调学生在直接经验和亲身经历的基础上,通过观察、思考、设计、制作、试验等活动获得丰富的学习体验,在生活中发现问题,在实践中解决问题,在活动中获得知识。二、 课程设计的内容设计并制作一个小型机器人,要求满足一下几点:1)通信功能:机器人上安装蓝牙模块,手机通过蓝牙串口助手与机器人蓝牙建立联系,实现在手机上分别发送1,2,3,4指令,机器人分别完成“追踪”、“避障”、“漫游”和“循迹”四种不同的控制功能和利用键盘方式或智能手机重力感应模块,遥控机器人做出前进、后退、左转、右转、原地旋转以及停止等动作的功能。2)红外追踪功能:无目标时,机器人静止;当目标较远时,机器人快速接近;目标较近时,机器人慢速接近;距离过近时,机器人停止。机器人可以随目标左转或右转弯。3)前进避障功能:机器人先静止,拍手后(声控启动),机器人开始前进。传感器检测到障碍时,如果障碍在正前方且距离较近时,机器人减速前进;距离过近时,机器人停止,并后退一小段,然后右转绕行。如果障碍在左前方或右前方,机器人则右转或左转绕行。无障碍时,机器人全速前进。如果连拍两次手,机器人停止。4)悬崖漫游功能:机器人沿着桌子边沿行走,既不远离,也不会掉下去,遇到桌角能良好转弯。5)循迹功能:机器人可以沿着黑色或白色的直线、S形线、丁字形线或十字形轨迹行走。三、课程设计相关器材硬件要求:计算机教室、机器人比赛场地、配套ECT-EK实训箱(含全套实训设备)、PC机软件环境:需要安装Arduino IDE软件,可以采用图形化编程插件Ardublock,也可以直接使用IDE环境编写代码。四、 课设具体结构分析与实现 根据课程设计的内容和要求,我们需要搭建一个对应的系统结构,同时将机器电机、红外传感器、灰度传感器、声音传感器和蓝牙模块与主控板进行通讯连接。具体实现结构应为差速运动控制、声控运动、红外追踪、前进避障、悬崖漫游、循迹追踪、蓝牙通讯递进式功能实现。1、差速运动控制编写代码,实现以下动作: (1)一侧电机转动,另一侧不转,实现转动; (2)一侧电机快动,另一侧慢转,实现转动; (3)原地等速旋转;2 、声控运动加装声控传感器,编写一段代码,使你拍手后,机器人做出一套动作。3、红外追踪安装近红外传感器,并编写代码,用手做追踪目标,实现以下功能:(1) 无目标时,机器人静止;(2) 有目标时,机器人向目标行驶靠近。若左传感器检测到目标而右传感器没有检测到,则向左转。若右传感器检测到目标而左传感器没有检测到,则向右转。若两侧传感器同时检测到则前进。4、前进避障为机器人安装2个或以上近红外传感器,并编写代码,实现以下功能:(1)无障碍时,机器人前进;(2)左前方有障碍时,机器人右转绕行;(3)右前方有障碍时,机器人左转绕行;(4)正前方有障碍时,机器人后退一段距离,右转,绕行。5、悬崖漫游 为机器人加装近红外传感器和灰度传感器,编写代码,将机器人放置于桌子边缘,使机器人可以沿着悬崖漫游,既不远离,也不会掉下去,遇到桌角能良好转弯。6、循迹追踪为机器人加装2个灰度传感器,在地面粘贴黑胶带(也可用深色地面粘白胶带)形成平滑的轨迹,编写代码,将机器人放置于胶带轨迹附件,使机器人可以沿着轨迹行走。7、蓝牙通讯机器人上安装蓝牙模块,手机通过蓝牙串口助手与机器人蓝牙建立联系,实现在手机上分别发送1,2,3,4指令,机器人分别完成“追踪”、“避障”、“漫游”和“循迹”四种不同的控制功能和利用键盘方式或智能手机重力感应模块,遥控机器人做出前进、后退、左转、右转、原地旋转以及停止等动作的功能。五、 课设各部分功能实现定义左右轮电机端口:char getstr;const int right = A4;const int left = A3;定义各端口输入输出关系与电位关系:void setup()Serial.begin(9600);pinMode( A3, INPUT); pinMode( A2 , INPUT); pinMode( A4, INPUT); pinMode( A1 , INPUT); pinMode( left, INPUT); pinMode( right, INPUT); pinMode( 5 , OUTPUT); pinMode( 9 , OUTPUT); pinMode( 6 , OUTPUT); pinMode( 10 , OUTPUT); digitalWrite( 5 , LOW ); digitalWrite( 9 , LOW ); digitalWrite( 6 , LOW ); digitalWrite( 10 , LOW );定义进程循环:void loop() char a; char getstr; getstr=Serial.read(); a=getstr;红外追踪部分功能实现: while(a='1') /红外追踪 if ( !( digitalRead(right) ) && digitalRead(left) ) digitalWrite( 5 , LOW ); digitalWrite( 10 , LOW ); delay( 200 ); digitalWrite( 6 , HIGH ); digitalWrite( 9 , LOW ); else if ( digitalRead(right) && !( digitalRead(left) ) ) digitalWrite( 6 , LOW ); digitalWrite( 9 , LOW ); delay( 200 ); digitalWrite( 5 , LOW ); digitalWrite( 10 , HIGH ); else if ( !( digitalRead(right) ) && !( digitalRead(left) ) ) digitalWrite( 5 , LOW ); digitalWrite( 9 , LOW ); delay( 200 ); digitalWrite( 6 , HIGH ); digitalWrite( 10 , HIGH ); else digitalWrite( 6 , LOW ); digitalWrite( 10 , LOW ); delay( 200 ); digitalWrite( 5 , LOW ); digitalWrite( 9 , LOW );getstr=Serial.read(); if(getstr='2'|getstr='3'|getstr='4'|getstr='5'|getstr='6'|getstr='7'|getstr='8'|getstr='9'|getstr='0') a=getstr;前进避障部分功能实现:while(a='2') /前进避障if ( !( digitalRead(right) ) && !( digitalRead(left) ) ) digitalWrite( 5 , HIGH ); digitalWrite( 6 , LOW ); digitalWrite( 9 , HIGH ); digitalWrite( 10 , LOW ); delay( 1000 ); digitalWrite( 9 , LOW ); digitalWrite( 10 , HIGH ); delay( 1000 ); else if ( !( digitalRead(right) ) && digitalRead(left) ) digitalWrite( 5 , LOW ); digitalWrite( 6 , HIGH ); digitalWrite( 9 , HIGH ); digitalWrite( 10 , LOW ); delay( 500 ); digitalWrite( 9 , LOW ); digitalWrite( 6 , HIGH ); digitalWrite( 5 , LOW ); else if ( digitalRead(right) && !( digitalRead(left) ) ) digitalWrite( 6 , LOW ); digitalWrite( 5 , HIGH ); digitalWrite( 9 , LOW ); digitalWrite( 10 , HIGH ); delay( 500 ); digitalWrite( 5 , LOW ); digitalWrite( 9 , LOW ); digitalWrite( 10 , HIGH ); else digitalWrite( 6 , HIGH ); digitalWrite( 10 , HIGH ); digitalWrite( 5 , LOW ); digitalWrite( 9 , LOW );getstr=Serial.read();if(getstr='1'|getstr='3'|getstr='4'|getstr='5'|getstr='6'|getstr='7'|getstr='8'|getstr='9'|getstr='0') a=getstr;悬崖漫游部分功能实现: while(a='3') /悬崖漫游if ( digitalRead(right) ) && ( digitalRead(left) ) )analogWrite( 5 , 200 );digitalWrite( 6 , LOW );analogWrite( 9 , 200 );digitalWrite( 10 , LOW );delay( 50 );if ( ( !(digitalRead(right) ) && (digitalRead(left) )digitalWrite( 5 , LOW );analogWrite( 6 , 200 );analogWrite( 9 , 200 );digitalWrite( 10 , LOW );delay( 50 ); if( digitalRead(right) ) && ( !(digitalRead(left) )analogWrite( 5 , 200 );analogWrite( 10 , 200 );digitalWrite( 6 , LOW );digitalWrite( 9 , LOW );delay( 50 ); if( !( digitalRead(right) ) && (!( digitalRead(left) ) analogWrite( 6 , 200 ); analogWrite( 10 , 200 ); digitalWrite( 5 , LOW ); digitalWrite( 9 , LOW ); delay( 50 );getstr=Serial.read();if(getstr='1'|getstr='2'|getstr='4'|getstr='5'|getstr='6'|getstr='7'|getstr='8'|getstr='9'|getstr='0') a=getstr;循迹追踪部分功能实现: while(a='4') /循迹 if ( !(digitalRead(right) ) &&( digitalRead(left) ) digitalWrite( 5 , LOW ); digitalWrite( 10 , LOW ); digitalWrite( 6 , LOW ); analogWrite( 9 , 100 ); delay( 50 ); if ( digitalRead(right) &&( !( digitalRead(left) ) ) digitalWrite( 9 , LOW ); digitalWrite( 6 , LOW ); digitalWrite( 10 , LOW ); analogWrite( 5 , 100 ); delay( 50 ); if ( !( digitalRead(right) ) && (!( digitalRead(left) ) ) digitalWrite( 6 , LOW ); digitalWrite( 9 , LOW ); analogWrite( 5 , 100); digitalWrite( 10 , LOW ); delay( 50 ); if ( digitalRead(right) ) &&( digitalRead(left) ) analogWrite( 5 ,100); digitalWrite( 6 , LOW ); digitalWrite( 10 ,LOW ); analogWrite( 9 , 100 ); delay( 50 );getstr=Serial.read(); if(getstr='1'|getstr='2'|getstr='3'|getstr='5'|getstr='6'|getstr='7'|getstr='8'|getstr='9'|getstr='0') a=getstr;简单前进部分功能实现:while(a='5')/前进 digitalWrite( 5 ,HIGH ); digitalWrite( 6 , LOW ); digitalWrite( 9 , HIGH ); digitalWrite( 10 , LOW ); getstr=Serial.read(); if(getstr='1'|getstr='2'|getstr='3'|getstr='4'|getstr='6'|getstr='7'|getstr='8'|getstr='9'|getstr='0') a=getstr;简单后退部分功能实现: while(a='6')/后退 digitalWrite( 6 , HIGH ); digitalWrite( 5 , LOW ); digitalWrite( 10 , HIGH ); digitalWrite( 9 , LOW ); getstr=Serial.read(); if(getstr='1'|getstr='2'|getstr='3'|getstr='4'|getstr='5'|getstr='7'|getstr='8'|getstr='9'|getstr='0') a=getstr;左转功能实现:while(a='7')/左转 analogWrite( 5 , 200 ); digitalWrite( 6 , LOW ); analogWrite( 9 , 50 ); digitalWrite( 10 , LOW ); getstr=Serial.read(); if(getstr='1'|getstr='2'|getstr='3'|getstr='4'|getstr='5'|getstr='6'|getstr='8'|getstr='9'|getstr='0') a=getstr;右转功能实现: while(a='8')/右转 analogWrite( 5 , 50 ); digitalWrite( 6 ,LOW ); analogWrite( 9 , 200 ); digitalWrite( 10 , LOW ); getstr=Serial.read(); if(getstr='1'|getstr='2'|getstr='3'|getstr='4'|getstr='5'|getstr='6'|getstr='7'|getstr='9'|getstr='0') a=getstr;原地自转部分功能实现: while(a='9')/原地旋转 digitalWrite( 5 , LOW ); digitalWrite( 6 ,HIGH ); digitalWrite( 9 , HIGH ); digitalWrite( 10 , LOW ); getstr=Serial.read(); if(getstr='1'|getstr='2'|getstr='3'|getstr='4'|getstr='5'|getstr='6'|getstr='7'|getstr='8'|getstr='0') a=getstr;停止功能实现:while(a='0')/停止 digitalWrite( 6 , LOW ); digitalWrite( 5 , LOW ); digitalWrite( 9 , LOW ); digitalWrite( 10 , LOW ); getstr=Serial.read(); if(getstr='1'|getstr='2'|getstr='3'|getstr='4'|getstr='5'|getstr='6'|getstr='7'|getstr='8'|getstr='9') a=getstr;六、 调试结果执行结果为随压缩包附上的视频,在此不便过多赘述。七、 课设心得与感想 在这次课设中,出力最大的当属组长聂刚,一开始茫无头绪的时候最先动手进行尝试的就是聂刚同学,在编写各部分功能代码时,很多问题和bug也都仰赖了他的帮助。尽管由于器材原因,我们未能完成超声波测距相关功能,两轮的电机自然差速也非常大,但是我们依然尽到了我们最大的努力去完成这次实验。

    注意事项

    本文(华中科技大学传感器课设报告.doc)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开