Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@3:2c2276646a5c, 2020-11-22 (annotated)
- Committer:
- DiGengengen
- Date:
- Sun Nov 22 12:03:42 2020 +0000
- Revision:
- 3:2c2276646a5c
- Parent:
- 2:1ae5e25618e0
- Child:
- 4:ba166f7b2b8f
first commit()
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kintoki231 | 0:dde37cabc667 | 1 | #include "mbed.h" |
| DiGengengen | 3:2c2276646a5c | 2 | #include "IWCMD.h" |
| DiGengengen | 3:2c2276646a5c | 3 | |
| DiGengengen | 3:2c2276646a5c | 4 | /* 設定 */ |
| DiGengengen | 3:2c2276646a5c | 5 | const int kModuleID = 1; // コントロールモジュールのID(い今のところ1だけ) |
| DiGengengen | 3:2c2276646a5c | 6 | // Servo pulsewidth MIN MID MAX |
| DiGengengen | 3:2c2276646a5c | 7 | double Servo_1_pulthwidth_range[3] = {0.0010, 0.0015, 0.0020}; |
| DiGengengen | 3:2c2276646a5c | 8 | double Servo_2_pulthwidth_range[3] = {0.0010, 0.0015, 0.0020}; |
| DiGengengen | 3:2c2276646a5c | 9 | double Servo_3_pulthwidth_range[3] = {0.0010, 0.0015, 0.0020}; |
| DiGengengen | 3:2c2276646a5c | 10 | double Servo_4_pulthwidth_range[3] = {0.0010, 0.0015, 0.0020}; |
| DiGengengen | 3:2c2276646a5c | 11 | double Servo_5_pulthwidth_range[3] = {0.0010, 0.0015, 0.0020}; |
| DiGengengen | 3:2c2276646a5c | 12 | double Servo_6_pulthwidth_range[3] = {0.0010, 0.0015, 0.0020}; |
| DiGengengen | 3:2c2276646a5c | 13 | |
| DiGengengen | 3:2c2276646a5c | 14 | |
| DiGengengen | 3:2c2276646a5c | 15 | /* 時間設定 */ |
| DiGengengen | 3:2c2276646a5c | 16 | /* WAIT_TIME_PM_REPLY + WAIT_TIME_PC_CMD > WDT_PERIOD => 接続状態でもWDTが必ず発動. |
| DiGengengen | 3:2c2276646a5c | 17 | * WDT_PERIOD/2 < WAIT_TIME_PM_REPLY + WAIT_TIME_PC_CMD < WDT_PERIOD => 1or2回接続確認に失敗するとWDTが発動. |
| DiGengengen | 3:2c2276646a5c | 18 | * WDT_PERIOD/(N+1) < WAIT_TIME_PM_REPLY + WAIT_TIME_PC_CMD < WDT_PERIOD/N => N回以上接続確認に失敗するとWDTが発動するかも. |
| DiGengengen | 3:2c2276646a5c | 19 | */ |
| DiGengengen | 3:2c2276646a5c | 20 | const float WAIT_TIME_PM_REPLY = 0.2f; // PMの接続確認を待機する時間.xbeeの通信時間を考えて十分に長くとるべし.しかしこの時間はPCからの操作を受け付けないのでできるだけ短いほうが望ましい. |
| DiGengengen | 3:2c2276646a5c | 21 | const float WAIT_TIME_PC_CMD = 3.0f; // PCからの命令を待機する時間.長いほうがより長い時間PCからのコマンドを受け付けるが,WDTの周期に注意. |
| DiGengengen | 3:2c2276646a5c | 22 | |
| DiGengengen | 3:2c2276646a5c | 23 | |
| DiGengengen | 3:2c2276646a5c | 24 | |
| kintoki231 | 0:dde37cabc667 | 25 | |
| kintoki231 | 0:dde37cabc667 | 26 | /* ピン設定 */ |
| DiGengengen | 3:2c2276646a5c | 27 | Serial pc(USBTX, USBRX, 9600); |
| DiGengengen | 3:2c2276646a5c | 28 | Serial xbee(PA_9, PA_10, 9600); |
| DiGengengen | 3:2c2276646a5c | 29 | DigitalOut xbee_reset(PA_1); |
| kintoki231 | 0:dde37cabc667 | 30 | DigitalOut led[] = { |
| kintoki231 | 0:dde37cabc667 | 31 | DigitalOut(PB_1), |
| kintoki231 | 0:dde37cabc667 | 32 | DigitalOut(PF_0), |
| kintoki231 | 0:dde37cabc667 | 33 | DigitalOut(PF_1), |
| DiGengengen | 3:2c2276646a5c | 34 | }; |
| kintoki231 | 0:dde37cabc667 | 35 | |
| DiGengengen | 3:2c2276646a5c | 36 | PwmOut Servo_1(PA_8); |
| DiGengengen | 3:2c2276646a5c | 37 | // PwmOut Servo_2(PA_0); // us_tickerにてTIM2を利用中のため使用不可 |
| DiGengengen | 3:2c2276646a5c | 38 | DigitalOut Servo_2(PA_0); |
| DiGengengen | 3:2c2276646a5c | 39 | PwmOut Servo_3(PA_6_ALT0); |
| DiGengengen | 3:2c2276646a5c | 40 | PwmOut Servo_4(PA_3); |
| DiGengengen | 3:2c2276646a5c | 41 | PwmOut Servo_5(PB_4); |
| DiGengengen | 3:2c2276646a5c | 42 | PwmOut Servo_6(PA_7_ALT1); |
| kintoki231 | 0:dde37cabc667 | 43 | |
| kintoki231 | 0:dde37cabc667 | 44 | |
| kintoki231 | 0:dde37cabc667 | 45 | |
| DiGengengen | 3:2c2276646a5c | 46 | /* タイマー設定 */ |
| DiGengengen | 3:2c2276646a5c | 47 | Timer tim; |
| DiGengengen | 3:2c2276646a5c | 48 | Ticker s2_pwm_tick; |
| DiGengengen | 3:2c2276646a5c | 49 | Timeout s2_pwm_timo; |
| kintoki231 | 0:dde37cabc667 | 50 | |
| kintoki231 | 0:dde37cabc667 | 51 | |
| DiGengengen | 3:2c2276646a5c | 52 | /* グローバル変数 */ |
| DiGengengen | 3:2c2276646a5c | 53 | double s2_pulsewidth_curr = 0.0015; |
| kintoki231 | 0:dde37cabc667 | 54 | |
| kintoki231 | 0:dde37cabc667 | 55 | |
| DiGengengen | 3:2c2276646a5c | 56 | /* プロトタイプ宣言 */ |
| DiGengengen | 3:2c2276646a5c | 57 | void pwm_init(); |
| DiGengengen | 3:2c2276646a5c | 58 | void xbee_init(); |
| DiGengengen | 3:2c2276646a5c | 59 | void PM_checkconnection(int); |
| DiGengengen | 3:2c2276646a5c | 60 | void transmission_xbee2pc_wait_for(float); |
| DiGengengen | 3:2c2276646a5c | 61 | void Servo_2_off(); |
| DiGengengen | 3:2c2276646a5c | 62 | void Servo_2_on(); |
| DiGengengen | 3:2c2276646a5c | 63 | void Servo_2_pwm_interrupt(); |
| DiGengengen | 3:2c2276646a5c | 64 | void Servo_2_period_ms(int); |
| DiGengengen | 3:2c2276646a5c | 65 | void Servo_2_pulsewidth(double); |
| DiGengengen | 3:2c2276646a5c | 66 | void cmd_exe_wait_for(float); |
| DiGengengen | 3:2c2276646a5c | 67 | void cmd_exe(char); |
| DiGengengen | 3:2c2276646a5c | 68 | void reset_all_motors(); |
| DiGengengen | 3:2c2276646a5c | 69 | |
| DiGengengen | 3:2c2276646a5c | 70 | |
| DiGengengen | 3:2c2276646a5c | 71 | Timer opt_tim; |
| kintoki231 | 0:dde37cabc667 | 72 | |
| DiGengengen | 3:2c2276646a5c | 73 | /* メイン文 */ |
| DiGengengen | 3:2c2276646a5c | 74 | int main(){ |
| DiGengengen | 3:2c2276646a5c | 75 | // 初期化 |
| DiGengengen | 3:2c2276646a5c | 76 | pwm_init(); |
| DiGengengen | 3:2c2276646a5c | 77 | xbee_init(); |
| DiGengengen | 3:2c2276646a5c | 78 | |
| DiGengengen | 3:2c2276646a5c | 79 | wait(1); |
| DiGengengen | 3:2c2276646a5c | 80 | led[0] = 1; |
| DiGengengen | 3:2c2276646a5c | 81 | |
| DiGengengen | 3:2c2276646a5c | 82 | // ループ |
| DiGengengen | 3:2c2276646a5c | 83 | while(1){ |
| DiGengengen | 3:2c2276646a5c | 84 | pc.printf("CM : %02d\n", kModuleID); |
| DiGengengen | 3:2c2276646a5c | 85 | // PM1接続確認 |
| DiGengengen | 3:2c2276646a5c | 86 | PM_checkconnection(1); // PM1に接続確認 |
| DiGengengen | 3:2c2276646a5c | 87 | transmission_xbee2pc_wait_for(WAIT_TIME_PM_REPLY); // xbeeからの受信待機 |
| DiGengengen | 3:2c2276646a5c | 88 | |
| DiGengengen | 3:2c2276646a5c | 89 | // コマンド実行 |
| DiGengengen | 3:2c2276646a5c | 90 | cmd_exe_wait_for(WAIT_TIME_PC_CMD/2.0f); // PCからのコマンド待機 |
| DiGengengen | 3:2c2276646a5c | 91 | |
| DiGengengen | 3:2c2276646a5c | 92 | // PM2接続確認 |
| DiGengengen | 3:2c2276646a5c | 93 | PM_checkconnection(2); // PM2に接続確認 |
| DiGengengen | 3:2c2276646a5c | 94 | transmission_xbee2pc_wait_for(WAIT_TIME_PM_REPLY); // xbeeからの受信待機 |
| DiGengengen | 3:2c2276646a5c | 95 | |
| DiGengengen | 3:2c2276646a5c | 96 | // コマンド実行 |
| DiGengengen | 3:2c2276646a5c | 97 | cmd_exe_wait_for(WAIT_TIME_PC_CMD/2.0f); // PCからのコマンド待機 |
| kintoki231 | 0:dde37cabc667 | 98 | } |
| kintoki231 | 0:dde37cabc667 | 99 | } |
| kintoki231 | 0:dde37cabc667 | 100 | |
| DiGengengen | 3:2c2276646a5c | 101 | /* PWM初期化 */ |
| DiGengengen | 3:2c2276646a5c | 102 | void pwm_init(){ |
| kintoki231 | 0:dde37cabc667 | 103 | Servo_1.period_ms(20); |
| DiGengengen | 3:2c2276646a5c | 104 | Servo_2_period_ms(20); |
| kintoki231 | 0:dde37cabc667 | 105 | Servo_3.period_ms(20); |
| kintoki231 | 0:dde37cabc667 | 106 | Servo_4.period_ms(20); |
| kintoki231 | 0:dde37cabc667 | 107 | Servo_5.period_ms(20); |
| kintoki231 | 0:dde37cabc667 | 108 | Servo_6.period_ms(20); |
| DiGengengen | 3:2c2276646a5c | 109 | reset_all_motors(); |
| DiGengengen | 3:2c2276646a5c | 110 | } |
| DiGengengen | 3:2c2276646a5c | 111 | |
| DiGengengen | 3:2c2276646a5c | 112 | /* xbee初期化 */ |
| DiGengengen | 3:2c2276646a5c | 113 | void xbee_init(){ |
| DiGengengen | 3:2c2276646a5c | 114 | xbee_reset = 1; |
| DiGengengen | 3:2c2276646a5c | 115 | } |
| DiGengengen | 3:2c2276646a5c | 116 | |
| DiGengengen | 3:2c2276646a5c | 117 | |
| DiGengengen | 3:2c2276646a5c | 118 | /* PMとの接続確認,PMのWDT更新 */ |
| DiGengengen | 3:2c2276646a5c | 119 | void PM_checkconnection(int id){ |
| DiGengengen | 3:2c2276646a5c | 120 | if(id == 1){ |
| DiGengengen | 3:2c2276646a5c | 121 | xbee.putc(IWCMD_PM1_CCO); |
| DiGengengen | 3:2c2276646a5c | 122 | }else if(id == 2){ |
| DiGengengen | 3:2c2276646a5c | 123 | xbee.putc(IWCMD_PM2_CCO); |
| DiGengengen | 3:2c2276646a5c | 124 | } |
| DiGengengen | 3:2c2276646a5c | 125 | } |
| DiGengengen | 3:2c2276646a5c | 126 | |
| kintoki231 | 0:dde37cabc667 | 127 | |
| DiGengengen | 3:2c2276646a5c | 128 | /* wait_time秒間,xbeeからの通信を受信してPCに表示 */ |
| DiGengengen | 3:2c2276646a5c | 129 | void transmission_xbee2pc_wait_for(float wait_time){ |
| DiGengengen | 3:2c2276646a5c | 130 | tim.reset(); |
| DiGengengen | 3:2c2276646a5c | 131 | tim.start(); |
| DiGengengen | 3:2c2276646a5c | 132 | while(tim.read() < wait_time){ |
| DiGengengen | 3:2c2276646a5c | 133 | if(xbee.readable()){ |
| DiGengengen | 3:2c2276646a5c | 134 | pc.putc(xbee.getc()); |
| DiGengengen | 3:2c2276646a5c | 135 | } |
| DiGengengen | 3:2c2276646a5c | 136 | } |
| DiGengengen | 3:2c2276646a5c | 137 | tim.stop(); |
| DiGengengen | 3:2c2276646a5c | 138 | } |
| DiGengengen | 3:2c2276646a5c | 139 | |
| kintoki231 | 0:dde37cabc667 | 140 | |
| DiGengengen | 3:2c2276646a5c | 141 | /* wait_time秒間,PCからの通信を受信してコマンド実行 */ |
| DiGengengen | 3:2c2276646a5c | 142 | void cmd_exe_wait_for(float wait_time){ |
| DiGengengen | 3:2c2276646a5c | 143 | tim.reset(); |
| DiGengengen | 3:2c2276646a5c | 144 | tim.start(); |
| DiGengengen | 3:2c2276646a5c | 145 | while(tim.read() < wait_time){ |
| DiGengengen | 3:2c2276646a5c | 146 | if(pc.readable()){ |
| DiGengengen | 3:2c2276646a5c | 147 | cmd_exe(pc.getc()); |
| DiGengengen | 3:2c2276646a5c | 148 | } |
| DiGengengen | 3:2c2276646a5c | 149 | } |
| DiGengengen | 3:2c2276646a5c | 150 | tim.stop(); |
| DiGengengen | 3:2c2276646a5c | 151 | } |
| DiGengengen | 3:2c2276646a5c | 152 | |
| kintoki231 | 0:dde37cabc667 | 153 | |
| DiGengengen | 3:2c2276646a5c | 154 | /*各コマンド実行内容*/ |
| DiGengengen | 3:2c2276646a5c | 155 | // 全てのモータを停止,初期位置に. |
| DiGengengen | 3:2c2276646a5c | 156 | void reset_all_motors(){ |
| DiGengengen | 3:2c2276646a5c | 157 | Servo_1.pulsewidth(Servo_1_pulthwidth_range[1]); |
| DiGengengen | 3:2c2276646a5c | 158 | Servo_2_pulsewidth(Servo_2_pulthwidth_range[1]); |
| DiGengengen | 3:2c2276646a5c | 159 | Servo_3.pulsewidth(Servo_3_pulthwidth_range[1]); |
| DiGengengen | 3:2c2276646a5c | 160 | Servo_4.pulsewidth(Servo_4_pulthwidth_range[1]); |
| DiGengengen | 3:2c2276646a5c | 161 | Servo_5.pulsewidth(Servo_5_pulthwidth_range[1]); |
| DiGengengen | 3:2c2276646a5c | 162 | Servo_6.pulsewidth(Servo_6_pulthwidth_range[1]); |
| DiGengengen | 3:2c2276646a5c | 163 | xbee.putc(IWCMD_PM1_SPS); |
| DiGengengen | 3:2c2276646a5c | 164 | xbee.putc(IWCMD_PM2_SPS); |
| DiGengengen | 3:2c2276646a5c | 165 | } |
| DiGengengen | 3:2c2276646a5c | 166 | |
| kintoki231 | 0:dde37cabc667 | 167 | |
| DiGengengen | 3:2c2276646a5c | 168 | /* Servo2用手動PWM */ |
| DiGengengen | 3:2c2276646a5c | 169 | void Servo_2_off(){ |
| DiGengengen | 3:2c2276646a5c | 170 | Servo_2 = 0; |
| DiGengengen | 3:2c2276646a5c | 171 | } |
| DiGengengen | 3:2c2276646a5c | 172 | void Servo_2_on(){ |
| DiGengengen | 3:2c2276646a5c | 173 | Servo_2 = 1; |
| DiGengengen | 3:2c2276646a5c | 174 | s2_pwm_timo.attach(&Servo_2_off, s2_pulsewidth_curr); |
| DiGengengen | 3:2c2276646a5c | 175 | } |
| DiGengengen | 3:2c2276646a5c | 176 | void Servo_2_period_ms(int p_ms){ |
| DiGengengen | 3:2c2276646a5c | 177 | Servo_2_off(); |
| DiGengengen | 3:2c2276646a5c | 178 | s2_pwm_tick.attach(&Servo_2_on, (double)p_ms / 1.0e3); |
| DiGengengen | 3:2c2276646a5c | 179 | } |
| DiGengengen | 3:2c2276646a5c | 180 | void Servo_2_pulsewidth(double p){ |
| DiGengengen | 3:2c2276646a5c | 181 | s2_pulsewidth_curr = p; |
| DiGengengen | 3:2c2276646a5c | 182 | } |
| DiGengengen | 3:2c2276646a5c | 183 | //const int s2_division = 100; // PWM用分割数 |
| DiGengengen | 3:2c2276646a5c | 184 | //int s2_duty; // PWM用分割数のうちduty個分High出力 |
| DiGengengen | 3:2c2276646a5c | 185 | //int s2_period_us; // PWM用分割数1つあたりの周期 |
| DiGengengen | 3:2c2276646a5c | 186 | // |
| DiGengengen | 3:2c2276646a5c | 187 | //void Servo_2_period_ms(int p_ms){ |
| DiGengengen | 3:2c2276646a5c | 188 | // s2_period_us = (p_ms*1000) / s2_division; |
| DiGengengen | 3:2c2276646a5c | 189 | // s2_pwm_tick.attach_us(&Servo_2_pwm_interrupt, s2_period_us); |
| DiGengengen | 3:2c2276646a5c | 190 | //} |
| DiGengengen | 3:2c2276646a5c | 191 | //void Servo_2_pulsewidth(double pw){ |
| DiGengengen | 3:2c2276646a5c | 192 | // s2_duty = pw*1000000.0 / (double)s2_period_us; |
| DiGengengen | 3:2c2276646a5c | 193 | //} |
| DiGengengen | 3:2c2276646a5c | 194 | //void Servo_2_pwm_interrupt(){ |
| DiGengengen | 3:2c2276646a5c | 195 | // static int t = 0; |
| DiGengengen | 3:2c2276646a5c | 196 | // if(t == s2_division){ |
| DiGengengen | 3:2c2276646a5c | 197 | // Servo_2 = 0; |
| DiGengengen | 3:2c2276646a5c | 198 | // t = 0; |
| DiGengengen | 3:2c2276646a5c | 199 | // return; |
| DiGengengen | 3:2c2276646a5c | 200 | // } |
| DiGengengen | 3:2c2276646a5c | 201 | // if(t == s2_division-s2_duty) |
| DiGengengen | 3:2c2276646a5c | 202 | // Servo_2 = 1; |
| DiGengengen | 3:2c2276646a5c | 203 | // t++; |
| DiGengengen | 3:2c2276646a5c | 204 | //} |
| DiGengengen | 3:2c2276646a5c | 205 | |
| DiGengengen | 3:2c2276646a5c | 206 | |
| DiGengengen | 3:2c2276646a5c | 207 | /* コマンド実行 */ |
| DiGengengen | 3:2c2276646a5c | 208 | void cmd_exe(char cmd){ |
| DiGengengen | 3:2c2276646a5c | 209 | switch(cmd){ |
| DiGengengen | 3:2c2276646a5c | 210 | case IWCMD_CM_SS1_PP: //スラスターサーボ1を正位置 |
| DiGengengen | 3:2c2276646a5c | 211 | Servo_1.pulsewidth(Servo_1_pulthwidth_range[2]); |
| DiGengengen | 3:2c2276646a5c | 212 | break; |
| DiGengengen | 3:2c2276646a5c | 213 | case IWCMD_CM_SS1_SP: //スラスターサーボ1を零位置 |
| DiGengengen | 3:2c2276646a5c | 214 | Servo_1.pulsewidth(Servo_1_pulthwidth_range[1]); |
| DiGengengen | 3:2c2276646a5c | 215 | break; |
| DiGengengen | 3:2c2276646a5c | 216 | case IWCMD_CM_SS1_NP: //スラスターサーボ1を負位置 |
| DiGengengen | 3:2c2276646a5c | 217 | Servo_1.pulsewidth(Servo_1_pulthwidth_range[0]); |
| DiGengengen | 3:2c2276646a5c | 218 | break; |
| DiGengengen | 3:2c2276646a5c | 219 | case IWCMD_CM_SS2_PP: //スラスターサーボ2を正位置 |
| DiGengengen | 3:2c2276646a5c | 220 | Servo_2_pulsewidth(Servo_2_pulthwidth_range[2]); |
| DiGengengen | 3:2c2276646a5c | 221 | break; |
| DiGengengen | 3:2c2276646a5c | 222 | case IWCMD_CM_SS2_SP: //スラスターサーボ2を零位置 |
| DiGengengen | 3:2c2276646a5c | 223 | Servo_2_pulsewidth(Servo_2_pulthwidth_range[1]); |
| DiGengengen | 3:2c2276646a5c | 224 | break; |
| DiGengengen | 3:2c2276646a5c | 225 | case IWCMD_CM_SS2_NP: //スラスターサーボ2を負位置 |
| DiGengengen | 3:2c2276646a5c | 226 | Servo_2_pulsewidth(Servo_2_pulthwidth_range[0]); |
| DiGengengen | 3:2c2276646a5c | 227 | break; |
| DiGengengen | 3:2c2276646a5c | 228 | case IWCMD_CM_SS3_PP: //スラスターサーボ3を正位置 |
| DiGengengen | 3:2c2276646a5c | 229 | Servo_3.pulsewidth(Servo_3_pulthwidth_range[2]); |
| DiGengengen | 3:2c2276646a5c | 230 | break; |
| DiGengengen | 3:2c2276646a5c | 231 | case IWCMD_CM_SS3_SP: //スラスターサーボ3を零位置 |
| DiGengengen | 3:2c2276646a5c | 232 | Servo_3.pulsewidth(Servo_3_pulthwidth_range[1]); |
| DiGengengen | 3:2c2276646a5c | 233 | break; |
| DiGengengen | 3:2c2276646a5c | 234 | case IWCMD_CM_SS3_NP: //スラスターサーボ3を負位置 |
| DiGengengen | 3:2c2276646a5c | 235 | Servo_3.pulsewidth(Servo_3_pulthwidth_range[0]); |
| DiGengengen | 3:2c2276646a5c | 236 | break; |
| DiGengengen | 3:2c2276646a5c | 237 | case IWCMD_CM_SS4_PP: //スラスターサーボ4を正位置 |
| DiGengengen | 3:2c2276646a5c | 238 | Servo_4.pulsewidth(Servo_4_pulthwidth_range[2]); |
| DiGengengen | 3:2c2276646a5c | 239 | break; |
| DiGengengen | 3:2c2276646a5c | 240 | case IWCMD_CM_SS4_SP: //スラスターサーボ4を零位置 |
| DiGengengen | 3:2c2276646a5c | 241 | Servo_4.pulsewidth(Servo_4_pulthwidth_range[1]); |
| DiGengengen | 3:2c2276646a5c | 242 | break; |
| DiGengengen | 3:2c2276646a5c | 243 | case IWCMD_CM_SS4_NP: //スラスターサーボ4を負位置 |
| DiGengengen | 3:2c2276646a5c | 244 | Servo_4.pulsewidth(Servo_4_pulthwidth_range[0]); |
| DiGengengen | 3:2c2276646a5c | 245 | break; |
| DiGengengen | 3:2c2276646a5c | 246 | case IWCMD_CM_SS5_PP: //スラスターサーボ5を正位置 |
| DiGengengen | 3:2c2276646a5c | 247 | Servo_5.pulsewidth(Servo_5_pulthwidth_range[2]); |
| DiGengengen | 3:2c2276646a5c | 248 | break; |
| DiGengengen | 3:2c2276646a5c | 249 | case IWCMD_CM_SS5_SP: //スラスターサーボ5を零位置 |
| DiGengengen | 3:2c2276646a5c | 250 | Servo_5.pulsewidth(Servo_5_pulthwidth_range[1]); |
| DiGengengen | 3:2c2276646a5c | 251 | break; |
| DiGengengen | 3:2c2276646a5c | 252 | case IWCMD_CM_SS5_NP: //スラスターサーボ5を負位置 |
| DiGengengen | 3:2c2276646a5c | 253 | Servo_5.pulsewidth(Servo_5_pulthwidth_range[0]); |
| DiGengengen | 3:2c2276646a5c | 254 | break; |
| DiGengengen | 3:2c2276646a5c | 255 | case IWCMD_CM_SS6_PP: //スラスターサーボ6を正位置 |
| DiGengengen | 3:2c2276646a5c | 256 | Servo_6.pulsewidth(Servo_6_pulthwidth_range[2]); |
| DiGengengen | 3:2c2276646a5c | 257 | break; |
| DiGengengen | 3:2c2276646a5c | 258 | case IWCMD_CM_SS6_SP: //スラスターサーボ6を零位置 |
| DiGengengen | 3:2c2276646a5c | 259 | Servo_6.pulsewidth(Servo_6_pulthwidth_range[1]); |
| DiGengengen | 3:2c2276646a5c | 260 | break; |
| DiGengengen | 3:2c2276646a5c | 261 | case IWCMD_CM_SS6_NP: //スラスターサーボ6を負位置 |
| DiGengengen | 3:2c2276646a5c | 262 | Servo_6.pulsewidth(Servo_6_pulthwidth_range[0]); |
| DiGengengen | 3:2c2276646a5c | 263 | break; |
| DiGengengen | 3:2c2276646a5c | 264 | case IWCMD_CM_PM1_FR: //PM1を正転(IWCMD_PM1_SUU) |
| DiGengengen | 3:2c2276646a5c | 265 | xbee.putc(IWCMD_PM1_SUU); |
| DiGengengen | 3:2c2276646a5c | 266 | break; |
| DiGengengen | 3:2c2276646a5c | 267 | case IWCMD_CM_PM1_ST: //PM1を停止(IWCMD_PM1_SPS) |
| DiGengengen | 3:2c2276646a5c | 268 | xbee.putc(IWCMD_PM1_SPS); |
| DiGengengen | 3:2c2276646a5c | 269 | break; |
| DiGengengen | 3:2c2276646a5c | 270 | case IWCMD_CM_PM2_FR: //PM2を正転(IWCMD_PM2_SUU) |
| DiGengengen | 3:2c2276646a5c | 271 | xbee.putc(IWCMD_PM2_SUU); |
| DiGengengen | 3:2c2276646a5c | 272 | break; |
| DiGengengen | 3:2c2276646a5c | 273 | case IWCMD_CM_PM2_ST: //PM2を停止(IWCMD_PM2_SPS) |
| DiGengengen | 3:2c2276646a5c | 274 | xbee.putc(IWCMD_PM2_SPS); |
| DiGengengen | 3:2c2276646a5c | 275 | break; |
| DiGengengen | 3:2c2276646a5c | 276 | default: |
| DiGengengen | 3:2c2276646a5c | 277 | reset_all_motors(); |
| DiGengengen | 3:2c2276646a5c | 278 | break; |
| kintoki231 | 0:dde37cabc667 | 279 | } |
| DiGengengen | 3:2c2276646a5c | 280 | led[2] =~ led[2]; |
| kintoki231 | 0:dde37cabc667 | 281 | } |