NHK2017Ateamかにろぼ

Dependencies:   2017NHKpin_config mbed FEP HMC6352 MotorDriverController PID QEI omni

classDiagram

    \ ̄\                   / ̄/ 
/l     \  \             /  / lヽ  
| ヽ  ヽ   |           |  /  / | 
\ ` ‐ヽ  ヽ  ●        ●         /  / ‐  / 
  \ __ l  |  ||___|| /  l __ / 
     \  \ /      \/ 
      /\|   人__人  |/\       
    //\|             |/\\     
    //\|             |/\\     
    /     . \_____/         \ 

                               ┏┓        ┏━┓┏┓              
     ┏┓         ┏┓┏┓   ┏┓    ┏┓┗┛     ┏┓ ┗┓┃┗┛              
┏┛┗━┓  ┃┃┃┃    ┃┃┏━┛┗┓┏┓┏┛┗━┓┃┃┏┓┏┓┏━━━┓ 
┗┓┏━┛  ┃┃┗┛    ┃┃┗━┓┏┛┗┛┗┓┏┓┃┗┛┗┛┃┃┗━━━┛    
┏┛┃┏━┓┃┗━━┓┃┃┏━┛┗┓      ┏┛┃┃┃        ┃┃              
┃┏┛┗━┛┗━━┓┃┃┃┃┏┓┏┛      ┗━┛┃┃        ┃┃┏┓          
┃┃┏━━┓┏━━┛┃┃┃┃┗┛┃         ┏┛┃        ┃┃┃┗━━┓    
┗┛┗━━┛┗━━━┛┗┛┗━━┛         ┗━┛        ┗┛┗━━━┛  
Committer:
uchitake
Date:
Tue Sep 05 12:02:47 2017 +0900
Revision:
23:98746361f827
Parent:
22:bb6afe7332c3
remove WheelUnit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
UCHITAKE 6:590c9622ecf1 1 /**
UCHITAKE 6:590c9622ecf1 2 * @file motor_driver.h
UCHITAKE 6:590c9622ecf1 3 * @brief モータ駆動クラス
uchitake 21:b2c1d73b0ee9 4 *
uchitake 21:b2c1d73b0ee9 5 * Example :
uchitake 21:b2c1d73b0ee9 6 * @code
uchitake 21:b2c1d73b0ee9 7 * #include "mbed.h"
uchitake 21:b2c1d73b0ee9 8 * #include "motor_driver.h"
uchitake 21:b2c1d73b0ee9 9 *
uchitake 21:b2c1d73b0ee9 10 * MotorDriver(PB_9, PB_8, PA_5);
uchitake 21:b2c1d73b0ee9 11 * Serial pc(USBTX, USBRX, 115200);
uchitake 21:b2c1d73b0ee9 12 *
uchitake 21:b2c1d73b0ee9 13 * int main()
uchitake 21:b2c1d73b0ee9 14 * {
uchitake 21:b2c1d73b0ee9 15 * while(1) {
uchitake 21:b2c1d73b0ee9 16 * motor.goXY(0.1, 0.1, 0);
uchitake 21:b2c1d73b0ee9 17 * }
uchitake 21:b2c1d73b0ee9 18 * }
uchitake 21:b2c1d73b0ee9 19 * @endcode
UCHITAKE 6:590c9622ecf1 20 */
UCHITAKE 6:590c9622ecf1 21 #ifndef MOTOR_DRIVER_H
UCHITAKE 6:590c9622ecf1 22 #define MOTOR_DRIVER_H
UCHITAKE 6:590c9622ecf1 23
UCHITAKE 6:590c9622ecf1 24 #include "mbed.h"
UCHITAKE 6:590c9622ecf1 25 #include "pin_config.h"
UCHITAKE 6:590c9622ecf1 26
UCHITAKE 6:590c9622ecf1 27 #include "arm_unit.h"
uchitake 22:bb6afe7332c3 28 #include "omni.h"
UCHITAKE 6:590c9622ecf1 29 #include "MotorDriverController.h"
UCHITAKE 6:590c9622ecf1 30
uchitake 22:bb6afe7332c3 31 const int WHEEL_NUMBER = 4;
uchitake 22:bb6afe7332c3 32 const float WHEEL_RADIAN = M_PI / 2.0;
uchitake 22:bb6afe7332c3 33 const int WHEEL_MDC_ADDR = 7;
uchitake 22:bb6afe7332c3 34 const int ARM_MDC_ADDR = 6;
uchitake 22:bb6afe7332c3 35 const int SLIDER_NUMBER = 0;
uchitake 22:bb6afe7332c3 36 const int ARM_NUMBER = 1;
uchitake 22:bb6afe7332c3 37 const int SWORD_NUMBER = 2;
uchitake 22:bb6afe7332c3 38 const int SHAKE_NUMBER = 3;
UCHITAKE 6:590c9622ecf1 39
UCHITAKE 6:590c9622ecf1 40 /**
UCHITAKE 6:590c9622ecf1 41 * @brief モータ駆動クラス
UCHITAKE 6:590c9622ecf1 42 */
UCHITAKE 6:590c9622ecf1 43 class MotorDriver : MDC {
UCHITAKE 6:590c9622ecf1 44 public :
UCHITAKE 6:590c9622ecf1 45 /**
UCHITAKE 6:590c9622ecf1 46 * @brief コンストラクタ
UCHITAKE 6:590c9622ecf1 47 */
UCHITAKE 6:590c9622ecf1 48 MotorDriver();
uchitake 8:3987aa3d016b 49
uchitake 17:6f52f4b1086a 50 MotorDriver(PinName sda, PinName scl, PinName solPin);
uchitake 17:6f52f4b1086a 51
UCHITAKE 6:590c9622ecf1 52 /**
UCHITAKE 6:590c9622ecf1 53 * @brief スライダを動かす
UCHITAKE 6:590c9622ecf1 54 */
UCHITAKE 6:590c9622ecf1 55 void moveSlider(float speed);
uchitake 8:3987aa3d016b 56
UCHITAKE 6:590c9622ecf1 57 /**
UCHITAKE 6:590c9622ecf1 58 * @brief ひみつ道具部分を動かす
UCHITAKE 6:590c9622ecf1 59 */
UCHITAKE 6:590c9622ecf1 60 void destroy(float speed);
uchitake 8:3987aa3d016b 61
uchitake 8:3987aa3d016b 62 /**
uchitake 8:3987aa3d016b 63 * @brief 剣を振る
uchitake 8:3987aa3d016b 64 * @param speed 速度
uchitake 8:3987aa3d016b 65 */
uchitake 8:3987aa3d016b 66 void swing(float speed);
uchitake 8:3987aa3d016b 67
uchitake 8:3987aa3d016b 68 /**
uchitake 13:0908c3707020 69 * @brief ひみつ道具の首振り
uchitake 8:3987aa3d016b 70 * @param speed 速度
uchitake 8:3987aa3d016b 71 */
uchitake 8:3987aa3d016b 72 void shakeHead(float speed);
uchitake 8:3987aa3d016b 73
uchitake 8:3987aa3d016b 74 /**
uchitake 8:3987aa3d016b 75 * @brief 解放機構
uchitake 8:3987aa3d016b 76 */
uchitake 8:3987aa3d016b 77 void release();
uchitake 8:3987aa3d016b 78
UCHITAKE 6:590c9622ecf1 79 /**
uchitake 13:0908c3707020 80 * @brief あしまわりを動かす(X, Y)
UCHITAKE 6:590c9622ecf1 81 */
UCHITAKE 6:590c9622ecf1 82 void goXY(float X, float Y, float moment);
uchitake 13:0908c3707020 83
uchitake 13:0908c3707020 84 /**
uchitake 13:0908c3707020 85 * @brief 足回りを動かす(circular)
uchitake 13:0908c3707020 86 * @param r 半径
uchitake 13:0908c3707020 87 * @param rad 角度
uchitake 13:0908c3707020 88 * @param moment 回転
uchitake 13:0908c3707020 89 */
UCHITAKE 6:590c9622ecf1 90 void goCircular(float r, float rad, float moment);
uchitake 8:3987aa3d016b 91
UCHITAKE 6:590c9622ecf1 92 private :
UCHITAKE 6:590c9622ecf1 93 Arm arm;
uchitake 22:bb6afe7332c3 94 Omni quadOmni;
uchitake 8:3987aa3d016b 95 DigitalOut solenoid;
UCHITAKE 6:590c9622ecf1 96 };
UCHITAKE 6:590c9622ecf1 97
uchitake 8:3987aa3d016b 98 #endif//MOTOR_DRIVER_H