掷骰子游戏自古就受到人们的喜爱。蛇梯棋、大富翁、双骰子、双陆棋等是全世界玩家最多的游戏。
早期的电子骰子是一个随机数生成电路,主要器件是IC-555定时器,四周布设繁杂的线路。那时的电子骰子虽然能够公平地产生1~6的点数,但人们却丝毫感受不到投骰子的刺激与乐趣。
为了让这些游戏更好玩,提升玩家的游戏体验,我们可以开发一个小巧的实体电子骰子,向手机、平板、显示屏等远程设备无线发送点数,这一设计将为掷骰子游戏带来无限商机。这种电子骰子可在高科技赌场中使用。
电子骰子用到了意法半导体的加速度传感器LIS3DH、低能耗蓝牙(BLE)处理器BlueNRG-MS或Wi-Fi模块SPWF01SAx,以及微控制器和相关的充电电路。
电子骰子的工作原理很简单,投掷点数取决于加速度传感器的方向。骰子里的加速度传感器利用其X、Y、Z三轴的数值和下图1中的查找表来确定骰子方向朝上一面的数字。微控制器读取数字信息并通过BLE/Wi-Fi发送给远程设备(手机或平板),远程设备接收数字并处理游戏逻辑。
校准加速度传感器也很容易,既可通过安卓设备向骰子发送一条命令也可通过摇骰子进行校准。校准是对电子产品因长时间使用而累积的偏移量进行修正的过程。在本例中,每个轴都需要校准,偏移计算结果保存在微控制器闪存中,当骰子开电时,这个偏移值就会被应用。
等式1:每个轴的偏移计算结果都保存在微控制器闪存中。
表1:使用加速度传感器解释骰子输出点数。
图1:骰子与骰子游戏通过无线通信技术(BLE 或Wi-Fi)传输数据。
上图显示了骰子将当前的点数“6”和“5”发送到智能手机/平板电脑的步骤(1, 2, 3)。
如果使用蓝牙通信,骰子通过蓝牙协议栈的GAP和GATT协议发送数据。GAP协议用于初始化协议栈,建立与手机的连接通道,而GATT协议则定义通过Bluetooth Smart Link发送的称为“属性”的数据,如骰子点数、校准命令等。该协议生成相关的加速度传感器服务,骰子点数通过该服务发送出去。
如果是Wi-Fi通信,运行在骰子上的固件连接到AP(接入点),作为套接字客户端,尝试打开与远程服务器套接字的连接。运行在远程设备上的服务器程序与骰子连接到同一个AP,监听骰子在指定端口上发送的任何数据。一旦建立连接,骰子固件向套接字写数据,远程设备接收数据,并据此处理游戏逻辑。远程设备名称/IP地址可以在骰子固件内配置。
电子骰子可用于很多手机和平板游戏软件,还广泛用于高科技娱乐场所,因为这些地方多数游戏都离不开骰子。如果在骰子里植入语音播报器,骰子就会在停止转动后自动播报骰子点数,并将数据发送到远程设备,这对视力有障碍的群体十分有用。若将加速度传感器的轴与骰子的面垂直,就是一个N面骰子。
作者:Rosarium Pila,Saurabh Rawat,Salil Jain,意法半导体公司
《电子技术设计》2017年11月刊版权所有,转载请注明来源及链接。