Takushima Yukimasa
/
R19_ManuTakukAHWGeo
a
main.h@14:e6d16095ffa8, 2019-09-21 (annotated)
- Committer:
- Tom0108
- Date:
- Sat Sep 21 01:06:15 2019 +0000
- Revision:
- 14:e6d16095ffa8
- Parent:
- 13:48c4a4c95e77
- Child:
- 16:829b953d1ac1
- Child:
- 19:340fc4370258
With jamming function
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Tom0108 | 0:761a63c6d020 | 1 | /** |
Tom0108 | 0:761a63c6d020 | 2 | ****************************************************************************** |
Tom0108 | 0:761a63c6d020 | 3 | * @file main.h |
Tom0108 | 0:761a63c6d020 | 4 | * @author You |
Tom0108 | 0:761a63c6d020 | 5 | * @version V?.?.? |
Tom0108 | 0:761a63c6d020 | 6 | * @date Today |
Tom0108 | 0:761a63c6d020 | 7 | * @brief メインのヘッダファイル |
Tom0108 | 0:761a63c6d020 | 8 | ****************************************************************************** |
Tom0108 | 0:761a63c6d020 | 9 | */ |
Tom0108 | 0:761a63c6d020 | 10 | |
Tom0108 | 0:761a63c6d020 | 11 | /* ヘッダ再呼び出し防止のための定義 ------------------------------------------*/ |
Tom0108 | 0:761a63c6d020 | 12 | |
Tom0108 | 0:761a63c6d020 | 13 | #ifndef _MAIN_H_ |
Tom0108 | 0:761a63c6d020 | 14 | #define _MAIN_H_ |
Tom0108 | 0:761a63c6d020 | 15 | |
Tom0108 | 0:761a63c6d020 | 16 | /* ファイル追加 --------------------------------------------------------------*/ |
Tom0108 | 0:761a63c6d020 | 17 | #include "YKNCT.h" |
Tom0108 | 0:761a63c6d020 | 18 | #include "mbed.h" |
Tom0108 | 6:040d001acb12 | 19 | #include "YKNCT_I2C.h" |
Tom0108 | 6:040d001acb12 | 20 | #include <math.h> |
Tom0108 | 10:7c73e1577742 | 21 | #include "BNO055.h" |
Tom0108 | 0:761a63c6d020 | 22 | |
Tom0108 | 0:761a63c6d020 | 23 | /* 定数定義 ------------------------------------------------------------------*/ |
Tom0108 | 6:040d001acb12 | 24 | #define CIRCLE sbdbt.CIRCLE |
Tom0108 | 6:040d001acb12 | 25 | #define SQUARE sbdbt.SQUARE |
Tom0108 | 6:040d001acb12 | 26 | #define CROSS sbdbt.CROSS |
Tom0108 | 6:040d001acb12 | 27 | #define TRIANGLE sbdbt.TRIANGLE |
Tom0108 | 6:040d001acb12 | 28 | #define LEFTkey sbdbt.LEFTkey |
Tom0108 | 6:040d001acb12 | 29 | #define RIGHTkey sbdbt.RIGHTkey |
Tom0108 | 6:040d001acb12 | 30 | #define UPkey sbdbt.UPkey |
Tom0108 | 6:040d001acb12 | 31 | #define DOWNkey sbdbt.DOWNkey |
Tom0108 | 0:761a63c6d020 | 32 | |
Tom0108 | 10:7c73e1577742 | 33 | #define M_PI 3.14159265359 |
Tom0108 | 10:7c73e1577742 | 34 | |
Tom0108 | 0:761a63c6d020 | 35 | /* マクロ定義 ----------------------------------------------------------------*/ |
Tom0108 | 8:b79d21c8178b | 36 | //#define PALETTE(color)\ |
Tom0108 | 8:b79d21c8178b | 37 | //for(int s=0; s<3; s++) LED[s]=color&1<<s |
Tom0108 | 6:040d001acb12 | 38 | #define PALETTE(color)\ |
Tom0108 | 12:7e33e400a48d | 39 | for(int s=0; s<3; s++)\ |
Tom0108 | 14:e6d16095ffa8 | 40 | i2c.Out_Set(Out_Data, s+6, color&1<<s)\ |
Tom0108 | 0:761a63c6d020 | 41 | |
Tom0108 | 0:761a63c6d020 | 42 | /* 型定義 --------------------------------------------------------------------*/ |
Tom0108 | 12:7e33e400a48d | 43 | typedef enum { |
Tom0108 | 12:7e33e400a48d | 44 | test_motor, |
Tom0108 | 12:7e33e400a48d | 45 | test_motor2, |
Tom0108 | 12:7e33e400a48d | 46 | test_motor3, |
Tom0108 | 12:7e33e400a48d | 47 | test_motor4, |
Tom0108 | 12:7e33e400a48d | 48 | test_motor5, |
Tom0108 | 12:7e33e400a48d | 49 | test_motor6, |
Tom0108 | 12:7e33e400a48d | 50 | test_motor7, |
Tom0108 | 12:7e33e400a48d | 51 | test_motor8, |
Tom0108 | 12:7e33e400a48d | 52 | Motor_MAX |
Tom0108 | 0:761a63c6d020 | 53 | } _Motor_; |
Tom0108 | 0:761a63c6d020 | 54 | |
Tom0108 | 0:761a63c6d020 | 55 | |
Tom0108 | 12:7e33e400a48d | 56 | typedef enum { |
Tom0108 | 0:761a63c6d020 | 57 | limit, |
Tom0108 | 0:761a63c6d020 | 58 | limit1, |
Tom0108 | 0:761a63c6d020 | 59 | limit2, |
Tom0108 | 0:761a63c6d020 | 60 | limit3, |
Tom0108 | 0:761a63c6d020 | 61 | limit4, |
Tom0108 | 0:761a63c6d020 | 62 | limit5, |
Tom0108 | 0:761a63c6d020 | 63 | limit6, |
Tom0108 | 0:761a63c6d020 | 64 | limit7, |
Tom0108 | 0:761a63c6d020 | 65 | IN_MAX |
Tom0108 | 12:7e33e400a48d | 66 | } _limit_; |
Tom0108 | 12:7e33e400a48d | 67 | typedef enum { |
Tom0108 | 0:761a63c6d020 | 68 | out1, |
Tom0108 | 0:761a63c6d020 | 69 | out2, |
Tom0108 | 0:761a63c6d020 | 70 | out3, |
Tom0108 | 0:761a63c6d020 | 71 | out4, |
Tom0108 | 0:761a63c6d020 | 72 | ExTowel, |
Tom0108 | 0:761a63c6d020 | 73 | OUT_MAX |
Tom0108 | 12:7e33e400a48d | 74 | } _OUT_; |
Tom0108 | 6:040d001acb12 | 75 | |
Tom0108 | 6:040d001acb12 | 76 | typedef enum { |
Tom0108 | 6:040d001acb12 | 77 | BLACK, |
Tom0108 | 12:7e33e400a48d | 78 | BLUE, |
Tom0108 | 8:b79d21c8178b | 79 | RED, |
Tom0108 | 6:040d001acb12 | 80 | MAGENTA, |
Tom0108 | 12:7e33e400a48d | 81 | GREEN, |
Tom0108 | 12:7e33e400a48d | 82 | CYAN, |
Tom0108 | 12:7e33e400a48d | 83 | YELLOW, |
Tom0108 | 12:7e33e400a48d | 84 | WHITE, |
Tom0108 | 6:040d001acb12 | 85 | |
Tom0108 | 6:040d001acb12 | 86 | COLOR_MAX |
Tom0108 | 6:040d001acb12 | 87 | |
Tom0108 | 6:040d001acb12 | 88 | } _COLOR_; |
Tom0108 | 6:040d001acb12 | 89 | |
Tom0108 | 6:040d001acb12 | 90 | MD_I2C_Data_TypeDef MD_Data[Motor_MAX] = { |
Tom0108 | 6:040d001acb12 | 91 | { 8, 0, 0, 0, {0}}, //足回り |
Tom0108 | 6:040d001acb12 | 92 | { 9, 1, 0, 0, {0}}, |
Tom0108 | 6:040d001acb12 | 93 | {10, 0, 0, 0, {0}}, |
Tom0108 | 6:040d001acb12 | 94 | {11, 1, 0, 0, {0}}, |
Tom0108 | 6:040d001acb12 | 95 | {12, 0, 0, 0, {0}}, // 洗濯物回収 |
Tom0108 | 6:040d001acb12 | 96 | {13, 1, 0, 0, {0}}, // 上下機構 |
Tom0108 | 6:040d001acb12 | 97 | {14, 0, 0, 0, {0}}, // 洗濯物排出 |
Tom0108 | 6:040d001acb12 | 98 | {15, 1, 0, 0, {0}} // 左右移動 |
Tom0108 | 6:040d001acb12 | 99 | }; |
Tom0108 | 6:040d001acb12 | 100 | |
Tom0108 | 6:040d001acb12 | 101 | IN_I2C_Data_TypeDef In_Data[] = { |
Tom0108 | 6:040d001acb12 | 102 | {1,0,0}, // 洗濯物排出(初期位置) |
Tom0108 | 6:040d001acb12 | 103 | {1,1,0}, // 洗濯物排出(停止) |
Tom0108 | 6:040d001acb12 | 104 | {1,2,0}, // 腕(最大 タオル) |
Tom0108 | 6:040d001acb12 | 105 | {1,3,0}, // 腕(初期位置) |
Tom0108 | 6:040d001acb12 | 106 | {3,0,0}, // 上下機構(上) |
Tom0108 | 6:040d001acb12 | 107 | {3,1,0}, // (下) |
Tom0108 | 6:040d001acb12 | 108 | {3,2,0}, // 腕(シーツ兼シャツ) |
Tom0108 | 14:e6d16095ffa8 | 109 | {3,3,0}, // ゾーン切り替え |
Tom0108 | 6:040d001acb12 | 110 | }; |
Tom0108 | 6:040d001acb12 | 111 | |
Tom0108 | 6:040d001acb12 | 112 | OUT_I2C_Data_TypeDef Out_Data[] = { |
Tom0108 | 6:040d001acb12 | 113 | {0,0,0}, // 腕の上下 |
Tom0108 | 6:040d001acb12 | 114 | {0,1,0}, // 爪 |
Tom0108 | 6:040d001acb12 | 115 | {0,2,0}, // タオルの先 |
Tom0108 | 6:040d001acb12 | 116 | {0,3,0}, // タオル展開 |
Tom0108 | 6:040d001acb12 | 117 | {1,0,0}, // タオルの中央 |
Tom0108 | 11:c1a22e2e3534 | 118 | {1,1,0}, // 全体 |
Tom0108 | 12:7e33e400a48d | 119 | {41,0,0}, // g |
Tom0108 | 12:7e33e400a48d | 120 | {41,1,0}, // r |
Tom0108 | 12:7e33e400a48d | 121 | {41,2,0}, // b; |
Tom0108 | 6:040d001acb12 | 122 | }; |
Tom0108 | 12:7e33e400a48d | 123 | /* 変数宣言 ------------------------------------------------------------------*/ |
Tom0108 | 0:761a63c6d020 | 124 | |
Tom0108 | 12:7e33e400a48d | 125 | /* 関数宣言 ------------------------------------------------------------------*/ |
Tom0108 | 6:040d001acb12 | 126 | //メカナム基本動作 |
Tom0108 | 12:7e33e400a48d | 127 | void mecanum_Move(int lx, int ly, int rx); |
Tom0108 | 0:761a63c6d020 | 128 | |
Tom0108 | 6:040d001acb12 | 129 | //角度補正 |
Tom0108 | 6:040d001acb12 | 130 | //n_angle: 現在の角度 |
Tom0108 | 6:040d001acb12 | 131 | //t_angle: 目標の角度 |
Tom0108 | 12:7e33e400a48d | 132 | void AngleCorrection(double n_angle, double t_angle); |
Tom0108 | 0:761a63c6d020 | 133 | |
Tom0108 | 12:7e33e400a48d | 134 | /*クラス宣言-------------------------------------------------------------------*/ |
Tom0108 | 12:7e33e400a48d | 135 | Y_I2C i2c(PB_9, PB_8); // I2C |
Tom0108 | 12:7e33e400a48d | 136 | SBDBT sbdbt(PA_0, PA_1, 9600); // SDBDT |
Tom0108 | 12:7e33e400a48d | 137 | BNO055 bno(PC_9, PA_8); |
Tom0108 | 12:7e33e400a48d | 138 | DigitalOut LED[]= {PA_10,PB_4,PB_5}; |
Tom0108 | 12:7e33e400a48d | 139 | Serial pc(USBTX, USBRX, 115200); |
Tom0108 | 0:761a63c6d020 | 140 | |
Tom0108 | 6:040d001acb12 | 141 | //半自動の時に使う |
Tom0108 | 12:7e33e400a48d | 142 | Timer tim; |
Tom0108 | 0:761a63c6d020 | 143 | |
Tom0108 | 6:040d001acb12 | 144 | //角度補正の時に使う |
Tom0108 | 12:7e33e400a48d | 145 | Timer drift_tim; |
Tom0108 | 12:7e33e400a48d | 146 | |
Tom0108 | 12:7e33e400a48d | 147 | //上下移動の保持に使う |
Tom0108 | 12:7e33e400a48d | 148 | Timer keep_tim[2]; |
Tom0108 | 0:761a63c6d020 | 149 | |
Tom0108 | 0:761a63c6d020 | 150 | #endif /* _MAIN_H_ */ |
Tom0108 | 0:761a63c6d020 | 151 | |
Tom0108 | 12:7e33e400a48d | 152 | /******************************** END OF FILE *********************************/ |