use for experiment before the demonstration at open-campus
Dependencies: FEP ikarashiMDC omni PID R1370
Fork of omni_sample by
controller/controller.h@14:1d9ae3128002, 2017-09-05 (annotated)
- Committer:
- tknara
- Date:
- Tue Sep 05 00:41:30 2017 +0000
- Revision:
- 14:1d9ae3128002
- Parent:
- 9:8f9607783d2d
Rotation activate;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tknara | 9:8f9607783d2d | 1 | /** |
tknara | 9:8f9607783d2d | 2 | * @file controller.h |
tknara | 9:8f9607783d2d | 3 | * @brief FEPを使ったコントローラ受信部 |
tknara | 9:8f9607783d2d | 4 | */ |
tknara | 9:8f9607783d2d | 5 | #ifndef CONTROLLER_H |
tknara | 9:8f9607783d2d | 6 | #define CONTROLLER_H |
tknara | 9:8f9607783d2d | 7 | |
tknara | 9:8f9607783d2d | 8 | #include "mbed.h" |
tknara | 14:1d9ae3128002 | 9 | //#include "pin_config.h" |
tknara | 9:8f9607783d2d | 10 | #include <math.h> |
tknara | 9:8f9607783d2d | 11 | |
tknara | 9:8f9607783d2d | 12 | #include "FEP.h" |
tknara | 9:8f9607783d2d | 13 | |
tknara | 9:8f9607783d2d | 14 | #define M_PI 3.141592653589793 |
tknara | 9:8f9607783d2d | 15 | #define ADDR 203 |
tknara | 9:8f9607783d2d | 16 | #define FEP_SUCCESS 0 |
tknara | 9:8f9607783d2d | 17 | #define DATA_SIZE 6 |
tknara | 9:8f9607783d2d | 18 | #define STICK_DIVIDE 255.0 |
tknara | 9:8f9607783d2d | 19 | #define STICK_NEWTRAL 0.2 |
tknara | 9:8f9607783d2d | 20 | #define STICK_NORM_MAX 1.0 |
tknara | 9:8f9607783d2d | 21 | |
tknara | 9:8f9607783d2d | 22 | /** |
tknara | 9:8f9607783d2d | 23 | * @brief FEPを使ったコントローラのクラス |
tknara | 9:8f9607783d2d | 24 | */ |
tknara | 9:8f9607783d2d | 25 | class Controller : public FEP |
tknara | 9:8f9607783d2d | 26 | { |
tknara | 9:8f9607783d2d | 27 | public : |
tknara | 9:8f9607783d2d | 28 | |
tknara | 9:8f9607783d2d | 29 | /** |
tknara | 9:8f9607783d2d | 30 | * @brief コンストラクタ |
tknara | 9:8f9607783d2d | 31 | */ |
tknara | 9:8f9607783d2d | 32 | Controller(); |
tknara | 9:8f9607783d2d | 33 | |
tknara | 9:8f9607783d2d | 34 | /** |
tknara | 9:8f9607783d2d | 35 | * @brief コンストラクタ |
tknara | 9:8f9607783d2d | 36 | * @param FEPtx FEPtx |
tknara | 9:8f9607783d2d | 37 | * @param FEPrx FEPrx |
tknara | 9:8f9607783d2d | 38 | * @param addr address |
tknara | 9:8f9607783d2d | 39 | */ |
tknara | 9:8f9607783d2d | 40 | Controller(PinName FEPtx, PinName FEPrx,int addr); |
tknara | 9:8f9607783d2d | 41 | |
tknara | 9:8f9607783d2d | 42 | /** |
tknara | 9:8f9607783d2d | 43 | * @brief メンバ変数にボタンのステートを格納 |
tknara | 9:8f9607783d2d | 44 | */ |
tknara | 9:8f9607783d2d | 45 | int receiveState(); |
tknara | 9:8f9607783d2d | 46 | |
tknara | 9:8f9607783d2d | 47 | /** |
tknara | 9:8f9607783d2d | 48 | * ボタン1の状態を取得 |
tknara | 9:8f9607783d2d | 49 | * @param number button number |
tknara | 9:8f9607783d2d | 50 | * @return status |
tknara | 9:8f9607783d2d | 51 | */ |
tknara | 9:8f9607783d2d | 52 | bool getButton1(int number); |
tknara | 9:8f9607783d2d | 53 | |
tknara | 9:8f9607783d2d | 54 | /** |
tknara | 9:8f9607783d2d | 55 | * ボタン2の状態を取得 |
tknara | 9:8f9607783d2d | 56 | * @param number button number |
tknara | 9:8f9607783d2d | 57 | * @return status |
tknara | 9:8f9607783d2d | 58 | */ |
tknara | 9:8f9607783d2d | 59 | bool getButton2(int number); |
tknara | 9:8f9607783d2d | 60 | |
tknara | 9:8f9607783d2d | 61 | /** |
tknara | 9:8f9607783d2d | 62 | * スティックの値を取得 |
tknara | 9:8f9607783d2d | 63 | * @param number sticknumber(x, y, x, y) |
tknara | 9:8f9607783d2d | 64 | * @return stick value |
tknara | 9:8f9607783d2d | 65 | */ |
tknara | 9:8f9607783d2d | 66 | double getStick(int number); |
tknara | 9:8f9607783d2d | 67 | |
tknara | 9:8f9607783d2d | 68 | /** |
tknara | 9:8f9607783d2d | 69 | * スチィックの角度を取得 |
tknara | 9:8f9607783d2d | 70 | * @param number left...0 right...1 |
tknara | 9:8f9607783d2d | 71 | * @return radian |
tknara | 9:8f9607783d2d | 72 | */ |
tknara | 9:8f9607783d2d | 73 | float getRadian(int number); |
tknara | 9:8f9607783d2d | 74 | |
tknara | 9:8f9607783d2d | 75 | /** |
tknara | 9:8f9607783d2d | 76 | * スティックの距離を取得 |
tknara | 9:8f9607783d2d | 77 | * @param number left..0 right..1 |
tknara | 9:8f9607783d2d | 78 | * @return norm |
tknara | 9:8f9607783d2d | 79 | */ |
tknara | 9:8f9607783d2d | 80 | float getNorm(int number); |
tknara | 9:8f9607783d2d | 81 | |
tknara | 9:8f9607783d2d | 82 | private : |
tknara | 9:8f9607783d2d | 83 | void setStick(); |
tknara | 9:8f9607783d2d | 84 | |
tknara | 9:8f9607783d2d | 85 | char data[6]; |
tknara | 9:8f9607783d2d | 86 | uint8_t fepTemp; |
tknara | 9:8f9607783d2d | 87 | |
tknara | 9:8f9607783d2d | 88 | protected : |
tknara | 9:8f9607783d2d | 89 | bool button1[7]; |
tknara | 9:8f9607783d2d | 90 | bool button2[6]; |
tknara | 9:8f9607783d2d | 91 | double stick[4]; |
tknara | 9:8f9607783d2d | 92 | double radian[2]; |
tknara | 9:8f9607783d2d | 93 | double norm[2]; |
tknara | 9:8f9607783d2d | 94 | }; |
tknara | 9:8f9607783d2d | 95 | |
tknara | 9:8f9607783d2d | 96 | #endif//CONTROLLER_H |