本帖最后由 XM明 于 2013-9-10 10:54 编辑
NFC 是当前最热门的技术之一,这次用NFC技术和ShieldBot做了一个很有趣的Demo。ShieldBot是一个可移动的机器人平台,或者简单来说,是一辆小车!ShieldBot上有Arduino接口,可以插上一块Arduino,就可以轻松的对它进行控制。
demo
在一片空旷的地面上,设置一个起点和终点,开始的时候把车放到起点。另外,我们需要在起点和终点之间放置一些障碍物,比如一张凳子或者一双拖鞋,总之可以是任何东西。然后,我们的目标就是,利用手上的卡片,把ShieldBot通过障碍物,顺利到达终点。 如果你对这个demo感兴趣,可以跟着下面几个简单的步骤来完成。 Step 1:准备模块 首先,我们需要准备一些材料。所有材料都是现成的模块,你不需要焊接,你只需要把他们接起来。整个demo有两个部分组成: 控制台: 控制台用来读取卡片的信息,然后把命令通过红外发送给ShieldBot。 移动平台:其实就是ShieldBot,ShieldBot上有个红外接收器,接收来自控制台的命令。 另外,需要15张左右的NFC 卡片。 以下是产品清单: l Seeeduino V3.0(或者Arduino) 两块
l NFC Shield
l Grove – Base Shield
l Energy Shield + 锂电池
l Grove – Infrared Emitter
l Grove – Buzzer
l Grove – Infrared Receive
Step2:搭建控制台以及ShieldBot 首先我们搭建控制台: 把Grove – Buzzer插到Base Shield的A0,Grove – Infrared Emitter插到D3,然后把Base Shield插入到Seeeduino。接着把Energy Shield以及NFC Shield依次插到Base Shield上。这样,控制台就搭好了。 ShieldBot上只要接一个Grove – Infrared Receive, 我们把它插到ShieldBot上的I2C接口。
Step3:卡片设计与数据写入 卡片分两种:控制卡和数字卡。这两种卡需要配合使用。具体的使用后面会做详细的描述。
我们需要把代码下载下来:https://github.com/loovee/NFC_ShieldBot_Demo ,这里面会有这个demo所有需要用到的代码。
打开Arduino IDE,点击File->Preferences,弹出一下界面:
把Sketchbook location的目录指向下载的代码的目录。点击OK完成操作。关闭Arduino IDE。重新打开Arduino IDE,点击File->Sketchbook->uart_write_card
把程序烧录到控制台的那个Seeeduino。接着打开串口工具,把GO AHEAD的卡片靠近NFC Shield的天线。 在串口工具输入1,按发送:
数据就写入GO AHEAD卡片中了。接着要写剩余的卡片。 疑问在于为什么要写入1呢?其实一张新的卡片里面是什么数据都没有的,所以我们要写入一些数据区分每张不同的卡片,至于卡片的内容,也是没有严格的限制的,只要我们在程序里面定义好就可以了,比如我把1定义成GO AHEAD,那么收到1的话,我执行GO AHEAD的动作就可以了。各种卡片你需要写入以下内容:
Step4. 烧录程序 有两部分代码需要烧录,控制台的程序以及ShieldBot的程序 我们先烧录控制台的程序: 打开Arduino IDE,File -> Sketchbook -> demo,接着点击Upload按钮完成。 同样,File -> Sketchbook -> ShieldBot,完成ShieldBot上的程序烧录。
Step5.玩 到这里,所有的硬件和软件都已经准备好了。控制方式也非常简单,只需要举一个简单的例子。如果我想让Shield Bot往前走40cm,那么我拿起NUM40的卡片,往控制台的NFC天线刷一下(可以听到蜂鸣器响一下),这时候它没有动作,接着我们再拿GO AHEAD刷一下,这时,ShieldBot往前走了大概40cm然后停下来了。如果想走50cm怎么办?可以用NUM10刷5次,或者用NUM10和NUM40各刷一次,在GO AHEAD。
实际操控如何呢?请看相关视频。
|