- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5讲:第四节--单片机输入接口跟机器人触觉导航
DEPUSH 单片机输入接口与机器人触觉导航 本讲摘要 单片机输入接口 安装并测试机器人胡须 安装并测试机器人胡须 安装并测试机器人胡须 安装并测试机器人胡须 安装并测试机器人胡须 安装并测试机器人胡须 通过胡须信息导航 通过胡须信息导航 通过胡须信息导航 机器人进入死区后的人工智能决策 机器人进入死区后的人工智能决策 机器人进入死区后的人工智能决策 本章小结 * Slide * * Slide * 深圳市德普施科技有限公司 SHENZHEN DEPUSH.TECHLONOGY CO.,LTD 单片机输入接口与 机器人触觉导航 第四章 1.单片机输入接口简介 2.触觉传感器的安装及测试 与操作符、?操作符、if…else条件判断语句 3.触觉导航策略实现 if...else...if多分支选择语句、关系和逻辑运算符 4.机器人进入死区后的智能决策 if…else条件判断语句的嵌套 前两章: 1.机器人的基本动作,一种被动式的运动,不能自主决策; 2.单片机端口用作输出。 本章及后续章节: 1.单片机端口用作输入,存储传感器采集的信息; 2.机器人自主导航。 任何自动化系统均采用传感器采集信息。 安装胡须 胡须硬件 安装示意 搭建胡须电路 胡须电路 实物图 胡须是一个机械式的、接地常开的单刀单掷开关。 胡须接地(GND)是因为主板外围的镀金孔都连接到GND,而金属支架和螺丝钉提供电气连接给胡须。 获取胡须状态 I/O口监测10K电阻上的电压变化: 1.胡须没被触动,电压为5V,输入为1 2.胡须被触动,电压为0,输入0 int P1_4state(void)//获取P1_4的状态,右胡须 { return (P10x10)?1:0; } int P2_3state(void)//获取P2_3的状态,左胡须 { return (P20x08)?1:0; } 与操作符 与运算符“”的功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。如整数7与12相与: 0 0 0 0 0 1 1 1 (7的二进制) 0 0 0 0 1 1 0 0 (12的二进制) =0 0 0 0 0 1 0 0 (结果为4) P10x10:取P1.4 0 0 0 0 1 0 0 0 0x10 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P1 P20x08:取P2.3 0 0 0 1 0 0 0 0 0x08 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 P2 ?操作符 一般形式: 表达式1 ?表达式2:表达式3 先求解表达式1,如果非0(真),则求解表达式2,并把表达式2的结果作为整个条件表达式的值; 如果表达式1的值为0(假),则求解表达式3,并把表达式3的值作为整个条件表达式的值。 return (P10x10)?1:0; if (P10x10) return 1; else return 0; if…else语句是条件判断语句,它根据判定的结果(真或假)决定执行给出的两种操作之一。 if(表达式) 语句1; else 语句2; 测试胡须 while(1) { printf(右边胡须的状态:%d ,P1_4state()); printf(左边胡须的状态:%d \n,P2_3state()); delay_nms(150); } 在机器人行走过程中,导航程序需要接受胡须输入信息,判断它的意义,调用一系列使机器人倒退、旋转朝不同方向行走的动作子函数。 if…else…if多分支选择语句 if(表达式1) 语句1; else if(表达式2) 语句2; … else if(表达式m) 语句m; else 语句n; if((P1_4state()==0)(P2_3state()==0)) {Backward(); Left_Turn();Left_Turn();} else if(P1_4state()==0) {Backward();Left_Turn();} else if(P2_3state()==0) {Backward();Right_Turn();} else Forward
文档评论(0)