-
Notifications
You must be signed in to change notification settings - Fork 148
Use csTimer to connect to smart cubes 使用csTimer连接智能魔方
In recent years, many manufacturers have launched smart cubes. Compared with the traditional Rubik's Cube, the smart cube will send its state back to the software for our further analysis. At present, csTimer also has the ability to read the status of some smart cubes, so it also provides some functions, such as CFOP segment timing, oll/pll case statistics, training functions, etc. This article will briefly introduce these functions, and we will continue to develop more useful and fun functions, so stay tuned.
Due to browser compatibility issues, only a few browsers currently support Bluetooth functionality. Recommended browsers include:
- Chrome / Edge (for Win, Linux, Android, macOS)
- Bluefy (for iOS)
Please make sure your browser has permission to use the Bluetooth function, otherwise the connection will fail. In addition, if you are using Gan's new smart cube, it is recommended to turn on the chrome://flags/#enable-web-bluetooth-new-permissions-backend flag, which can save some steps.
In terms of smart cube, the currently supported smart cube includes:
- Giiker series (including Xiaomi smart cube)
- GoCube series (including Rubiks connected)
- Gan series (including Monster Go)
We are actively developing other smart cubes.
Select "Bluetooth Cube" in "Options => timer => entering in times with", and a Bluetooth Cube connection notification dialog box will pop up on the screen. After clicking OK, the browser starts searching for nearby Bluetooth devices. Please select the smart cube you want to connect, and then csTimer will start trying to read the status of the Bluetooth Cube. At the same time, a virtual cube will be displayed on the screen, and its current state will be consistent with that of the smart cube.
If you are using Gan's new smart cube, and you have not turned on the flag mentioned above, csTimer will ask you to enter the MAC address of the Bluetooth Cube during the connection process (like xx:xx:xx:xx:xx:xx) , this address can be found in the official app.
After the above steps, if there is no error, csTimer has connected to your smart cube. After that, every time you turn the smart cube, the virtual cube on the screen will perform the same turn.
After connecting to the smart cube, csTimer can already read the status of the cube in real time, so it can provide some additional functions.
csTimer will underline in the scramble algorithm to tell you which steps are currently turned and which steps are left. If you make a wrong turn, csTimer will display a correct scrambled state generation algorithm.
You can choose the automatic segmentation method in "Options => Virtual & Bluetooth => multi-phase". After setting, csTimer will automatically segment the results in real time during the process.
First of all, when you click on a result, there will be an extra line of "Review" under the original "Date", and you can get the move sequence of this solve accurate to milliseconds. If more analysis tools become available in the future, they will use this sequence of moves.
You can find the "Reconstruct => step" function on the tool panel. By default, it will display the CFOP segment of last solve (including inspection time, execution time, number of moves and turns per second). You can also set it to display the segmented time of the Roux method, display the segmented time in 5/12/100 average, etc.
If the tool panel option is adjusted to the "Reconstruct => cases" function, by default it will display the PLL case statistics (inspection time, execution time, number of moves and turns per second) of all solutions (if any) in the current session. Similarly, you can also view OLL statistics.
When training algorithms (OLL, PLL, ZBLL, etc.), we often hope that the Rubik's cube will be scrambled to a specific state, and then we will identify and make solves. Inspired by briefcubing, csTimer also added such a function, as follows.
First, select a step you want to train in the scramble type (for example, "3x3x3=>PLL"), then open the scramble option (click the gear to the right of the scramble type), and select the case you want to train (you can select all cases, but cannot be left blank). In this way, you can get a scramble algorithm for various cases for a specific step.
Next, change "Options => Virtual & Bluetooth => Bluetooth Cube Mode" to "Training". Its function is that once you press the space or touch the screen, the virtual cube on the screen will be directly scrambled into the state corresponding to the current scramble algorithm, which is the situation you want to train.
After that, your task is to solve the virtual cube on the screen, that is, to identify this case, and then make an algorithm to solve it.
If you feel that the virtual cube on the screen looks uncomfortable, you can also choose qCube, or only look at the top layer, or only the top layer and the RF two sides of the top layer.
If you want to give up restoring, you can press ESC, or press and hold the screen for 2 seconds.
近年来多个厂商都推出了智能魔方。相比于传统魔方,智能魔方会将它的状态回传给软件,以便我们进一步的分析。 目前,csTimer也具备了读取一些智能魔方状态的能力,因此也提供了一些功能,例如CFOP分段计时、oll/pll case统计、针对性训练功能等。 这篇文章会简单介绍一下这些功能,我们会继续开发更多有用好玩的功能,敬请期待。
由于浏览器兼容性问题,目前只有很少的浏览器支持蓝牙功能。 推荐的浏览器包括:
- Chrome / Edge (用于Win、Linux、Android、macOS)
- Bluefy (用于iOS)
请确保你的浏览器具有使用蓝牙功能的权限,否则连接会失败。另外,如果你使用的是Gan的新款智能魔方,建议开启 chrome://flags/#enable-web-bluetooth-new-permissions-backend 这个开关,这样可以节省一些步骤。
智能魔方方面,目前支持的智能魔方包括:
- Giiker系列(包括小米智能魔方)
- GoCube系列(包括Rubiks connected)
- Gan系列(包括Monster Go)
其他智能魔方我们正在积极开发中。
在“设置=>计时=>产生成绩通过”中选择“蓝牙魔方”,此时屏幕上会弹出蓝牙魔方连接告知对话框。单击确定后,浏览器会开始搜索附近的蓝牙设备。请从中选择你要连接的智能魔方,之后csTimer就会开始尝试读蓝牙魔方的状态了。同时,屏幕上会显示一个虚拟魔方,目前它的状态会和智能魔方的状态一致。
如果你使用的是Gan的新款智能魔方,并且你没有开启前面说的开关的话,在连接过程中csTimer会要求你输入蓝牙魔方的MAC地址(形如xx:xx:xx:xx:xx:xx),这个地址可以在官方app中找到。
经过上述步骤以后,如果没出什么错误,csTimer已经连接上了你的智能魔方。之后,每次你转动智能魔方,屏幕上的虚拟魔方都会被执行一样的转动。
连接上智能魔方以后,csTimer已经可以实时读取到魔方的状态,因此可以提供一些额外的功能。
csTimer会在打乱公式里用下划线的方式告诉你当前转动了哪些步骤,还有哪些步骤。如果你转错了,csTimer会显示一条正确的打乱状态生成公式。
你可以在“设置=>虚拟&蓝牙魔方=>多阶段测速”中选择自动分段方式。设置以后,在即使过程中csTimer会自动对成绩进行实时分段。
首先,在点击一个成绩时,原先的“日期”下方会多出“回顾”一行,你可以获得此次还原精确到毫秒的转动序列。未来如果有更多分析工具,它们会用到这里的转动序列。
在工具面板上可以找到“解法复盘=>step”功能,默认情况下它会显示最后一次还原的CFOP分段(包括观察时间、转动时间、步数和手速)。你也可以把它设置为显示桥式(roux)解法的分段时间、显示5/12/100次平均的分段情况等。
如果将工具面板选项调整为“解法复盘=>cases”功能,默认情况下它会显示当前分组所有解法(如果有的话)的PLL情况统计(每个情况的观察时间、转动时间、步数和手速)。类似的,你也可以查看OLL的情况统计。
在训练公式(OLL、PLL、ZBLL等)的时候,我们常常希望魔方打乱到特定的状态,然后我们去识别、做公式。在briefcubing的启发下,csTimer也添加了这样的功能,具体如下。
首先,在打乱类型中选一种你要训练的步骤(例如“3x3x3=>PLL”),然后点开打乱选项(点击打乱类型右边的齿轮),选择你要训练的case(可以选择所有case,但不能留空)。这样,你就可以获得针对某个阶段各种情况的打乱公式。
接着,将“设置=>虚拟&蓝牙魔方=>Bluetooth Cube Mode”改成“Training”。它的作用是,一旦你按下空格或触摸屏幕,屏幕上的虚拟魔方将会直接打乱成当前打乱公式对应的状态,也就是你要训练的情况。
之后,你的任务就是还原屏幕上的虚拟魔方,也就是识别这个情况,然后做公式还原它。
如果你觉得屏幕上的虚拟魔方看起来不太舒服,你也可以选择qCube,或者只看顶层,或者只看顶层和顶层的RF两个面。
如果你想放弃还原,你可以按ESC,或者长按屏幕2秒。