掷骰子游戏自古就受到人们的喜爱。蛇爬梯子、大富翁、双骰子、双陆棋等是全世界玩家最多的游戏。
早期电子骰子是一个乱数产生电路,主要器件是IC-555计时器,周边连接繁杂的线路。那时的电子骰子虽然能够公平地产生1-6的点数,但是不能给玩家带来掷骰子的感觉。

图1 : 小巧的实体电子骰子设计将会为掷骰子游戏带来无限的商机。(source : NoveltyStreet) |
|
为了让这些游戏在今天更好玩,提升玩家的游戏体验,我们可以开发一个小巧的实体电子骰子,能够向手机、平板、显示幕等主机设备无线发送点数,这一设计将会为掷骰子游戏带来无限的商机。
新款电子骰子采用意法半导体(ST)的加速度感测器LIS3DH、低能耗蓝牙(BLE)处理器BlueNRG-MS或Wi-Fi模组SPWF01SAx和微控制器以及相关的充电电路。
工作原理
电子骰子的工作原理很简单,投掷点数取决於加速度感测器的方向。骰子里的加速度感测器利用加速度感测器的X、Y、Z三轴的数值和下图中的查阅资料表(图1)来确定方向朝上的数位。微控制器读取数位资讯并通过BLE/Wi-Fi发给主机(手机或平板),主机收取数位并处理游戏逻辑。
校准加速度感测器也很容易,既可以通过安卓设备向骰子发送一条命令也可以通过摇骰子进行校准。校准是对电子产品因长时间使用而累积的偏移量进行修正的过程。在这种情况下,每个轴都需要校准,偏移计算结果保存在微控制器快闪记忆体内,当打开骰子的电源时,这个偏移值就会被应用。
表1: 加速度感测器表示骰子输出
骰子上面的数字 ** |
加速度感测器“X”轴输出,单位g
( g = 9.8 m/s2 ) |
加速度感测器“Y”轴输出,单位g
( g = 9.8 m/s2 ) |
加速度感测器“Z”轴输出,单位g
( g = 9.8 m/s2 ) |
1 |
0 |
0 |
-1 |
2 |
0 |
1 |
0 |
3 |
-1 |
0 |
0 |
4 |
0 |
-1 |
0 |
5 |
1 |
0 |
0 |
6 |
0 |
0 |
1 |
**加速度感测器轴叁考点是根据图1的骰子设置的。

图2 : 骰子与骰子游戏通过无线通讯(BLE 或Wi-Fi)技术传输资料。 |
|
上图显示了骰子将当前的点数“6”和“5”发送到智能手机/平板电脑的顺序步骤(1, 2, 3)。如果使用蓝牙通信,骰子通过蓝牙协议栈的GAP和GATT两个协定发送资料。GAP协定用於初始化协定栈,建立与手机的连接通道,而GATT协议则定义智慧蓝牙发送叫做“属性”的数据(骰子点数、校准命令等)。该协定生成相关的加速度感测器服务,骰子点数通过该服务发送出去。
如果是Wi-Fi通信,骰子固件连接到AP(接入点),作为通讯端客户机,尝试连接远端通讯端伺服器。远端设备上的服务程式和骰子连接到同一个AP点,监听骰子用指定埠号发送的任何资料。在连接建成後,骰子固件向通讯端写资料,远端设备接收资料,并据此处理游戏逻辑。远端设备名称/IP位址可以在骰子固件内配置。
结论
电子骰子可用於很多手机和平板游戏软体。电子骰子还广泛用於高科技娱乐场所,因为这些地方多数游戏都离不开掷骰子。如果在骰子里植入语音播报器,骰子就会在停止运动後自动播报骰子点数,并将资料发送到远端设备,这对弱视群体是一个很大的帮助。使加速度感测器与骰子的面垂直,还可以将这个设计改成N面的骰子。
(Rosarium Pila, Saurabh Rawat, Salil Jain任职於STMicroelectronics Pvt. Ltd India)
叁考文献
http://www.st.com/content/st_com/en/products/wireless-connectivity/bluetooth-bluetooth-low-energy/bluenrg-ms.html
http://www.st.com/content/st_com/en/products/wireless-connectivity/wi-fi/spwf01sa.html
http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus.html?querycriteria=productId=SC1169
http://www.st.com/content/ccc/resource/technical/document/application_note/cc/22/7c/e1/17/26/4a/37/DM00127351.pdf/files/DM00127351.pdf/jcr:content/translations/en.DM00127351.pdf