use for experiment before the demonstration at open-campus

Dependencies:   FEP ikarashiMDC omni PID R1370

Fork of omni_sample by NagaokaRoboticsClub_mbedTeam

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?

UserRevisionLine numberNew 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