我正在开发一个Android ADK项目。我正在寻找一种方法来检测棋盘上棋子的位置(8x8)。我当时在看NFC之类的东西,但是看起来太贵了。我应该考虑其他技术吗?我需要让世界能够随时读取董事会完整状态的信息。例如,有些作品可能会被撞倒,一旦重新设置好,我就需要这些位置。为了进一步解释这一点,在旅游象棋游戏中,如果棋子被移动到错误的位置并且没有玩家注意到游戏将继续。因此,即使根据游戏规则无法定位,我也需要记录游戏。
我只是想指出要看什么技术的一般方向。
我正在开发一个Android ADK项目。我正在寻找一种方法来检测棋盘上棋子的位置(8x8)。我当时在看NFC之类的东西,但是看起来太贵了。我应该考虑其他技术吗?我需要让世界能够随时读取董事会完整状态的信息。例如,有些作品可能会被撞倒,一旦重新设置好,我就需要这些位置。为了进一步解释这一点,在旅游象棋游戏中,如果棋子被移动到错误的位置并且没有玩家注意到游戏将继续。因此,即使根据游戏规则无法定位,我也需要记录游戏。
我只是想指出要看什么技术的一般方向。
Answers:
第一个想法:RFID。每个标签下面都有一个标签(非常便宜)。每个标签应标识其是哪种类型({6白色} + {6黑色} = 12种不同类型)。整个电路板上有一个收发器电路和一个1-to-64多路复用器。此外,还有64个小天线,每个天线位于每个板子位置的下方。收发器以非常低的RF功率工作(实验上,您应该找到最佳功率)。通过更改多路复用器连接,您可以扫描所有64个位置,并读取每个位置上存在的标签的ID(如果有)。
我从来没有使用过它所讨论的IC,但是该文档可能会帮助您实现RFID多路复用器(这将是最具挑战性的部分,加上精心的布局)。
第二个想法:通过其独特的磁导率来区分每种零件类型。对于每块,您将在其底部添加一定的质量。所有32个零件的额外质量都是相同的(以便用户对它们感到舒适)。每个额外的质量将是两个质量的总和:“磁性”质量,再加上“补偿”(非磁性)质量。补偿质量的唯一目的是使所有类型的零件的总附加质量相等。您需要区分12种不同类型的作品。每种类型的零件都必须具有具有唯一磁导率的磁质量。您可能会选择高的材料,但是您可以选择很多材料,每种材料都有不同的(请参阅一张表)μ μ在这里)。
在每个电路板位置的下方,您都需要缠绕几匝电线(以使直径几乎是正方形的一面)。您将有64个线圈。同样,使用1-to-64多路复用器,仅将其中一个连接到电感表。现在的区别在于,多路复用器不需要处理RF。您可以将所有线圈的一个节点绑在一起,并使用64个模拟开关(非常便宜)将一个线圈引到电感表。该电路将必须在最短的时间内确定在64个线圈中的每个线圈上测得的自感是多少。它不需要太多的准确性。它只需要确定L的13个不同可能值(小于4位!)。您可以尝试时域中的方法(例如,施加恒定电压并测量电流的斜率),或在频域中(例如,尝试通过增加一定的电容器来快速寻找谐振频率)。要获得L的那12个不同值,您可以使用不同的磁导率和磁性材料的不同尺寸。
由于您必须在合理的时间内扫描64个位置(测量64个自感),因此我可能会选择时域方法。例如,如果您允许自己1秒钟读取板的整个状态,则每个电感测量的时间为15.6 ms。具有挑战性,但可行。
如果速度最终成为瓶颈,那么如果将8个模拟前端(而不是1个)包括在内,则可以使系统速度提高8倍。每个前端将专用于板中的每一行。这样,您可以同时测量8个自感(每次测量为125 ms,并且在1秒内仍将处于整个板状态)。我敢肯定,即使有一个ADC(具有8个通道),一个MCU也足够。
这可以是(没有全部细节)每个前端的示意图(如上所述,可以是整个电路板的示意图,也可以是每行的示意图),以及一种快速估计自感至(N为8或0)的方法。 64)。线圈的公共节点将是顶部节点,为简单起见,未显示模拟开关的控制信号。TS将是恒定的,并且在TS处采样的VX将用于计算自感。TG会比TS稍长。L N
第二个想法的好处:不涉及RF。但是,您需要构建自己的具有不同磁导率的“标签”。
我见过许多电子棋盘,在64个正方形的每个中心都钻有一个孔,每个孔下面都有一个简单的光电探测器,它只有1位-“这里什么都没有”,或者“某种东西是覆盖探测器”。这需要(a)一些内存和代码来记住板子的旧配置,并跟踪哪一块移到了哪里,以及(b)一些特殊的东西来处理典当升级。这样可以随时检测到哪些正方形已被占用,哪些正方形已打开,但无法检测到板子的完整状态。
GlyphChess通过使用透明棋盘解决了这一问题。下方的扫描仪读取粘贴在每块底部的唯一条形码,以找出哪一块位于何处。 Slashdot:“ PARC的密码” :在扫描仪上玩GNU国际象棋 这可以随时重新读取板的完整状态。由于棋盘上只有不到18种独特的棋子,因此最好使用易于识别的 基准(例如d-touch标记),而不是能够识别数百万个对象的高分辨率条形码。
为此,我需要为每个正方形制作一个颜色传感器,并在该块的底部放置一个不同的颜色标签。
颜色传感器将使用三个LED(可能是红色,绿色和蓝色)和一个对所有可见光敏感的光电晶体管制成。依次打开LED并测量光电晶体管在棋盘上反射回来的光。
您可以反向进行操作,这里有一个白色LED和三个对不同颜色敏感的不同光电晶体管。但这很难做到。大多数光电晶体管不是那种颜色选择的。您可以使用滤镜,但只使用不同颜色的LED会更容易。
如果LED指示灯亮起的时间足够短,那么您就不会看到它“太多”。此外,LED还可用于其他用途,例如在游戏获胜时在棋盘上做标记或进行酷炫的小灯光表演。
这有一个小窍门,这使得所有内容都易于连接和构建。Avago的I2C芯片具有一些环境光,可能会使其变得更容易。其他公司也有类似的事情。
下一个技巧是制作足够多的不同颜色的标签,以使每块标签具有唯一的颜色。这将需要一些试验和错误,因为我们不知道各种打印机墨水/墨粉颜料的确切光谱。即使这样,只要您可以从光传感器获得大约6位的分辨率,也就不难了。(6位将为您提供足够的噪声余量。)
一家名为“ Zowie”的公司曾经制作过一些剧本,包括“艾莉的魔法花园”,该剧本可以连接到计算机,并且可以感知游戏表面上一些代币的位置。每个令牌都由一个电容器和一圈线圈组成,游戏表面上有一排网格。将电流以与线圈帽组件的LC频率匹配的频率通过水平导线会导致该频率出现在垂直导线上。线栅在两个方向上大约都是6线/英寸,并且明显的定位分辨率大约是0.05英寸,但是只有大约16根线连接到CPU板;我想这些线的排列方式应使得每个标记对两根或多根水平导线起反应并刺激至少两根垂直导线;通过指出哪种导线组合会对刺激做出反应,CPU可以确定令牌的位置。我不记得Zowie在其专利中提出的主张或所引用的现有技术,但是现有技术完全有可能包括一种已经可以满足您目的的公有领域方法。