` Cywee Group Ltd.
`
`
`
`
`CyWee Phone API
`
`Reference
`
`
`
`
`
`
`
`
`
`
`
`
`
` Confidential (Internal Use Only)
`
` Limited Release
`
` Normal
`
`
`
`速位互動股份有限公司 1
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`Revision History
`
`Version
`
`Description
`
`Author
`
`Date
`
`1.0
`
`1.1
`
`* First Version
`
`Henry, Tigran 2009/9/25
`
`* Modify some data type of structure
`
`Henry
`
`2009/9/29
`
`cywee_data_t,
`
`* Fix Figure notation error
`
`* MR sensor Figure error
`
`1.2
`
`* Modify API definition to fit CyWee Spec
`
`Henry, Tigran 2009/12/22
`
`* Reserve some API for future release
`
`* Modify API to JNI style
`
`1.3
`
`* Add PC game application API
`
`Henry, Tigran 2009/12/25
`
`1.4
`
`* Change API interface
`
`Henry, Tigran 2010/4/7
`
`* Change motion API output
`
`1.5
`
`* Separated JNI and Middleware API
`
`Henry, Tigran 2010/04/16
`
`descriptions.
`
`* Added new APIs for
`
`JNI :setMotionThresholdValueFactor,
`
`setShakeMotionThresholdValueFactor and
`
`getLibVersion.
`
`*Added new API for middleware:
`
`CYWEE_Control_set_motion_threshold_value_f
`
`actor,
`
`CYWEE_Control_set_shake_motion_threshold_
`
`value_factor.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`速位互動股份有限公司 2
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
` Limited Release ....................................................................................................... 1
`
`Revision History ...................................................................................................... 2
`
`1.1 Cywee Motion Recognition Tech. .................................................................... 4
`
`1.1.1 Usage ........................................................................................................ 4
`
`1.1.2 Protocol .................................................................................................... 5
`
`1.2 Cywee API introduction ................................................................................... 5
`
`1.2.1 Raw mode ................................................................................................. 5
`
`1.2.2 Motion mode............................................................................................. 5
`
`1.2.3 Orientation mode ...................................................................................... 8
`
`1.2.4 PC application mode ................................................................................. 8
`
`2 CyWee API description for Java developers ............................................................ 8
`
`2.1 cywee.sensor.api package ................................................................................ 8
`
`2.2 openSensor ...................................................................................................... 9
`
`2.3 closeSensor ...................................................................................................... 9
`
`2.4 activateSensorAccelerometer ........................................................................... 9
`
`2.5 deactivateSensorAccelerometer ....................................................................... 9
`
`2.6 activateSensorMagnetic ................................................................................. 10
`
`2.7 deactivateSensorMagnetic.............................................................................. 10
`
`2.8 activateSensorOrientation .............................................................................. 10
`
`2.9 deactivateSensorOrientation............................................................................ 11
`
`2.10 activateSensorGyroscope .............................................................................. 11
`
`2.11 deactivateSensorGyroscope ........................................................................... 11
`
`2.12 getAllSensorValue ........................................................................................ 11
`
`2.13 getRawSensorValue ..................................................................................... 12
`
`2.14 getOrientationSensorValue ........................................................................... 12
`
`2.15 getMotionValues .......................................................................................... 12
`
`2.16 setMotionThresholdValueFactor .................................................................. 13
`
`2.17 setShakeMotionThresholdValueFactor ......................................................... 13
`
`2.18 resetGyrocalibrationTable ............................................................................ 14
`
`2.19 getLibVersion .............................................................................................. 14
`
`3 Middleware API Description ................................................................................ 14
`
`3.1 Middleware API data structures ..................................................................... 18
`
`3.1.1 tCyWeeSensorRawData .......................................................................... 18
`
`3.1.2 tCyWeeOrientationAngleData ................................................................. 21
`
`3.1.3 tCyWeeMotionData ................................................................................ 24
`
`3.1.4 tCyWeeUIData ....................................................................................... 27
`
`4 Architecture Block Diagram ................................................................................. 30
`
`
`
`速位互動股份有限公司 3
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`Introduction
`
`1.1 CyWee Motion Recognition Tech.
`
`1.1.1 Usage
`
`The CyWee motion recognition technology can provide the motion recognition result and 9-axis
`
`sensor rawdata output (3-axis accelerometer + 3-axis gyroscope + 3-axis magnetic sensor) by using a
`
`3-axis accelerometer (Ax, Ay, Az), a 2-axis gyroscope (Gwx, Gwz) and a 3-axis (Mx, My, Mz)
`
`magnetic sensor. The phone coordinate is shown in figure below:
`
`Figure 1
`
`
`
`3-axis accelerometer (Ax, Ay, Az) contains Ax, Ay and Az sensing axes. Each sensing axis aligns
`
`to the phone coordinate. The Ax’s “x” means aligning to phone coordinate +x. The Ay’s “y” means
`
`aligning to phone coordinate +y. The Az’s “z” means aligning to phone coordinate +z. The gyroscope’s
`
`Gwx means aligning to phone coordinate +wx. Gwy means aligning to phone coordinate +wy. Gwz
`
`means aligning to phone coordinate +wz. The magnetic sensor ’s Mx means aligning to phone
`
`coordinate +x. My means aligning to phone coordinate +y and Mz means aligning to phone coordinate
`
`+z.
`
`
`
`
`
`速位互動股份有限公司 4
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`1.1.2 Protocol
`
`All sensors’ rawdata can be got from the CyWee library. These data format maybe become
`
`different from the original rawdata got directly from each sensor through I2C interface.
`
`1.2 CyWee API introduction
`
`CyWee provides the API library to access the CyWee sensors data from middleware and Java
`
`applications as well. The library name is libcywee_sensorapi_vX.Y.so, where X and Y are the major
`
`and minor versions of the library. Library can be linked as a shared library to the middleware
`
`application development and also can be use as JIN library for Java APK developers. For Java APK
`
`developers CyWee also provides additional helper Java package cywee.sensor.api to manage the
`
`sensors data.
`
`API is classified into several modes. They are Rawdata mode, Motion mode, Orientation mode
`
`and PC application mode.
`
`
`
`1.2.1 Raw mode
`
`This API provides all the sensors rawdata. It contains 3-axis accelerometer, 3-axis gyroscope and
`
`3-axis magnetic rawdata.
`
`
`
`1.2.2 Motion mode
`
` This API provides the motion recognition results due to the motion of waving the phone in
`
`several directions. The motion can be as Figure 2_1~Figure 2_3 showing:
`
`
`
`
`
`速位互動股份有限公司 5
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`Figure 2_1: X-direction motion output
`
`
`
`
`
`Figure 2_2: Y-direction motion output
`
`
`
`
`
`
`
`速位互動股份有限公司 6
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`Figure 2_3: Z-direction motion output
`
`
`
`
`
`
`
`If just shake the cell phone with any direction, it will generate shaking signal output. As Figure
`
`2_4 showing:
`
`Figure 2_4: Shaking motion output
`
`
`
`
`
`
`
`It also can provide with the cell phone posture of “Turnover”. As Figure_2_5 showing:
`
`Figure 2_5: Shaking motion output
`
`
`
`
`
`速位互動股份有限公司 7
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`1.2.3 Orientation mode
`
`
`
`This API provides with Roll, Pitch and Yaw three absolutely angles. The orientation definition is
`
`defined by CyWee specifications. As Figure 3 showing:
`
`
`
`
`
`
`
`Figure 3: Orientation definition
`
`
`
`1.2.4 PC application mode
`
`In this mode, CyWee will prepare for all sensors’ information to the buffer of this API, and content
`
`developer can send it to the PC side through WiFi or Bluetooth. Sensor’s rawdata is sent for PC motion
`
`game development. Air mouse’s displacement dx and dy on the screen are used for air mouse pointing
`
`function.
`
`2 CyWee API description for Java developers
`
`CyWee API library exports the corresponding API methods to JNI for Java APK developers.
`
`CyWee also provide additional helper Java package cywee.sensor.api to manage the sensors data.
`
`2.1 cywee.sensor.api package
`
`cywee.sensor.api is the helper package to convert the sensors data byte array to the corresponding
`
`structures in Java application. It contains four public classes CyWeeMotionData,
`
`CyweeOrientationData, CyweeRawData and CyWeeUIData for corresponding sensor data
`
`types.
`
`
`
`速位互動股份有限公司 8
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`2.2 openSensor
`
`Parameters
`
`No parameters
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Opens the CyWee interface to the Sensor Fusion Manager.
`
`
`
`2.3 closeSensor
`
`Parameters
`
`No parameters
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Closes the CyWee interface to the Sensor Fusion Manager.
`
`
`
`2.4 activateSensorAccelerometer
`
`Parameters
`
`No parameters
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Activate accelerometer sensor polling in the Sensor Fusion Manager
`
`
`
`2.5 deactivateSensorAccelerometer
`
`Parameters
`
`No parameters
`
`Return Value
`
`
`
`速位互動股份有限公司 9
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Deactivate accelerometer sensor polling in the Sensor Fusion Manager
`
`
`
`2.6 activateSensorMagnetic
`
`Parameters
`
`No parameters
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Activate magnetic sensor polling in the Sensor Fusion Manager
`
`
`
`2.7 deactivateSensorMagnetic
`
`Parameters
`
`No parameters
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Deactivate magnetic sensor polling in the Sensor Fusion Manager
`
`
`
`2.8 activateSensorOrientation
`
`Parameters
`
`No parameters
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Activate orientation sensor polling in the Sensor Fusion Manager
`
`
`
`
`
`速位互動股份有限公司 10
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`2.9 deactivateSensorOrientation
`
`Parameters
`
`No parameters
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Deactivate Orientation sensor polling in the Sensor Fusion Manager
`
`
`
`2.10 activateSensorGyroscope
`
`Parameters
`
`No parameters
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Activate Gyroscope sensor polling in the Sensor Fusion Manager
`
`
`
`2.11 deactivateSensorGyroscope
`
`Parameters
`
`No parameters
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Deactivate gyroscope sensor polling in the Sensor Fusion Manager
`
`
`
`2.12 getAllSensorValue
`
`Parameters
`
`No parameters
`
`Return Value
`
`
`
`速位互動股份有限公司 11
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`If the function succeeds, returns all sensors value of the phone as an array of the bytes. The
`
`CyWeeUIData class from cywee.sensor.api helper package must be used to convert the
`
`sensors data byte array to the corresponding structure.
`
`Remarks
`
`Read all sensors values from sensor Fusion Manager.
`
`
`
`2.13 getRawSensorValue
`
`Parameters
`
`No parameters
`
`Return Value
`
`If the function succeeds, returns sensors raw data values as an array of the bytes. The
`
`CyweeRawData class from cywee.sensor.api helper package must be used to convert the
`
`sensors data byte array to the corresponding structure.
`
`Remarks
`
`Read raw data values from sensor Fusion Manager.
`
`
`
`2.14 getOrientationSensorValue
`
`Parameters
`
`No parameters
`
`Return Value
`
`Returns orientation data values as an array of the bytes. The CyweeOrientationData class
`
`from cywee.sensor.api helper package must be used to convert the sensors data byte array
`
`to the corresponding structure.
`
`Remarks
`
`Read orientation data values from Sensor Fusion Manager.
`
`
`
`2.15 getMotionValues
`
`Parameters
`
`No parameters
`
`Return Value
`
`
`
`速位互動股份有限公司 12
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`Returns motion data values as an array of the bytes. The CyWeeMotionData class from
`
`cywee.sensor.api helper package must be used to convert the sensors data byte array to the
`
`corresponding structure.
`
`Remarks
`
`Read motion data values from Sensor Fusion Manager.
`
`
`
`2.16 setMotionThresholdValueFactor
`
`Parameters
`
`The integer value from the range [10: 50]
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Set the motion threshold value factor. CyWee defines the default force threshold for motion
`
`output. When doing the motion, how much force can generate the motion output is defined by CyWee
`
`internal library. If it is too easy to generate the motion output, it can be set to this threshold factor
`
`larger than 1 to let this motion output need more force to generate it. For example, Set 20, it means it
`
`needs (20/10 = 2) twice force to generate the motion output from CyWee’s library. Set 15, it means it
`
`needs (15/10 = 1.5) 1.5 times force to generate the motion output from CyWee’s library.
`
`
`
`2.17 setShakeMotionThresholdValueFactor
`
`Parameters
`
`The integer value from the range [10: 50]
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Set the motion shake threshold value factor. CyWee defines the default force threshold for motion
`
`output. When doing the motion, how much force can generate the motion output is defined by CyWee
`
`internal library. If it is too easy to generate the motion output, it can be set to this threshold factor
`
`larger than 1 to let this motion output need more force to generate it. For example, Set 20, it means it
`
`needs (20/10 = 2) twice force to generate the motion output from CyWee’s library. Set 15, it means it
`
`needs (15/10 = 1.5) 1.5 times force to generate the motion output from CyWee’s library.
`
`
`
`
`
`速位互動股份有限公司 13
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`2.18 resetGyrocalibrationTable
`
`Parameters
`
`No parameters
`
`Return Value
`
`If the function succeeds, the return value is non zero value. If the function fails, the return value
`
`is 0.
`
`Remarks
`
`Reset gyroscope calibration value. This should be set when gyro’s value is in static state, its value
`
`still not 0. This function should be called.
`
`
`
`2.19 getLibVersion
`
`Parameters
`
`No parameters
`
`Return Value
`
`If the function succeeds, the return value is byte array of ASCII characters that represent the
`
`version of the JNI library.
`
`Remarks
`
`Return the current version of the JNI library.
`
`3 Middleware API Description
`
`CyWee provides the API library to access the CyWee sensors data from middleware. Library can
`
`be linked as a shared library to the middleware program. The “CyweeSensorApi.h” header file
`
`declares the prototypes of APIs. “CyweeDataType.h” header file declared the corresponding data
`
`structures which are used by APIs.
`
`
`
`int CYWEE_Data_data_open(void)
`
`Parameters
`
`No parameters
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`
`
`速位互動股份有限公司 14
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`It opens the CyWee interface to the Sensor Fusion Manager. This is the first API that must be
`
`called before any other API can be called.
`
`
`
`int CYWEE_Data_data_close (void)
`
`Parameters
`
`No parameters
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`It closes the interface to the Sensor Fusion Manager. This is the last API that must be called.
`
`
`
`int CYWEE_Control_activate(int handle, int enabled)
`
`Parameters
`
`handle
`
`specifies sensor to enable or disable. It can be one if the following values:
`
`SENSOR_TYPE_ACCELEROMETER 1
`
`SENSOR_TYPE_MAGNETIC_FIELD
`
`SENSOR_TYPE_GYROSCOPE
`
`
`
`SENSOR_TYPE_ORIENTATION
`
`2
`
`3
`
`4
`
`enabled
`
` the flag which specifies to enable or disable the
`
`specified sensor. It can be one of the following values:
`
`ENABLE
`
`DISABLE
`
`1
`
`2
`
`
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`It enables or disables the specified sensor polling in the Sensor Fusion Manager.
`
`
`
`int CYWEE_Data_poll_data_sensor_raw( tCyWeeSensorRawData* data)
`
`Parameters
`
`data
`
` Pointer to sensors raw data structure. On return this structure contains the sensors raw
`
`data.
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`
`
`速位互動股份有限公司 15
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`Remarks
`
`Get the sensors raw data value from Sensor Fusion Manager.
`
`
`
`int CYWEE_Data_poll_data_orientation_angle( tCyWeeOrientationAngleData* data)
`
`Parameters
`
`data
`
` Pointer to orientation angle data structure. On return this structure contains the
`
`orientation angle data.
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Get the orientation angle data from Sensor Fusion Manager.
`
`
`
`int CYWEE_Data_poll_data_motion( tCyWeeMotionData* data)
`
`Parameters
`
`data
`
` Pointer to motion data structure. On return this structure contains the motion data.
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Get the motion data from Sensor Fusion Manager.
`
`
`
`int CYWEE_Data_poll_data_ui( tCyWeeUIData* data)
`
`Parameters
`
`data
`
` Pointer to Cywee UI data structure. On return this structure contains the Cywee UI
`
`data.
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Get the CyWee UI data from Sensor Fusion Manager.
`
`NOTE: It is recommended to call this function and send the all sensors to PC side to combine
`
`with PC application or games through WiFi/Bluetooth.
`
`
`
`int CYWEE_Control_set_motion_threshold_value_factor (int value)
`
`Parameters
`
`value motion threshold factor value. The integer value is from the range [10: 50].
`
`
`
`速位互動股份有限公司 16
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Set the motion API threshold value factor. CyWee defines the default force threshold for motion
`
`output. When doing the motion, how much force can generate the motion output is defined by CyWee
`
`internal library. If it is too easy to generate the motion output, it can be set to this threshold factor
`
`larger than 1 to let this motion output need more force to generate it. For example, Set 20, it means it
`
`needs (20/10 = 2) twice force to generate the motion output from CyWee’s library. Set 15, it means it
`
`needs (15/10 = 1.5) 1.5 times force to generate the motion output from CyWee’s library.
`
`
`
`
`
`int CYWEE_Control_set_shake_motion_threshold_value_factor (int value)
`
`Parameters
`
`value
`
`shake motion threshold factor value. The integer value is from the range [10: 50].
`
`Return Value
`
`If the function succeeds, the return value is nonzero value. If the function fails, the return value is
`
`0.
`
`Remarks
`
`Set the motion API shake threshold value factor. CyWee defines the default force threshold for
`
`motion output. When doing the motion, how much force can generate the motion output is defined by
`
`CyWee internal library. If it is too easy to generate the motion output, it can be set to this threshold
`
`factor larger than 1 to let this motion output need more force to generate it. For example, Set 20, it
`
`means it needs (20/10 = 2) twice force to generate the motion output from CyWee’s library. Set 15, it
`
`means it needs (15/10 = 1.5) 1.5 times force to generate the motion output from CyWee’s library.
`
`
`
`
`
`const char* CYWEE_GetVersion (void)
`
`Return Value
`
`If the function succeeds, the return value is zero terminated string that contains the version.
`
`Remarks
`
`Return the version of the library.
`
`
`
`
`
`速位互動股份有限公司 17
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`3.1 Middleware API data structures
`
`3.1.1 tCyWeeSensorRawData
`
`typedef struct _CyWeeSensorRawData
`
`{
`
`unsigned short
`
`G_Sensor_X;
`
`unsigned short
`
`G_Sensor_Y;
`
`unsigned short
`
`G_Sensor_Z;
`
`
`
`short
`
`short
`
`short
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`E_Comp_MX;
`
`E_Comp_MY;
`
`E_Comp_MZ;
`
`unsigned short
`
`W_X;
`
`unsigned short
`
`W_Y;
`
`unsigned short
`
`W_Z;
`
` }
`
` tCyWeeSensorRawData;
`
`
`
`Members
`
`G sensor: ADI ADI345
`
`G_Sensor_X:
`
` Accelerometer rawdata toward x-axis. Data range: 0 ~ 4096, 2048 is the 0G
`
`output. For CyWee phone’s spec, you must transfer your
`
`data (G_Sensor_X_Output) by using this formula:
`
`G_Sensor_X_Output = ((float)G_Sensor_X – (float) 2048) / (float) 256.0
`
`Uint: G => compared with gravity
`
`Then you’ll see the G_Sensor_X_Output will be like this in
`
`“CySensorDataTest” APK:
`
`
`
`Figure 4: G sensor x output
`
`
`
`
`
`速位互動股份有限公司 18
`
`
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`G_Sensor_Y: Accelerometer rawdata toward y-axis. Data range: 0 ~ 4096, 2048 is the 0G
`
`output. For CyWee phone’s spec, you must transfer your
`
`data (G_Sensor_Y_Output) by using this formula:
`
`G_Sensor_Y_Output = ((float)G_Sensor_Y – (float) 2048) / (float) 256.0
`
`Uint: G => compared with gravity
`
`Then you’ll see the G_Sensor_Y_Output will be like this in
`
`“CySensorDataTest” APK
`
`Figure 5: G sensor y output
`
`
`
`G_Sensor_Z: Accelerometer rawdata toward z-axis. Data range: 0 ~ 4096, 2048 is the 0G
`
`
`
`output. For CyWee phone’s spec, you must transfer your
`
`data(G_Sensor_Z_Output) by using this formula:
`
`G_Sensor_Z_Output = ((float)G_Sensor_Z – (float) 2048) / (float) 256.0
`
`Uint: G => compared with gravity
`
`Then you’ll see the G_Sensor_Z_Output will be like this in
`
`“CySensorDataTest” APK
`
`Figure 6: G sensor z output
`
`
`
` Magnetic sensor: YAMAHA YAS529
`
`E_comp_MX: Magnetic sensor’s rawdata toward x-axis. The magnetic sensor data is
`
`calibrated. For CyWee phone’s spec, you must transfer your
`
`data(E_Comp_MX_Output) by using this formula:
`
`
`
`速位互動股份有限公司 19
`
`
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`E_Comp_MX_Output = E_Comp_MX / 10000
`
`Uint: Gauss
`
`Remark:
`
`Before using this value, make sure that the magnetic sensor calibration is
`
`Done
`
`E_comp_MY: Magnetic sensor’s rawdata toward y-axis. The magnetic sensor data is
`
`calibrated. For CyWee phone’s spec, you must transfer your
`
`data(E_Comp_MY_Output) by using this formula:
`
`E_Comp_MY_Output = E_Comp_MY / 10000
`
`Uint: Gauss
`
`Remark:
`
`Before using this value, make sure that the magnetic sensor calibration is
`
`done
`
`E_comp_MZ: Magnetic sensor’s rawdata toward z-axis. The magnetic sensor data is
`
`calibrated. For CyWee phone’s spec, you must transfer your
`
`data(E_Comp_MZ_Output) by using this formula:
`
`E_Comp_MZ_Output = E_Comp_MZ / 10000
`
`Uint: Gauss
`
`Remark:
`
`Before using this value, make sure that the magnetic sensor calibration is
`
`Done
`
`
`
` Gyro: Invensense IXZ650
`
`W_X:
`
`Gyroscope’s rawdata toward wx-axis. 0 is the static output without any rotation
`
`motion. For CyWee phone’s spec, you must transfer your data (W_X_Output)
`
`by using this formula:
`
`W_X_Output = W_X * 3.141592 / 180
`
`Uint: radian / second
`
`W_Y:
`
`Gyroscope’s rawdata toward wy-axis. 0 is the static output without any rotation
`
`motion. For CyWee phone’s spec, you must transfer your data (W_Y_Output)
`
`by using this formula:
`
`W_Y_Output = W_Y * 3.141592 / 180
`
`Uint: radian / second
`
`W_Z:
`
`Gyroscope’s rawdata toward wz-axis. 0 is the static output without any rotation
`
`motion. For CyWee phone’s spec, you must transfer your data (W_Z_Output)
`
`by using this formula:
`
`W_Z_Output = W_Z * 3.141592 / 180
`
`
`
`速位互動股份有限公司 20
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`Uint: radian / second
`
`
`
`3.1.2 tCyWeeOrientationAngleData
`
`typedef struct _CyWeeOrientationAngleData
`
`{
`
`
`
`short
`
`short
`
`short
`
`short
`
`short
`
`short
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Roll;
`
`Pitch;
`
`Azimuth;
`
`Roll_fast;
`
`Pitch_fast;
`
`Azimuth_fast;
`
`} tCyWeeOrientationAngleData;
`
`
`
`CyWee’s spec orientation definition
`
`
`
`
`
`Members
`
`
`
`Figure 7: CyWee’s spec of orientation
`
`
`
`Azimuth:
`
`
`
`The absolute angle output range is from 0 ~ 360. This output is used for
`
`low angular velocity rotation motion for Azimuth(Yaw) angle rotation.
`
`
`
`速位互動股份有限公司 21
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`
`
`
`
`
`
`
`
`Figure 8: Azimuth (Yaw) absolute angle output
`
`Pitch:
`
`
`
` The absolute angle output range is from -180 ~ 180. This output is used
`
`for low angular velocity rotation motion for Pitch angle rotation.
`
`
`
`
`
`Figure 9: Pitch absolute angle output
`
`
`
`
`
`Roll:
`
`The absolute angle output range is from -90 ~ 90. This output is used for low
`
`angular velocity rotation motion for Roll angle rotation.
`
`
`
`Figure 10: Roll absolute angle output
`
`
`
`Azimuth_fast:
`
`
`
`
`
`The absolute angle output range is from -180 ~ 180. This output is
`
`
`
`速位互動股份有限公司 22
`
`
`
`
`
`
`
`
` Cywee Group Ltd.
`
`
`used for high angular velocity rotation motion for Azimuth angle rotation.
`
`Make sure that the magnetic sensor has been calibrated. Otherwise, this
`
`value will become inaccurate.
`
`
`
`
`
`
`
`
`
`Figure 11: Azimuth_fast absolute angle output
`
`
`
`Pitch_fast: The absolute angle output range is from -90 ~ 90. This output is used for
`
`high angular velocity rotation motion for Pitch angle rotation. Make sure that
`
`the magnetic sensor has been calibrated. Otherwise, this value will become
`
`inaccurate.
`
`
`
`Figure 12: Pitch_fast absolute angle output
`
`
`
`
`
`Roll_fast:
`
` The abso