.. _2 硬件使用指引:

2.硬件使用指引
===============================

RhinoX的主要硬件包括头显,手柄控制器以及Beacon。头显用于显示内容,手柄用于对虚拟场景中的物体进行交互,Beacon则用于
定位虚拟场景的位置,三个缺一不可,下面将详细介绍这些设备的用法以及基本原理。

2.1 RhinoX头显
---------------------------

2.1.1 按键接口
^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. image:: _static/rhinox_hardware_1.png

.. image:: _static/rhinox_hardware_2.png

外设接口:

============================     ================================================
接口                               功能
============================     ================================================
USB Type-C接口                    可用作USB ADB调试、充电口
TF卡槽                            扩展TF卡,推荐使用金士顿卡,最大支持128GB
3.5mm音频接口                     接入3.5耳机,此不支持麦克风,有独立麦克风
Micro USB接口                     扩展USB外设
============================     ================================================

.. WARNING::
    - 有外设(PC、充电头)连接头显USB Type-C口时,AR追踪系统将无法使用,且手柄会断开连接。

    - Micro USB接口只能连接外设,不能充电以及调试

物理按键和UnitySDK API对应关系:

============================     ================================================
头显按键                          Unity输入键
============================     ================================================
OKé”®                              RhinoXButton.ConfirmButton
Home/电源键                       Android标准Home键(系统占用,默认不开放)
音量+键                           Android标准VOLUME_UP(系统占用,默认不开放)
音量-键                           Android标准VOLUME_DOWN(系统占用,默认不开放)
============================     ================================================

2.1.2 常用功能
^^^^^^^^^^^^^^^^^^^^^^^^^

**1.休眠唤醒**

头显取下放置在桌面静置30s后进入休眠状态,屏幕熄灭。佩戴在头上后自动唤醒。

同时按下Home键以及OK键可以手动将屏幕休眠。

调试时为避免头显休眠,可用纸团将额头处的传感器遮住。

**2.头显操作模式**

头显有两种操作模式,一种是头控模式,一种是手柄射线模式。

在手柄没有连接的情况下,头显开机后主界面会有一个小白点,可以通过头部的移动来控制小白点的移动,进行
选择操作,再通过头显右侧的“OK”键进行确认选择。

手柄连接上之后,先扣动手柄扳机键,调出射线,然后通过射线进行选择,再通过扳机键进行确认。

**3.卸载/退出应用**

卸载应用:通过手柄射线在Launcher界面选择应用图标,长按确认键,点击卸载即可。

退出应用:先按一下头显上的Home键返回主界面,再调出手柄射线,点击主界面上的“清除”按钮即可。

**4.调试/安装应用**

Rhino X开发调试是通过标配的数据线,连接TypeC接口进行使用。USB开发者调试功能默认是开放
的,通过adb连接调试即可。

安装应用通过adb命令进行安装,参考 `教程`_

.. _教程: https://jingyan.baidu.com/article/22fe7cedf67e353002617f25.html

**5.系统升级**

RhinoX自带在线升级功能,如果系统有升级,只需要将头显连接有外网的wifi,然后在设置->系统
版本 中点击检查更新即可。

更新时头显不可使用,更新完后需要重启头显。

**6.电池拆卸**

RhinoX电池为可拆卸设计,如有购买备用电池,可将电池拆卸下来进行更换。

电池位于头显后方,为磁吸固定,只需用手指抵住电池与头显连接处,用力向外拔即可。

**7.镜片安装**

镜片是通过磁吸的方式固定在头显前方,安装时只需将镜片放置在合适的位置,镜片会自动吸附上
去。安装上之后,轻轻摇一下镜片,确认安装到位。

详细使用方法可参考以下视频教程:
https://mp.weixin.qq.com/s/aj-WFesk2CxX2s0ep8d-nQ

2.1.3 注意事项
^^^^^^^^^^^^^^^^^^^^^^^^

