Page 50 - MDP2022-2
P. 50

2.  코드



            컨트롤러  아두이노  코드


            #include  <SoftwareSerial.h>


            //  I2Cdev  and  MPU6050  must  be  installed  as  libraries,  or  else  the  .cpp/.h  files
            //  for  both  classes  must  be  in  the  include  path  of  your  project
            #include  "I2Cdev.h"

            #include  "MPU6050_6Axis_MotionApps20.h"
            //#include  "MPU6050.h"  //  not  necessary  if  using  MotionApps  include  file


            //  Arduino  Wire  library  is  required  if  I2Cdev  I2CDEV_ARDUINO_WIRE  implementation
            //  is  used  in  I2Cdev.h
            #if  I2CDEV_IMPLEMENTATION  ==  I2CDEV_ARDUINO_WIRE
                    #include  "Wire.h"
            #endif

            //  class  default  I2C  address  is  0x68
            //  specific  I2C  addresses  may  be  passed  as  a  parameter  here
            //  AD0  low  =  0x68  (default  for  SparkFun  breakout  and  InvenSense  evaluation  board)
            //  AD0  high  =  0x69
            MPU6050  mpu;
            //MPU6050  mpu(0x69);  //  <--  use  for  AD0  high

            //  uncomment  "OUTPUT_READABLE_QUATERNION"  if  you  want  to  see  the  actual
            //  quaternion  components  in  a  [w,  x,  y,  z]  format  (not  best  for  parsing
            //  on  a  remote  host  such  as  Processing  or  something  though)
            //#define  OUTPUT_READABLE_QUATERNION

            //  uncomment  "OUTPUT_READABLE_EULER"  if  you  want  to  see  Euler  angles
            //  (in  degrees)  calculated  from  the  quaternions  coming  from  the  FIFO.
            //  Note  that  Euler  angles  suffer  from  gimbal  lock  (for  more  info,  see
            //  http://en.wikipedia.org/wiki/Gimbal_lock)
            //#define  OUTPUT_READABLE_EULER

            //  uncomment  "OUTPUT_READABLE_YAWPITCHROLL"  if  you  want  to  see  the  yaw/
            //  pitch/roll  angles  (in  degrees)  calculated  from  the  quaternions  coming
            //  from  the  FIFO.  Note  this  also  requires  gravity  vector  calculations.
            //  Also  note  that  yaw/pitch/roll  angles  suffer  from  gimbal  lock  (for
            //  more  info,  see:  http://en.wikipedia.org/wiki/Gimbal_lock)
            #define  OUTPUT_READABLE_YAWPITCHROLL

            //  uncomment  "OUTPUT_READABLE_REALACCEL"  if  you  want  to  see  acceleration
            //  components  with  gravity  removed.  This  acceleration  reference  frame  is
            //  not  compensated  for  orientation,  so  +X  is  always  +X  according  to  the
            //  sensor,  just  without  the  effects  of  gravity.  If  you  want  acceleration
            //  compensated  for  orientation,  us  OUTPUT_READABLE_WORLDACCEL  instead.
            //#define  OUTPUT_READABLE_REALACCEL

            //  uncomment  "OUTPUT_READABLE_WORLDACCEL"  if  you  want  to  see  acceleration
            //  components  with  gravity  removed  and  adjusted  for  the  world  frame  of
            //  reference  (yaw  is  relative  to  initial  orientation,  since  no  magnetometer
   45   46   47   48   49   50   51   52   53   54   55