Revision 75f03d2e

View differences:

Adafruit_BNO055.cpp
2 2
 * @file Adafruit_BNO055.cpp
3 3
 *
4 4
 *  @mainpage Adafruit BNO055 Orientation Sensor
5
 * 
5
 *
6 6
 *  @section intro_sec Introduction
7 7
 *
8
 *    This is a library for the BNO055 orientation sensor
8
 *  This is a library for the BNO055 orientation sensor
9 9
 *
10
 *    Designed specifically to work with the Adafruit BNO055 Breakout.
10
 *  Designed specifically to work with the Adafruit BNO055 Breakout.
11 11
 *
12
 *    Pick one up today in the adafruit shop!
13
 *    ------> https://www.adafruit.com/product/2472
12
 *  Pick one up today in the adafruit shop!
13
 *  ------> https://www.adafruit.com/product/2472
14 14
 *
15
 *    These sensors use I2C to communicate, 2 pins are required to interface.
15
 *  These sensors use I2C to communicate, 2 pins are required to interface.
16 16
 *
17
 *    Adafruit invests time and resources providing this open source code,
18
 *    please support Adafruit andopen-source hardware by purchasing products
19
 *    from Adafruit!
17
 *  Adafruit invests time and resources providing this open source code,
18
 *  please support Adafruit andopen-source hardware by purchasing products
19
 *  from Adafruit!
20 20
 *
21 21
 *  @section author Author
22 22
 *
23 23
 *  K.Townsend (Adafruit Industries)
24 24
 *
25
 *    @section license License
26
 *    MIT license, all text above must be included in any redistribution
25
 *  @section license License
26
 *
27
 *  MIT license, all text above must be included in any redistribution
27 28
 */
28 29

  
29 30
#if ARDUINO >= 100
......
59 60
  /* BNO055 clock stretches for 500us or more! */
60 61
#ifdef ESP8266
61 62
  /* Allow for 1000us of clock stretching */
62
  Wire.setClockStretchLimit(1000); 
63
  Wire.setClockStretchLimit(1000);
63 64
#endif
64 65

  
65 66
  /* Make sure we have the right device */
66 67
  uint8_t id = read8(BNO055_CHIP_ID_ADDR);
67 68
  if (id != BNO055_ID) {
68 69
    /* hold on for boot */
69
    delay(1000); 
70
    delay(1000);
70 71
    id = read8(BNO055_CHIP_ID_ADDR);
71 72
    if (id != BNO055_ID) {
72 73
      /* still not? ok bail */
......
90 91

  
91 92
  write8(BNO055_PAGE_ID_ADDR, 0);
92 93

  
93
  /* Set the output units 
94
  /* Set the output units
94 95
     uint8_t unitsel = (0 << 7) | // Orientation = Android
95 96
                       (0 << 4) | // Temperature = Celsius
96 97
                       (0 << 2) | // Euler = Degrees
......
192 193
     3 = System Iniitalization
193 194
     4 = Executing Self-Test
194 195
     5 = Sensor fusio algorithm running
195
     6 = System running without fusion algorithms 
196
     6 = System running without fusion algorithms
196 197
   */
197 198

  
198 199
  if (system_status != 0)
......
200 201

  
201 202
  /* Self Test Results
202 203
     1 = test passed, 0 = test failed
203
   
204

  
204 205
     Bit 0 = Accelerometer self test
205 206
     Bit 1 = Magnetometer self test
206 207
     Bit 2 = Gyroscope self test
207 208
     Bit 3 = MCU self test
208
   
209
     0x0F = all good! 
209

  
210
     0x0F = all good!
210 211
   */
211 212

  
212 213
  if (self_test_result != 0)
......
223 224
     7 = BNO low power mode not available for selected operat ion mode
224 225
     8 = Accelerometer power mode not available
225 226
     9 = Fusion algorithm configuration error
226
     A = Sensor configuration error 
227
     A = Sensor configuration error
227 228
   */
228 229

  
229 230
  if (system_error != 0)
......
312 313
  y = ((int16_t)buffer[2]) | (((int16_t)buffer[3]) << 8);
313 314
  z = ((int16_t)buffer[4]) | (((int16_t)buffer[5]) << 8);
314 315

  
315
  /*! 
316
  /*!
316 317
   * Convert the value to an appropriate range (section 3.6.4)
317
   * and assign the value to the Vector type 
318
   * and assign the value to the Vector type
318 319
   */
319 320
  switch (vector_type) {
320 321
  case VECTOR_MAGNETOMETER:
......
370 371
   * Assign to Quaternion
371 372
   * See
372 373
   * http://ae-bst.resource.bosch.com/media/products/dokumente/bno055/BST_BNO055_DS000_12~1.pdf
373
   * 3.6.5.5 Orientation (Quaternion)  
374
   * 3.6.5.5 Orientation (Quaternion)
374 375
   */
375 376
  const double scale = (1.0 / (1 << 14));
376 377
  imu::Quaternion quat(scale * w, scale * x, scale * y, scale * z);
......
380 381
/*!
381 382
 *  @brief  Provides the sensor_t data for this sensor
382 383
 *  @param  sensor
383
*/
384
 */
384 385
void Adafruit_BNO055::getSensor(sensor_t *sensor) {
385 386
  /* Clear the sensor_t object */
386 387
  memset(sensor, 0, sizeof(sensor_t));
......
499 500
}
500 501

  
501 502
/*!
502
 *  @brief  Writes an array of calibration values to the sensor's offset registers
503
 *  @brief  Writes an array of calibration values to the sensor's offset
504
 *          registers
503 505
 *  @param  calibData
504 506
 */
505 507
void Adafruit_BNO055::setSensorOffsets(const uint8_t *calibData) {
......
546 548
/*!
547 549
 *  @brief  Writes to the sensor's offset registers from an offset struct
548 550
 *  @param  offsets_type
549
*/
551
 */
550 552
void Adafruit_BNO055::setSensorOffsets(
551 553
    const adafruit_bno055_offsets_t &offsets_type) {
552 554
  adafruit_bno055_opmode_t lastMode = _mode;
Adafruit_BNO055.h
14 14
 *  please support Adafruit andopen-source hardware by purchasing products
15 15
 *  from Adafruit!
16 16
 *
17
 *  K.Townsend (Adafruit Industries)*
17
 *  K.Townsend (Adafruit Industries)
18 18
 *
19 19
 *  MIT license, all text above must be included in any redistribution
20 20
 */

Also available in: Unified diff