合乎 发表于 2014-3-12 10:48:14

家用型移动机器人制作教程 传感器篇

作者:Pepin@DFRobot 转载请注明来源GMR板简介
GMR板全称 通用机器人扩展板, 是一块专为家用机器人平台(HCR) 设计的集成电路板。在这块集成版上需要插入3 个微处理器(单片机):2块Arduino Nano和1块Arduino Mega ADK。 3块处理器之前均已通过I2C链接勿需另外连线。其中一块Nano作为电机控制以及数据采集,另一块nano用来驱动超声波传感器。Arduino Mega ADK 作为主控板,采集传输数据以及其他扩展模块,另外还有2个无线通讯槽可使用Xbee,蓝牙以及其他通讯模块。另外有8个I/O端口以及8个模拟口3个i2c通讯接口作为Mega ADK 的输入输出。 nano板留有电机驱动的专用端口以及可调旋钮电压输出。
传感器篇各位小伙伴们,在这第三篇中我会讲解在移动机器人中最重要的东西,传感器,如果说传感器是一个机器人的灵魂的话,那么传感器就是机器人的眼睛,当然有的传感器可以是鼻子耳朵,但是眼睛是最重要的。在上一篇中我想大家都已经看过了GMR的硬件构造,我们会采用2种传感器,红外以及碰撞传感器。
红外传感器 使用7个sharp 红外传感器在整个移动机器人比较低的位置,其感应范围为10-80cm适合应对突发情况下的周围环境情况进行及时应对。从硬件角度可以通过在VCC与 GND之间接电容的方式来稳定对其的供电,减少供电电压波动对测量结果的影响,或者在GND与数据线之间接一个电容减小输出电压的波动略去可能出现的误差信号,提高数据稳定性。如下图所示连接红外传感器与主控器
然后在Arduino Mega2560上烧入IRsensor_test.ino
void IRreader()是红外传感器的读数函数包含了引脚声明float smooth(float newdata, floatfilterVal, float smoothedVal)这个函数对红外传感器的输出进行处理,使其最后输出值的单位是厘米。
碰撞传感器 使用3个D碰撞传感器,安装在机器人的正前方3个方向。碰撞传感器的作用是在极其特殊的情况下,移动奇迹人已经撞上了障碍物,系统对此状态下发出快速回应(停止,后退)。 如下图所示连接碰撞传感器
然后在 Arduino Mega2560上烧入 Bumper_test.ino
OpenBumper(4,3,2);声明了3个碰撞传感器的3个数字引脚BumperFunction.h 这个库中对3个传感器的状态进行了储存,将数字口的2个状态转化为2进制储存进1一个byte 这个byte的不同值表示了不同的状态。比如00000110表示了右侧的D2引脚对应的那个传感器被触发了。
GMR总连线图到此为止,所有硬件的连线已经完成了下图为总体的连线总图

页: [1]
查看完整版本: 家用型移动机器人制作教程 传感器篇