teamALI
/
HB2018
ジャイロ追加前
typedef.h@75:215dd63032d6, 2019-03-22 (annotated)
- Committer:
- YutakaTakagi
- Date:
- Fri Mar 22 00:59:32 2019 +0000
- Revision:
- 75:215dd63032d6
- Parent:
- 57:56b7e66a0c3d
add yaw and gyroZ check for New Arduino Code
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MasashiNomura | 45:3b51dd26b579 | 1 | /** |
MasashiNomura | 45:3b51dd26b579 | 2 | * @file typedef.h |
MasashiNomura | 45:3b51dd26b579 | 3 | * @brief 共通で使用する型の定義 |
MasashiNomura | 45:3b51dd26b579 | 4 | * @author Shirota, Nomura |
MasashiNomura | 45:3b51dd26b579 | 5 | * @date 2018/10/01 ? |
MasashiNomura | 45:3b51dd26b579 | 6 | */ |
MasashiNomura | 45:3b51dd26b579 | 7 | |
takeru0x1103 | 0:ecd925601fc6 | 8 | #ifndef _TYPEDEF_H_ |
takeru0x1103 | 0:ecd925601fc6 | 9 | #define _TYPEDEF_H_ |
takeru0x1103 | 0:ecd925601fc6 | 10 | ///////////////////////////////////////////////////////////////////// |
takeru0x1103 | 18:5aa48aec9cae | 11 | #include "debug.h" |
MasashiNomura | 25:f3a6e7eec9c3 | 12 | #include <bitset> |
takeru0x1103 | 0:ecd925601fc6 | 13 | |
MasashiNomura | 45:3b51dd26b579 | 14 | |
MasashiNomura | 45:3b51dd26b579 | 15 | /** |
MasashiNomura | 45:3b51dd26b579 | 16 | * @def G_CMD_BUF_SIZ |
MasashiNomura | 45:3b51dd26b579 | 17 | * @brief コマンド受け渡しバッファサイズ |
MasashiNomura | 45:3b51dd26b579 | 18 | * @details コマンド解析タスクで使用するコマンド受け渡しバッファサイズの定義 |
MasashiNomura | 45:3b51dd26b579 | 19 | */ |
MasashiNomura | 45:3b51dd26b579 | 20 | |
MasashiNomura | 45:3b51dd26b579 | 21 | /** |
MasashiNomura | 45:3b51dd26b579 | 22 | * @def BS |
MasashiNomura | 46:5074781a28dd | 23 | * @brief Asciiコード BackSpace(後退) |
MasashiNomura | 45:3b51dd26b579 | 24 | */ |
takeru0x1103 | 17:f9610f3cfa1b | 25 | #define BS 0x08 |
MasashiNomura | 45:3b51dd26b579 | 26 | /** |
MasashiNomura | 45:3b51dd26b579 | 27 | * @def HT |
MasashiNomura | 46:5074781a28dd | 28 | * @brief Asciiコード HT(水平タブ) |
MasashiNomura | 45:3b51dd26b579 | 29 | */ |
takeru0x1103 | 17:f9610f3cfa1b | 30 | #define HT 0x09 |
MasashiNomura | 46:5074781a28dd | 31 | /** |
MasashiNomura | 46:5074781a28dd | 32 | * @def TAB |
MasashiNomura | 46:5074781a28dd | 33 | * @brief Asciiコード HT(水平タブ) |
MasashiNomura | 46:5074781a28dd | 34 | */ |
takeru0x1103 | 17:f9610f3cfa1b | 35 | #define TAB 0x09 |
MasashiNomura | 46:5074781a28dd | 36 | /** |
MasashiNomura | 46:5074781a28dd | 37 | * @def LF |
MasashiNomura | 46:5074781a28dd | 38 | * @brief Asciiコード LF(改行) |
MasashiNomura | 46:5074781a28dd | 39 | */ |
takeru0x1103 | 17:f9610f3cfa1b | 40 | #define LF 0x0A |
MasashiNomura | 46:5074781a28dd | 41 | /** |
MasashiNomura | 46:5074781a28dd | 42 | * @def CR |
MasashiNomura | 46:5074781a28dd | 43 | * @brief Asciiコード CR(復帰) |
MasashiNomura | 46:5074781a28dd | 44 | */ |
takeru0x1103 | 17:f9610f3cfa1b | 45 | #define CR 0x0D |
MasashiNomura | 46:5074781a28dd | 46 | /** |
MasashiNomura | 46:5074781a28dd | 47 | * @def SPC |
MasashiNomura | 46:5074781a28dd | 48 | * @brief Asciiコード SPC(スペース) |
MasashiNomura | 46:5074781a28dd | 49 | */ |
takeru0x1103 | 17:f9610f3cfa1b | 50 | #define SPC 0x20 |
MasashiNomura | 46:5074781a28dd | 51 | /** |
MasashiNomura | 46:5074781a28dd | 52 | * @def ESC |
MasashiNomura | 46:5074781a28dd | 53 | * @brief Asciiコード ESC(エスケープ) |
MasashiNomura | 46:5074781a28dd | 54 | */ |
takeru0x1103 | 17:f9610f3cfa1b | 55 | #define ESC 0x1B |
takeru0x1103 | 17:f9610f3cfa1b | 56 | |
MasashiNomura | 46:5074781a28dd | 57 | /** |
MasashiNomura | 46:5074781a28dd | 58 | * @typedef UCHAR |
MasashiNomura | 46:5074781a28dd | 59 | * @brief unsigned char のtypedef |
MasashiNomura | 46:5074781a28dd | 60 | */ |
MasashiNomura | 46:5074781a28dd | 61 | typedef unsigned char UCHAR; |
MasashiNomura | 46:5074781a28dd | 62 | /** |
MasashiNomura | 46:5074781a28dd | 63 | * @typedef UINT16 |
MasashiNomura | 46:5074781a28dd | 64 | * @brief unsigned short のtypedef |
takeru0x1103 | 0:ecd925601fc6 | 65 | */ |
takeru0x1103 | 18:5aa48aec9cae | 66 | typedef unsigned short UINT16; |
MasashiNomura | 46:5074781a28dd | 67 | /** |
MasashiNomura | 46:5074781a28dd | 68 | * @typedef INT16 |
MasashiNomura | 46:5074781a28dd | 69 | * @brief short のtypedef |
MasashiNomura | 46:5074781a28dd | 70 | */ |
takeru0x1103 | 18:5aa48aec9cae | 71 | typedef short INT16; |
MasashiNomura | 46:5074781a28dd | 72 | /** |
MasashiNomura | 46:5074781a28dd | 73 | * @typedef UINT32 |
MasashiNomura | 46:5074781a28dd | 74 | * @brief unsigned int のtypedef |
MasashiNomura | 46:5074781a28dd | 75 | */ |
takeru0x1103 | 18:5aa48aec9cae | 76 | typedef unsigned int UINT32; |
takeru0x1103 | 0:ecd925601fc6 | 77 | |
MasashiNomura | 46:5074781a28dd | 78 | /** |
MasashiNomura | 46:5074781a28dd | 79 | * @typedef typUserSw |
MasashiNomura | 46:5074781a28dd | 80 | * @brief ユーザースイッチ(ハンドル)のレジスタ読み値のビットフィールド共用体 |
MasashiNomura | 46:5074781a28dd | 81 | */ |
MasashiNomura | 22:24c9c2dedca9 | 82 | typedef union{ |
MasashiNomura | 22:24c9c2dedca9 | 83 | UINT16 w; |
MasashiNomura | 22:24c9c2dedca9 | 84 | struct{ |
MasashiNomura | 46:5074781a28dd | 85 | UCHAR brk_l : 1; //!< ブレーキ左 |
MasashiNomura | 46:5074781a28dd | 86 | UCHAR flt_off : 1; //!< エンジンスロットル閉鎖(アイドリング) |
MasashiNomura | 46:5074781a28dd | 87 | UCHAR r_eng_down: 1; //!< リアエンジンスロットルをわずかに閉じる |
MasashiNomura | 46:5074781a28dd | 88 | UCHAR r_eng_up : 1; //!< リアエンジンスロットルをわずかに開く |
MasashiNomura | 57:56b7e66a0c3d | 89 | UCHAR ctrl_sw : 1; //!< リザーブ1 -> ヨー角制御のON/OFF |
MasashiNomura | 46:5074781a28dd | 90 | UCHAR brk_r : 1; //!< ブレーキ右 |
MasashiNomura | 46:5074781a28dd | 91 | UCHAR flt_on : 1; //!< エンジンスロットル開放(全開 浮上) |
MasashiNomura | 46:5074781a28dd | 92 | UCHAR f_eng_down: 1; //!< フロントエンジンスロットルをわずかに閉じる |
MasashiNomura | 46:5074781a28dd | 93 | UCHAR f_eng_up : 1; //!< フロントエンジンスロットルをわずかに開く |
MasashiNomura | 46:5074781a28dd | 94 | UCHAR all_stop : 1; //!< すべてのモーターストップ&エンジンスロットル閉鎖(アイドリング)--> 不使用 |
MasashiNomura | 22:24c9c2dedca9 | 95 | }bf; |
MasashiNomura | 22:24c9c2dedca9 | 96 | }typUserSw; |
MasashiNomura | 22:24c9c2dedca9 | 97 | |
MasashiNomura | 46:5074781a28dd | 98 | /** |
MasashiNomura | 50:76413e8e073d | 99 | * @typedef typSwCounter |
MasashiNomura | 50:76413e8e073d | 100 | * @brief ユーザースイッチ(ハンドル)のチャタリング防止用カウンターとフラグの共用体 |
MasashiNomura | 50:76413e8e073d | 101 | */ |
MasashiNomura | 50:76413e8e073d | 102 | typedef union{ |
MasashiNomura | 50:76413e8e073d | 103 | UINT16 w; |
MasashiNomura | 50:76413e8e073d | 104 | struct{ |
MasashiNomura | 50:76413e8e073d | 105 | bool flg : 1; //!< SW押されたフラグ |
MasashiNomura | 50:76413e8e073d | 106 | UINT16 cnt : 15; //!< カウンター |
MasashiNomura | 50:76413e8e073d | 107 | }bf; |
MasashiNomura | 50:76413e8e073d | 108 | }typSwCounter; |
MasashiNomura | 50:76413e8e073d | 109 | |
MasashiNomura | 50:76413e8e073d | 110 | /** |
MasashiNomura | 48:71aec693a7dc | 111 | * @enum ePIDMode |
MasashiNomura | 48:71aec693a7dc | 112 | * @brief 使用するPIDアルゴリズムと実行のON/OFFを表すENUM |
MasashiNomura | 48:71aec693a7dc | 113 | */ |
MasashiNomura | 48:71aec693a7dc | 114 | enum ePIDMode{ |
MasashiNomura | 48:71aec693a7dc | 115 | PID_0_OFF = 0, //!< 高木さん修正版PID FB値計算のみ |
MasashiNomura | 48:71aec693a7dc | 116 | PID_1_OFF, //!< PID+torgue FB値計算のみ |
MasashiNomura | 48:71aec693a7dc | 117 | PID_0_ON, //!< 高木さん修正版PID ON |
MasashiNomura | 48:71aec693a7dc | 118 | PID_1_ON, //!< PID+torgue ON |
MasashiNomura | 48:71aec693a7dc | 119 | }; |
MasashiNomura | 48:71aec693a7dc | 120 | |
MasashiNomura | 48:71aec693a7dc | 121 | /** |
MasashiNomura | 46:5074781a28dd | 122 | * @typedef typPidPara |
MasashiNomura | 46:5074781a28dd | 123 | * @brief yaw回転制御用パラメータ構造体 コマンド設定用 |
MasashiNomura | 46:5074781a28dd | 124 | */ |
MasashiNomura | 24:c5945aaae777 | 125 | typedef struct{ |
MasashiNomura | 46:5074781a28dd | 126 | float PP; //!< アウターループP制御系数 |
MasashiNomura | 46:5074781a28dd | 127 | float P; //!< インナーループP制御系数 |
MasashiNomura | 46:5074781a28dd | 128 | float I; //!< インナーループI制御系数 |
MasashiNomura | 46:5074781a28dd | 129 | float D; //!< インナーループD制御系数 |
MasashiNomura | 46:5074781a28dd | 130 | float IMax; //!< 積分上限 |
MasashiNomura | 46:5074781a28dd | 131 | float IMin; //!< 積分下限 |
MasashiNomura | 46:5074781a28dd | 132 | float V; //!< 機体の目標トルク算出用係数K velosity |
MasashiNomura | 48:71aec693a7dc | 133 | ePIDMode mode; |
MasashiNomura | 24:c5945aaae777 | 134 | }typPidPara; |
MasashiNomura | 24:c5945aaae777 | 135 | |
MasashiNomura | 46:5074781a28dd | 136 | // //モーターのパラメータ構造体 |
MasashiNomura | 46:5074781a28dd | 137 | // typedef struct{ |
MasashiNomura | 46:5074781a28dd | 138 | // //UCHAR num; |
MasashiNomura | 46:5074781a28dd | 139 | // //INT16 offset; |
MasashiNomura | 46:5074781a28dd | 140 | // INT16 limit_hi; |
MasashiNomura | 46:5074781a28dd | 141 | // INT16 limit_low; |
MasashiNomura | 46:5074781a28dd | 142 | // }typMotPara; |
MasashiNomura | 24:c5945aaae777 | 143 | |
MasashiNomura | 46:5074781a28dd | 144 | /** |
MasashiNomura | 46:5074781a28dd | 145 | * @enum DIR_TYPE |
MasashiNomura | 46:5074781a28dd | 146 | * @brief 回転方向を表すENUM |
MasashiNomura | 46:5074781a28dd | 147 | */ |
MasashiNomura | 27:ff63c23bc689 | 148 | enum DIR_TYPE { |
MasashiNomura | 46:5074781a28dd | 149 | CW, //!< +方向 |
MasashiNomura | 46:5074781a28dd | 150 | CCW, //!< -方向 |
MasashiNomura | 46:5074781a28dd | 151 | UNK, //!< 不定 |
MasashiNomura | 27:ff63c23bc689 | 152 | }; |
MasashiNomura | 46:5074781a28dd | 153 | /** |
MasashiNomura | 46:5074781a28dd | 154 | * @enum DIR_ATT_TYPE |
MasashiNomura | 46:5074781a28dd | 155 | * @brief 回転方向が目標に近づいているのかどうかを表すENUM |
MasashiNomura | 46:5074781a28dd | 156 | */ |
MasashiNomura | 27:ff63c23bc689 | 157 | enum DIR_ATT_TYPE{ |
MasashiNomura | 46:5074781a28dd | 158 | CLOSING, //!< 近づく方向 |
MasashiNomura | 46:5074781a28dd | 159 | GO_AWAY, //!< 遠のく方向 |
MasashiNomura | 46:5074781a28dd | 160 | UNK_DIR, //!< 不定 |
MasashiNomura | 27:ff63c23bc689 | 161 | }; |
MasashiNomura | 46:5074781a28dd | 162 | |
MasashiNomura | 46:5074781a28dd | 163 | /** |
MasashiNomura | 46:5074781a28dd | 164 | * @typedef TypeAttData |
MasashiNomura | 46:5074781a28dd | 165 | * @brief ヨー角制御のためのログ用データの構造体 未使用 |
MasashiNomura | 46:5074781a28dd | 166 | */ |
MasashiNomura | 27:ff63c23bc689 | 167 | typedef struct{ |
MasashiNomura | 27:ff63c23bc689 | 168 | float tarAng; //ターゲット角度 |
MasashiNomura | 27:ff63c23bc689 | 169 | float curAng; //現在の角度 |
MasashiNomura | 27:ff63c23bc689 | 170 | float curAngVelo; //角速度 |
MasashiNomura | 27:ff63c23bc689 | 171 | DIR_TYPE dir; //回転方向 |
MasashiNomura | 27:ff63c23bc689 | 172 | DIR_ATT_TYPE dir_att; //ターゲット角度に向かっているかどうかの方向 |
MasashiNomura | 27:ff63c23bc689 | 173 | }TypeAttData; |
MasashiNomura | 27:ff63c23bc689 | 174 | |
MasashiNomura | 46:5074781a28dd | 175 | // typedef std::bitset<4> typFlg4Mot; |
takeru0x1103 | 0:ecd925601fc6 | 176 | ///////////////////////////////////////////////////////////////////// |
takeru0x1103 | 0:ecd925601fc6 | 177 | #endif |