数字指南针.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 数字指南针扩展卡的软件调试 4.1 VJC简介[8] 图形化交互式C 语言(简称VJC)是用于能力风暴智能机器人系列产品的软件开发系统,具有基于流程图的编程语言和交互式C 语言(简称JC)。VJC 为开发智能机器人项目、程序与算法、教学等提供了简单而又功能强大的平台,是全球开创性的具有自主知识产权的产品。在VJC 中,不仅可以用直观的流程图编程,也可以用JC 语言编写更高级的机器人程序。流程图和JC 语言双剑合壁,既能轻松入门,又能够在编程中发挥最大的创造。VJC 操作简便,有活泼明快的图案和简短的文字说明可以使用形象化的模块,由顶向下搭建流程图,搭建流程图的同时,动态生成无语法错误的JC 代码。流程图搭建完毕,程序就已经编写完成,可以立即下载到机器人中运行。VJC已入门时可以直接在JC 代码编辑环境中编写程序,还可以边写边试,发现错误,校正修改,十分方便。 4.2 流程图 流程图是用一些图形表示各种操作的。用图形表示算法,直观形象,易于理解。流程图能够比较清楚地显示程序的逻辑关系,因此它是表示算法的较好工具。 4.3 JC 语言 交互式C 语言(简称JC)是用于能力风暴智能机器人的专用开发语言。JC由两部分组成:编译环境和能力风暴操作系统ASOS。JC实现了标准C语言的一个子集,它包括控制语句(for,while,if else)、局部变量和全局变量、数组、指针、16位和32位整数以及32位浮点数。 JC不直接编译生成针对特定处理器的机器代码,而是先编译生成基于堆栈虚拟机的伪代码。然后这种伪代码由能力风暴操作系统解释执行。JC这种不寻常的编译方式有以下优点: 1) 解释执行:允许检查运行错误。例如:JC在运行时,数组下标的检查。 2) 代码更精简:伪代码比机器代码更简短。 3) 多任务:由于伪代码是完全基于堆栈的,进程状态完全由它的堆栈和程序计数器所决定。因此只需要装载新的堆栈指针和程序计数器就可以方便地实现任务切换。任务切换由操作系统处理,而不是编译器。 4.4 用流程图编写数字指南针扩展卡程序 通过霍尔传感器HW-209A得到两个电压信号,由于在电路板上两个霍尔元件呈90度排列,所以得到两个相位相差90度的两个电压信号,一个为正弦信号,一个为余弦信号,它们一个周期的图像如下图所示: 图4.1 两个信号的函数图像 由于HW-209A霍尔传感器的工作电压是1V,当通过的磁场强度是0.1mT,输出的霍尔电压最小值是-7mV,输出的霍尔电压最大值是7mV,已知地磁场的大小为0.5到0.6高斯,本设计取地磁场强度为0.5高斯,这样霍尔传感器输出的最大电压值是3.5mV,由于运算放大器将信号放大了8000倍,这样就得到了输入单片机中两个信号的函数表达式,其中一个是正弦函数,另一个是余弦函数,它们的表达式分别为: (4——1) (4——2) 其中正弦函数作为数据的主要处理对象,而余弦信号只是一个标志信号,对两者的处理过程具体如下所示: 我的设计中主要是求出能力风暴机器人的方位,也就是角度的大小,通过得到的电压的信号,我们可以通过反正弦函数(或查表法)来得到角度的大小,但是从正弦函数的图像中,我们可以很明显的发现这样一个问题,对于输入的一个电压信号,通过反正弦函数或者查表法,我们会得到两个角度,一个较大值,一个较小值,所以单单通过一个正弦信号对机器人进行定位的话,无法达到能力风暴机器人自动辨向的效果,在这个问题上,我尝试过多种方法,包括二极管电桥电路,希望能通过分流的方法来实现,但通过进一步的考虑,证明这样的方案还是行不通,后来在王老师的建议下,尝试着用两个霍尔元件来解决这个问题,最终得以解决,证明了该方法的可行性。 通过两个HW-209A霍尔元件得到一个正弦信号,一个余弦信号,分别通过模拟端口PE5,PE6输入单片机,然后对正弦信号进行主要研究,对于一个电压信号会出现两个角度大小,这时再通过对余弦信号进行研究,为了便于说明,我们将平面分成0°到180°和180°到360°两个部分,对于0°到180°,当余弦信号为正值时,说明是较小的一个角度,当余弦信号为负值时,说明是较大的一个角度,说明的方法在上述的两图通过比较可以很容易的得出。以下为程序的方框图: 图4.2 编程方框图 通过上述的方框图进行如下的编程: float ma_1;设定浮动变量ma_1 float ma_2;设定浮动变量ma_2 float a;设定浮动变量a float b; 设定浮动变量b float c; 设定浮动变量c void main() { while(1);开始无限循环,当从句的值为1时,开始无限循环 { ma_1 =analogport(5);将从模拟口PE5输入的电压值送给变量ma_1

文档评论(0)

海川电子书城 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档