1288
测试家用机器人版本0.3.1
测试基于从红外线,超声波测距仪和编码数据的自动驾驶模式家庭机器人。
这篇文章是一个延续了以往概述家庭机器人0.3版本的。
这样做是为了使机器人能够独立房子周围移动,而无需人工干预。关于在前面的文章中描述的选择平台的底盘。在实施和测试的过程中发现难以接受障碍物检测系统,并告诉你下面。
正是基于这么说定位器 - 旋转微Servais会面测距仪
红外线测距仪夏普GP2Y0A41SKOF,表示测量的从4至30英寸的距离。在现实中,该措施可继续,但以更大的精确度。当障碍物到4英寸给出受损的数据,就好像一个障碍是上。小部门的光束。
从图中,可以大致理解上的距离的信号的依赖性。
测试代码测距仪SHARP GP2Y0A41SKOF。
<代码>的#define针A1无效设置(){Serial.begin(9600); pinMode(销,INPUT); }虚空环路(){uint16_t值= analogRead(针);双距离=的get_ GP2Y0A41SKOF(值); //计算基于距离的单位为厘米的模拟值Serial.println(值); Serial.print(距离); Serial.println("厘米&QUOT); Serial.println();延迟(500); } //返回距离(cm)双的get_ GP2Y0A41SKOF(uint16_t值){如果(值小于16)的值= 16;返回2076.0 /(值 - 11.0); }&中尉; /码> PRE>
超声波测距HC-SR04,表示措施的2至450厘米的距离。测量的业更加依赖于侧的范围为30到60度。计算距离呈线性,而反射的声音由声音的速度除以。
示例代码测距仪HC-SR04。
<代码> digitalWrite(三角函数,HIGH); //发送一个信号到微控制器delayMicroseconds的输出端(10); //保持10微秒digitalWrite(三角函数,LOW); //然后取出time_us = pulseIn(回声,HIGH); //措施脉冲distance_sm = time_us / 58的长度; //重新计算厘米Serial.println(distance_sm); //输出端口< /码> PRE>
和为函数pulseIn可以在没有反射的声波的设定的信号的最大等待时间不同,他可以等长,从而阻止该程序的执行中,我凭经验设定为下列值
<代码> time_us = pulseIn(回声,HIGH,50000);< /码> PRE>
只是必须指出,这取决于障碍物的表面和反射角测距仪可以大大躺在。使用两种不同类型的测距仪在一个方向上的帮助,以提高测量精度。此刻,我主要由数据从红外线测距仪激励,当它未能从超声波接收数据。
赛瓦转动测距仪30到150度中的30度,的经验导出的速度测量和简单的数量递增。测量结果被存储在数组中,并在任意时间的需求,可以进行检查,在击中障碍中的矩形区域,在机器人的前面。
作为机器人的一部分,无论出于何种原因没有检测到障碍物,决定在确定机器人应声而无法继续对从安装在轮的轴上的编码器的数据。
编码器被用在这里这样。
它们的作用机理是简单的,有关于在盘的间隙孔的光学传感器。挂在传感器的电平变化中断的Arduino,下面的示例代码:
<代码>无效LwheelSpeed(){coderLeft ++; //计数左轮编码器中断}无效设置(){attachInterrupt(左,LwheelSpeed,变化); }&中尉; /码> PRE>
大约每隔200毫秒,计算出车轮的速度。因此,如果车轮速度的运动急剧下降,假设机器人面临着障碍。在那之后,他拉回百转。
这是不是几乎达到了百分之百保证障碍物检测聪明传感器系统。在视频中你可以看到机器人满足了所有这些情况。
现在,我等待和光洁度微型3D打印机,使机器人的保险杠。那么我想会制定出几乎所有可能的情况。
从机器人的不同角度的一些照片。
打开打开项目苏尔这个机器人,还完成了以或多或少的正常状态奠定了电路设计和源代码,如果有人需要,现在在个人电子邮件机器人。
更多信息,新闻,照片和视频,请参阅该项目组VKontakte等 - vk.com/club23358759
请什么样的话题来写下面的文章进行视频发表评论。
资料来源: habrahabr.ru/post/222657/