交流ロボコン

Dependencies:   FEP

Dependents:   kourobo_Controller_FEP199_198 kourobo_controller_FEP209_208 kourobo2019 kouroboA_2019 ... more

Committer:
number_key
Date:
Mon Jan 15 09:21:59 2018 +0000
Revision:
0:875532e626ee
compactControllerReciever

Who changed what in which revision?

UserRevisionLine numberNew contents of line
number_key 0:875532e626ee 1 /**
number_key 0:875532e626ee 2 * @file controller.h
number_key 0:875532e626ee 3 * @brief FEPを使ったコントローラ受信部
number_key 0:875532e626ee 4 *
number_key 0:875532e626ee 5 * Example :
number_key 0:875532e626ee 6 * @code
number_key 0:875532e626ee 7 * #include "mbed.h"
number_key 0:875532e626ee 8 * #include "controller.h"
number_key 0:875532e626ee 9 *
number_key 0:875532e626ee 10 * Controller pad(PA_9, PA_10, 200);
number_key 0:875532e626ee 11 * Serial pc(USBTX, USBRX, 115200);
number_key 0:875532e626ee 12 *
number_key 0:875532e626ee 13 * int main()
number_key 0:875532e626ee 14 * {
number_key 0:875532e626ee 15 * while(1) {
number_key 0:875532e626ee 16 * if(pad.receiveState()) {
number_key 0:875532e626ee 17 * for(int i = 0; i < 7; i++) pc.printf("%d, ", pad.getButton1(i));
number_key 0:875532e626ee 18 * for(int i = 0; i < 6; i++) pc.printf("%d, ", pad.getButton2(i));
number_key 0:875532e626ee 19 * pc.printf("\r\n");
number_key 0:875532e626ee 20 * } else {
number_key 0:875532e626ee 21 * pc.printf("ERROR\n\r");
number_key 0:875532e626ee 22 * }
number_key 0:875532e626ee 23 * }
number_key 0:875532e626ee 24 * }
number_key 0:875532e626ee 25 * @endcode
number_key 0:875532e626ee 26 */
number_key 0:875532e626ee 27 #ifndef CONTROLLER_H
number_key 0:875532e626ee 28 #define CONTROLLER_H
number_key 0:875532e626ee 29
number_key 0:875532e626ee 30 #include "mbed.h"
number_key 0:875532e626ee 31 #include <math.h>
number_key 0:875532e626ee 32
number_key 0:875532e626ee 33 #include "FEP.h"
number_key 0:875532e626ee 34
number_key 0:875532e626ee 35 // const double M_PI = 3.141592653589793;
number_key 0:875532e626ee 36 const int ADDR = 203;
number_key 0:875532e626ee 37 const bool FEP_SUCCESS =0;
number_key 0:875532e626ee 38 const int DATA_SIZE = 6;
number_key 0:875532e626ee 39 const float STICK_DIVIDE = 255.0;
number_key 0:875532e626ee 40 const float STICK_NEWTRAL = 0.1;
number_key 0:875532e626ee 41 const float STICK_NORM_MAX =1.0;
number_key 0:875532e626ee 42
number_key 0:875532e626ee 43 /**
number_key 0:875532e626ee 44 * @brief FEPを使ったコントローラのクラス
number_key 0:875532e626ee 45 */
number_key 0:875532e626ee 46 class Controller : public FEP
number_key 0:875532e626ee 47 {
number_key 0:875532e626ee 48 public :
number_key 0:875532e626ee 49 /**
number_key 0:875532e626ee 50 * @brief コンストラクタ
number_key 0:875532e626ee 51 * @param FEPtx FEPtx
number_key 0:875532e626ee 52 * @param FEPrx FEPrx
number_key 0:875532e626ee 53 * @param addr address
number_key 0:875532e626ee 54 */
number_key 0:875532e626ee 55 Controller(PinName FEPtx, PinName FEPrx,int addr);
number_key 0:875532e626ee 56
number_key 0:875532e626ee 57 /**
number_key 0:875532e626ee 58 * @brief メンバ変数にボタンのステートを格納
number_key 0:875532e626ee 59 */
number_key 0:875532e626ee 60 bool receiveState();
number_key 0:875532e626ee 61
number_key 0:875532e626ee 62 /**
number_key 0:875532e626ee 63 * ボタン1の状態を取得
number_key 0:875532e626ee 64 * @param number button number
number_key 0:875532e626ee 65 * @return status
number_key 0:875532e626ee 66 */
number_key 0:875532e626ee 67 bool getButton1(int number) const;
number_key 0:875532e626ee 68
number_key 0:875532e626ee 69 /**
number_key 0:875532e626ee 70 * ボタン2の状態を取得
number_key 0:875532e626ee 71 * @param number button number
number_key 0:875532e626ee 72 * @return status
number_key 0:875532e626ee 73 */
number_key 0:875532e626ee 74 bool getButton2(int number) const;
number_key 0:875532e626ee 75
number_key 0:875532e626ee 76 /**
number_key 0:875532e626ee 77 * スティックの値を取得
number_key 0:875532e626ee 78 * @param number sticknumber(x, y, x, y)
number_key 0:875532e626ee 79 * @return stick value
number_key 0:875532e626ee 80 */
number_key 0:875532e626ee 81 float getStick(int number) const;
number_key 0:875532e626ee 82
number_key 0:875532e626ee 83 /**
number_key 0:875532e626ee 84 * スチィックの角度を取得
number_key 0:875532e626ee 85 * @param number left...0 right...1
number_key 0:875532e626ee 86 * @return radian
number_key 0:875532e626ee 87 */
number_key 0:875532e626ee 88 float getRadian(int number) const;
number_key 0:875532e626ee 89
number_key 0:875532e626ee 90 /**
number_key 0:875532e626ee 91 * スティックの距離を取得
number_key 0:875532e626ee 92 * @param number left..0 right..1
number_key 0:875532e626ee 93 * @return norm
number_key 0:875532e626ee 94 */
number_key 0:875532e626ee 95 float getNorm(int number) const;
number_key 0:875532e626ee 96
number_key 0:875532e626ee 97 private :
number_key 0:875532e626ee 98 void setStick();
number_key 0:875532e626ee 99
number_key 0:875532e626ee 100 char data[6];
number_key 0:875532e626ee 101 uint8_t fepTemp;
number_key 0:875532e626ee 102
number_key 0:875532e626ee 103 protected :
number_key 0:875532e626ee 104 bool button1[7];
number_key 0:875532e626ee 105 bool button2[6];
number_key 0:875532e626ee 106 double stick[4];
number_key 0:875532e626ee 107 double radian[2];
number_key 0:875532e626ee 108 double norm[2];
number_key 0:875532e626ee 109 };
number_key 0:875532e626ee 110
number_key 0:875532e626ee 111 #endif//CONTROLLER_H