实验机器人“小号”制作过程.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文档。上传文档
查看更多
实验机器人“小号”制作过程

实验机器人“小强一号”制作过程 作者:mindroid ??文章来源: HYPERLINK http://a href=/a \t _blank HYPERLINK ?? 更新时间:2008-5-22 19:47:10?? HYPERLINK /Article/Print.asp?ArticleID=630 \t _blank 打印此文 ?? 浏览数: 6370 从对机器人感兴趣开始,买了一堆书,也看了很多资料,决定先从最简单的车轮机器人开始做。普通电脑虽然强大,但是不能直接采集外界环境的物理数据,也不能直接控制电机。查找了下,虽然可以直接在电脑上接USB接口的数据采集器用于采集传感器的数据,也可以使用PCI的电机控制卡来驱动各种电机,不过成本有些高,暂时不考虑了。找了一圈,发现还是单片机方案廉价,顺便可以学习下单片机控制和作一些电路实验。于是最终决定实验方案采用单片机来做了。 零件 下面是采购的零件: 8位单片机Atmega168开发板( HYPERLINK /Arduino.ashx \o \t _blank Arduino)。 电路面包板和连线 用于驱动车轮的两个减速电机。没有找到合适的齿轮,自己也没有加工设备,图简单,所以直接用集成减速齿轮的电机代替了。 距离传感器,作为机器人的主要传感器,用来探测障碍物的距离。使用的是常用的红外距离传感器作为机器人的眼睛。 舵机,用来控制机器人“眼睛”的方向。 一堆零件: 实验 接下来先搞清楚怎么用单片机。 Hello world 先让单片机跑起来再说。习惯了操作系统下编程,第一次用单片机还真有些不习惯,担心遇到问题,不过比较顺利。这个程序用来点亮 单片机上的一个LED。 代码: int ledPin = 13; // LED connected to digital pin 13 void setup() { ?pinMode(ledPin, OUTPUT); // sets the digital pin as output } void loop() { ?digitalWrite(ledPin, HIGH); // sets the LED on ?delay(1000); // waits for a second ?digitalWrite(ledPin, LOW); // sets the LED off ?delay(1000); // waits for a second } 以间隔1000ms的时间把单片机的第13 个Pin脚循环输出高低电平,从而达到点亮和熄灭LED功能。很简单,就是验证下单片机是否可用。 控制舵机 舵机就是遥控模型上用来控制的,其实就是一个带闭环控制的电机,能转动到指定的角度。 工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获 得的直流偏置电压与电位器的电压比较,获得电压差输出。 最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动 电位器旋转,使得电压差为0,电机停止转动。在程序中控制舵机的转动角度,就是生成不同脉宽的PWM就行了。 上面的代码简单的生成一个PWM 驱动舵机旋转,比较简单。 代码中用delay来实现延时,如果是同时控制多个舵机,用这样的代码是不行的,需要自己计算时间。因为用delay整个单片机都“休息”了,无法执行任何代码。在实际实现中,还需要不断的读取传感器输入和进行其他处理。 红外距离传感器 传感器介绍: SHARP红外距离传感器,用于模型或机器人制作,可以用来测量距离。每个模块赠送一根15cm长PH2.0的单头排线. 技术规格: 探测距离:10-80cm 工作电压:4-5.5V 标准电流消耗:33-50 mA 输出量:模拟量输出,输出电压和探测距离成比例 接好电源,把模拟信号输出端接在单片机的模拟输入Pin就行了。 ?测试代码: int potPin = 2; int ledPin = 13; int val = 0; void setup() { ?pinMode(ledPin, OUTPUT); } void loop() { ?val = analogRead(potPin); ?digitalWrite(ledPin, HIGH); ?delay(val); ?digitalWrite(ledPin, LOW); delay(val); } 运行结果,led随着传感器距离的变化闪烁间隔也随着变化。 控制电机 常用的直流电机使用L293D来控制,使用H293的电路如下: 不过在验证是

文档评论(0)

penlai + 关注
实名认证
文档贡献者

会计从业资格证持证人

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

领域认证该用户于2023年05月12日上传了会计从业资格证

1亿VIP精品文档

相关文档