淳熙 姜
/
JOYSTICK_control
いろんな出力のお試しコード
main.cpp@3:21210e2561c8, 2015-05-16 (annotated)
- Committer:
- Kansuni
- Date:
- Sat May 16 09:08:16 2015 +0000
- Revision:
- 3:21210e2561c8
- Parent:
- 2:a8e6713fbe41
???????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Kansuni | 0:2ea8da556ef4 | 1 | //***************************************** |
Kansuni | 0:2ea8da556ef4 | 2 | // コントローラのサンプルプログラム |
Kansuni | 0:2ea8da556ef4 | 3 | //***************************************** |
Kansuni | 0:2ea8da556ef4 | 4 | |
Kansuni | 0:2ea8da556ef4 | 5 | #include "mbed.h" |
Kansuni | 0:2ea8da556ef4 | 6 | |
Kansuni | 0:2ea8da556ef4 | 7 | //デジタル読み取りピンの指定 |
Kansuni | 0:2ea8da556ef4 | 8 | DigitalInOut Abutton(dp25); |
Kansuni | 0:2ea8da556ef4 | 9 | DigitalInOut Bbutton(dp26); |
Kansuni | 0:2ea8da556ef4 | 10 | |
Kansuni | 0:2ea8da556ef4 | 11 | //デジタル出力ピン(モーター)の指定 |
Kansuni | 1:b4d995953362 | 12 | DigitalInOut motorA(dp4); |
Kansuni | 1:b4d995953362 | 13 | DigitalInOut motorB(dp6); |
Kansuni | 0:2ea8da556ef4 | 14 | |
Kansuni | 0:2ea8da556ef4 | 15 | //デジタル出力ピン(LED)の指定 |
Kansuni | 0:2ea8da556ef4 | 16 | DigitalInOut myLED(LED1); |
Kansuni | 0:2ea8da556ef4 | 17 | |
Kansuni | 0:2ea8da556ef4 | 18 | //アナログ読み取りピンの指定 |
Kansuni | 1:b4d995953362 | 19 | AnalogIn JOYstick_LR(dp9); |
Kansuni | 1:b4d995953362 | 20 | AnalogIn JOYstick_UD(dp10); |
Kansuni | 0:2ea8da556ef4 | 21 | |
Kansuni | 0:2ea8da556ef4 | 22 | //PWM出力ピン(モーター?)の指定 |
Kansuni | 3:21210e2561c8 | 23 | PwmOut motorUDplus(dp1); |
Kansuni | 3:21210e2561c8 | 24 | PwmOut motorUDminus(dp2); |
Kansuni | 0:2ea8da556ef4 | 25 | |
Kansuni | 0:2ea8da556ef4 | 26 | //シリアル入出力ピンの指定 |
Kansuni | 0:2ea8da556ef4 | 27 | Serial Controller(dp16, dp15); |
Kansuni | 0:2ea8da556ef4 | 28 | |
Kansuni | 0:2ea8da556ef4 | 29 | int main(void){ |
Kansuni | 0:2ea8da556ef4 | 30 | |
Kansuni | 0:2ea8da556ef4 | 31 | //初期設定 |
Kansuni | 3:21210e2561c8 | 32 | myLED = 0; |
Kansuni | 3:21210e2561c8 | 33 | motorA = 0; |
Kansuni | 3:21210e2561c8 | 34 | motorB = 0; |
Kansuni | 3:21210e2561c8 | 35 | motorUDplus = 0.5; |
Kansuni | 3:21210e2561c8 | 36 | motorUDminus = 0.5; |
Kansuni | 0:2ea8da556ef4 | 37 | |
Kansuni | 0:2ea8da556ef4 | 38 | //出力レートの指定 |
Kansuni | 0:2ea8da556ef4 | 39 | Controller.baud(9600); |
Kansuni | 0:2ea8da556ef4 | 40 | |
Kansuni | 0:2ea8da556ef4 | 41 | //デジタル入出力ピンの動作設定 |
Kansuni | 0:2ea8da556ef4 | 42 | Abutton.input(); |
Kansuni | 0:2ea8da556ef4 | 43 | Bbutton.input(); |
Kansuni | 0:2ea8da556ef4 | 44 | motorA.output(); |
Kansuni | 0:2ea8da556ef4 | 45 | motorB.output(); |
Kansuni | 0:2ea8da556ef4 | 46 | |
Kansuni | 0:2ea8da556ef4 | 47 | int l=0; |
Kansuni | 0:2ea8da556ef4 | 48 | while(1){ |
Kansuni | 0:2ea8da556ef4 | 49 | wait(0.5); |
Kansuni | 0:2ea8da556ef4 | 50 | if(Controller.readable()){ |
Kansuni | 0:2ea8da556ef4 | 51 | break; |
Kansuni | 0:2ea8da556ef4 | 52 | } |
Kansuni | 0:2ea8da556ef4 | 53 | l ^= 1; |
Kansuni | 0:2ea8da556ef4 | 54 | myLED = l; |
Kansuni | 0:2ea8da556ef4 | 55 | } |
Kansuni | 2:a8e6713fbe41 | 56 | |
Kansuni | 2:a8e6713fbe41 | 57 | Controller.printf("LR UD\n"); |
Kansuni | 2:a8e6713fbe41 | 58 | |
Kansuni | 0:2ea8da556ef4 | 59 | float tmp; |
Kansuni | 0:2ea8da556ef4 | 60 | while(1){ |
Kansuni | 0:2ea8da556ef4 | 61 | |
Kansuni | 0:2ea8da556ef4 | 62 | //ジョイスティックの左右方向読み取り |
Kansuni | 0:2ea8da556ef4 | 63 | tmp = JOYstick_LR.read(); |
Kansuni | 2:a8e6713fbe41 | 64 | Controller.printf("%f ",tmp); |
Kansuni | 0:2ea8da556ef4 | 65 | |
Kansuni | 0:2ea8da556ef4 | 66 | //ジョイスティックの上下方向読み取り |
Kansuni | 0:2ea8da556ef4 | 67 | tmp = JOYstick_UD.read(); |
Kansuni | 2:a8e6713fbe41 | 68 | Controller.printf("%f\n",tmp); |
Kansuni | 3:21210e2561c8 | 69 | motorUDplus = tmp; |
Kansuni | 3:21210e2561c8 | 70 | motorUDminus = 1-tmp; |
Kansuni | 0:2ea8da556ef4 | 71 | |
Kansuni | 0:2ea8da556ef4 | 72 | //タクトスイッチの動作全般 |
Kansuni | 0:2ea8da556ef4 | 73 | |
Kansuni | 0:2ea8da556ef4 | 74 | //タクトスイッチ(Aボタン)が押されていれば"A"を表示.モータ正回転 |
Kansuni | 3:21210e2561c8 | 75 | if(Abutton == 1 && Bbutton == 0){ |
Kansuni | 0:2ea8da556ef4 | 76 | Controller.printf("A \n"); |
Kansuni | 3:21210e2561c8 | 77 | motorA = 1; |
Kansuni | 3:21210e2561c8 | 78 | motorB = 0; |
Kansuni | 0:2ea8da556ef4 | 79 | } |
Kansuni | 0:2ea8da556ef4 | 80 | //タクトスイッチ(Bボタン)が押されていれば"B"を表示.モータ逆回転 |
Kansuni | 3:21210e2561c8 | 81 | else if(Abutton == 0 && Bbutton == 1){ |
Kansuni | 0:2ea8da556ef4 | 82 | Controller.printf("B \n"); |
Kansuni | 3:21210e2561c8 | 83 | motorA = 0; |
Kansuni | 3:21210e2561c8 | 84 | motorB = 1; |
Kansuni | 0:2ea8da556ef4 | 85 | } |
Kansuni | 0:2ea8da556ef4 | 86 | //タクトスイッチ(AボタンとBボタン)が押されていれば"AとB"を表示.モータは動かない |
Kansuni | 3:21210e2561c8 | 87 | else if(Abutton == 1 && Bbutton == 1){ |
Kansuni | 0:2ea8da556ef4 | 88 | Controller.printf("A and B \n"); |
Kansuni | 3:21210e2561c8 | 89 | motorA = 0; |
Kansuni | 3:21210e2561c8 | 90 | motorB = 0; |
Kansuni | 0:2ea8da556ef4 | 91 | } |
Kansuni | 0:2ea8da556ef4 | 92 | //何も押されていなければ、何も表示しない.モータは動かない |
Kansuni | 0:2ea8da556ef4 | 93 | else{ |
Kansuni | 3:21210e2561c8 | 94 | motorA = 0; |
Kansuni | 3:21210e2561c8 | 95 | motorB = 0; |
Kansuni | 0:2ea8da556ef4 | 96 | } |
Kansuni | 0:2ea8da556ef4 | 97 | |
Kansuni | 0:2ea8da556ef4 | 98 | } |
Kansuni | 0:2ea8da556ef4 | 99 | |
Kansuni | 0:2ea8da556ef4 | 100 | } |