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