合乎 发表于 2014-3-11 10:38:43

家用型移动机器人制作教程 I2C通讯篇(wire库介绍)

作者:Pepin@DFRobot 转载请注明来源
各位小伙伴们这篇是家用型移动机器人制作教程的第二篇,这套教程的宗旨是通过对GMR通用机器人扩展版的学习,了解如何无线遥控一个家用型移动机器人如何精确定位移动,如何利用数个不同传感器(红外,碰撞,超声波)收集周围环境信息以及如何能够进行简单避障。
家用型移动机器人硬件构架

GMR版接口定义

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板我们采用了主从结构来进行Nano电机控制板与Mege主控器的通讯,Mega为主机,Nano为从机,使用库wire.h,可以使用wire库中example程序中进行学习。
Wire.begin();在Mega程序void setup()中声明作为主机
Wire.begin(2);在Nano程序voidsetup()中声明作为2号从机
Wire.onRequest(requestEvent); // registerevent 使用在从机void setup()中
Wire.requestFrom(2);在主机void loop()中是主机向2号从机要求数据。
Wire.write("hello ");从机在接受到主机的要求数据指令后使用此函数发送数据。
Wire.read()是主机读取接受到的数据。
主机可以在void loop()中使用此程序向从机发送数据
Wire.beginTransmission(2); // transmit todevice #2
Wire.write("x is ");      // sends five bytes
Wire.write(x);            // sends one byte
Wire.endTransmission();    // stop transmitting
对应从机的接受程序
while(1< Wire.available()) // loop through all but the last
{
   char c = Wire.read(); // receive byte as a character
   Serial.print(c);         // printthe character
}
intx = Wire.read();    // receive byte as aninteger
Serial.println(x);         // print the integer





在GMR扩展版上我们只要插入了mega 和Nano处理器2者之间已经完成了I2C通讯连线。

ambersea 发表于 2014-3-11 12:02:22

很简介清晰~呢~

Holiday 发表于 2014-3-11 18:30:09

楼主图片大点啊。。。不过还是很好的

天中雨水 发表于 2014-3-11 21:13:43

好东西

Eric 发表于 2014-3-11 21:15:38

好东西,要大家分享啊~顶起来啊~~~

Grey 发表于 2014-3-12 10:11:14

楼主,如果要打算远程控制HCR,改选用什么样的模块比较好,我看它内部扩有2个Xbee接口。

何处不江南 发表于 2014-3-12 10:37:11

HCR现有什么比较有意思的用法吗?

合乎 发表于 2014-3-12 10:51:23

Grey 发表于 2014-3-12 10:11
楼主,如果要打算远程控制HCR,改选用什么样的模块比较好,我看它内部扩有2个Xbee接口。 ...

那2个借口不仅仅适用于Xbee对于 WiFi等无线通讯模块也是适用的,你只要有合适的通讯协议都可以使用

合乎 发表于 2014-3-12 10:52:57

何处不江南 发表于 2014-3-12 10:37
HCR现有什么比较有意思的用法吗?

这需要大家发挥想象力了,加个机械臂什么,有什么想法大家可以一起讨论一下,比如装个摄像头在HCR是不是很有趣啊

hyl 发表于 2018-1-11 15:22:23

上面的代码按要求放进去编译出错

N-Z6h20E 发表于 2018-5-27 22:29:20

页: [1]
查看完整版本: 家用型移动机器人制作教程 I2C通讯篇(wire库介绍)