1.  拆卸电池时请务必先关机。
2.	不可开机充电,开机时接上数据线手柄会断开连接。
3.	使用前请将屏幕保护膜撕掉
4.	务必用标配的充电头以及数据线充电以及调试。
5.	请尽量在室内使用,不可在过暗或者过亮的环境中使用,否则会出现场景漂移的现象。
6.	使用时确保周围不能太空旷,环境色彩稍微丰富一些,否则会出现场景漂移的现象。
7.	10岁以下小朋友须在家人陪同下使用,防止眼镜滑落受伤。
8.	使用时请勿用手触碰镜片,可能会导致镜片松动或者掉落。



2.2 手柄控制器
------------------

手柄是RhinoX的核心交互设备,他是通过头显前方的红外摄像头进行跟踪定位的,故在使用手柄时需要确保手柄在
摄像头的跟踪范围内,否则手柄将出现抖动或者无法被跟踪。

.. warning:: 
    请勿在头显充电或者通过数据线连上电脑的情况下使用手柄,此时手柄会断开连接,且无法跟踪Beacon。
    此时头显上会提示"VPU未连接,请拔掉充电器使用",如果要使用,请拔掉充电器。

2.2.1 按键定义
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. image:: _static/tag_controller.png

控制器按键与UnitySDK API对应关系:

============================     ================================================
控制器按键                          Unity输入键
============================     ================================================
触摸板按下                        RhinoXButton.ControllerTouchPadButton
菜单键                            RhinoXButton.App
Homeé”®                            RhinoXButton.Home
扳机键                            RhinoXButton.ControllerTrigger
============================     ================================================

**触摸板坐标:**

.. image:: _static/tag_controller_touchpad.png


2.2.2 指示灯状态
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

============         =============================
状态                    指示
============         =============================
连接状态              绿灯常亮
断开状态              绿灯闪烁
关机状态              指示灯熄灭
休眠状态              指示灯熄灭,按任意按键唤醒
低电状态              红灯闪烁
============         =============================

2.2.3 手柄使用
^^^^^^^^^^^^^^^^^^^^^^^^^^^

**1.手柄配对**

通常标配的手柄为右手柄,头显开机后,长按手柄Home键将手柄开机,手柄会自动与头显连接。

若手柄未自动连接,可通过“设置”->“外设管理”->“右手柄”进行手柄配对,
配对时同时按下手柄的Home键以及菜单键,配对后需连接外网,下载标定参数

.. note::
    - 若主界面上面提示“控制器标定参数不存在”或者在应用中手柄无法跟踪,则请重新配对手柄并下载标定参数

    - 目前标配的手柄均为右手柄,如需使用双手柄,请向商务人员申请左手柄,切忌将右手柄作为左手柄使用

**2.射线回正**

当在主界面发现手柄射线歪斜时,可将手柄指向正前方,短按手柄菜单键,进行射线的回正。

**3.供电/开关机**

手柄通过7号电池供电,低电时请打开电池仓更换电池。

长按手柄Home键5s关机,长按Home键3s开机




2.3 Beacon
---------------

我们通常说的Beacon指的是一个黑色圆盘(如下图所示),大部分时候他的作用是用于定位虚拟场景的原点位置,每一个应用
在启动后都必须要识别一下Beacon来进行地面的定位。如果不定位Beacon,应用开启后无法确定场景在哪里显示

Beacon与手柄一样,也是通过头显上的摄像头来进行跟踪定位的,所以必须保证Beacon在摄像头的跟踪范围内才会被
识别到,Beacon的稳定识别距离通常是1.4m左右,所以定位时需要靠近他并低头进行识别。

Beacon也是有方向的,我们规定Beacon上数字的方向为Z轴的负方向,具体轴向见下图,通过旋转Beacon可以调整场景的方位。

Beacon上有一个数字代表它的编号,目前有三种编号的Beacon,即1,2,3号,他们在SDK中对应的ID为65,66,67

Beacon作为GroundPlane使用时,都会同时配置3个编号的Beacon,所以一般应用中任意一个编号的Beacon都可
以用来定位场景的原点,没有任何区别。但是不能3个同时使用。

.. note::
    Beacon并没有强制设置只能作为GroundPlane使用,如果有需要,可将他配置为Dynamic Target对象,具体请
    参考SDK文档


.. image:: _static/beacon.jpg