创客联盟网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

开思网在线3D打印服务
查看: 20825|回复: 0
打印 上一主题 下一主题

NFC新玩法:用NFC操控小车

[复制链接]
跳转到指定楼层
楼主
发表于 2014-5-6 11:08:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

马上注册(开思网用户可以直接登录),结交更多创客好友,享用更多功能,让你轻松玩转创客社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本文的作者是@大学生的Arduino。这次他手把手教大家使用NFC技术控制小车。比起无线控制,NFC技术操控小车的移动相对来说要麻烦一些,不过作者的目的是想以一个娱乐的方式来了解和学习NFC技术。

NFC 是当前最热门的技术之一,这次我用NFC技术和ShieldBot做了一个很有趣的Demo。ShieldBot是一个可移动的机器人平台,或者简单来说,是一辆小车!ShieldBot上有Arduino接口,可以插上一块Arduino,就可以轻松的对它进行控制。



另外,我找到了一些NFC卡片,每张卡片里面可以写入不同的数据。于是我想到,可以利用每张卡片定义一些动作,让ShieldBot来完成。如果这仅仅是一辆遥控车的话,确实没什么好玩的,我还设想了一些游戏的场景。

在一片空旷的地面上,设置一个起点和终点,开始的时候把车放到起点。另外,我们需要在起点和终点之间放置一些障碍物,比如一张凳子或者一双拖鞋,总之可以是任何东西。然后,我们的目标就是,利用手上的卡片,把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->references,弹出一下界面:



把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。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|创客联盟网  

GMT+8, 2024-4-29 11:49 , Processed in 0.018035 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表