部内ロボコンで使う回路のサンプルプログラム

Dependencies:   mbed

Committer:
Kansuni
Date:
Tue Jun 16 16:02:42 2015 +0000
Revision:
0:4b8fa3d0e6f7
?????????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kansuni 0:4b8fa3d0e6f7 1 //*****************************************
Kansuni 0:4b8fa3d0e6f7 2 // メイン基板のサンプルプログラム
Kansuni 0:4b8fa3d0e6f7 3 //*****************************************
Kansuni 0:4b8fa3d0e6f7 4
Kansuni 0:4b8fa3d0e6f7 5 #include "mbed.h"
Kansuni 0:4b8fa3d0e6f7 6
Kansuni 0:4b8fa3d0e6f7 7 //デジタル読み取りピンの指定
Kansuni 0:4b8fa3d0e6f7 8 DigitalInOut Abutton(dp10);
Kansuni 0:4b8fa3d0e6f7 9 DigitalInOut Bbutton(dp14);
Kansuni 0:4b8fa3d0e6f7 10
Kansuni 0:4b8fa3d0e6f7 11 //デジタル出力ピン(空気圧シリンダー)の指定
Kansuni 0:4b8fa3d0e6f7 12 DigitalOut valve(dp11);
Kansuni 0:4b8fa3d0e6f7 13
Kansuni 0:4b8fa3d0e6f7 14 //アナログ読み取りピンの指定
Kansuni 0:4b8fa3d0e6f7 15 AnalogIn JOYstick_LR(dp13);
Kansuni 0:4b8fa3d0e6f7 16
Kansuni 0:4b8fa3d0e6f7 17 //PWM出力ピン(モーター)の指定
Kansuni 0:4b8fa3d0e6f7 18 PwmOut motorLRplus(dp1);
Kansuni 0:4b8fa3d0e6f7 19 PwmOut motorLRminus(dp2);
Kansuni 0:4b8fa3d0e6f7 20
Kansuni 0:4b8fa3d0e6f7 21 //シリアル入出力ピンの指定
Kansuni 0:4b8fa3d0e6f7 22 Serial Controller(dp16, dp15);
Kansuni 0:4b8fa3d0e6f7 23
Kansuni 0:4b8fa3d0e6f7 24 int main(void){
Kansuni 0:4b8fa3d0e6f7 25
Kansuni 0:4b8fa3d0e6f7 26 //初期設定
Kansuni 0:4b8fa3d0e6f7 27 valve = 0;
Kansuni 0:4b8fa3d0e6f7 28 motorLRplus = 0.5;
Kansuni 0:4b8fa3d0e6f7 29 motorLRminus = 0.5;
Kansuni 0:4b8fa3d0e6f7 30
Kansuni 0:4b8fa3d0e6f7 31 //出力レートの指定
Kansuni 0:4b8fa3d0e6f7 32 Controller.baud(9600);
Kansuni 0:4b8fa3d0e6f7 33
Kansuni 0:4b8fa3d0e6f7 34 //デジタル入出力ピンの動作設定
Kansuni 0:4b8fa3d0e6f7 35 Abutton.input();
Kansuni 0:4b8fa3d0e6f7 36 Bbutton.input();
Kansuni 0:4b8fa3d0e6f7 37
Kansuni 0:4b8fa3d0e6f7 38 int l=0;
Kansuni 0:4b8fa3d0e6f7 39 //なにかPCでシリアルを送るまでは動作しない
Kansuni 0:4b8fa3d0e6f7 40 while(1){
Kansuni 0:4b8fa3d0e6f7 41 wait(0.5);
Kansuni 0:4b8fa3d0e6f7 42 if(Controller.readable()){
Kansuni 0:4b8fa3d0e6f7 43 break;
Kansuni 0:4b8fa3d0e6f7 44 }
Kansuni 0:4b8fa3d0e6f7 45 l ^= 1;
Kansuni 0:4b8fa3d0e6f7 46 }
Kansuni 0:4b8fa3d0e6f7 47
Kansuni 0:4b8fa3d0e6f7 48 Controller.printf("LR UD\n");
Kansuni 0:4b8fa3d0e6f7 49
Kansuni 0:4b8fa3d0e6f7 50 int toggle = 0;
Kansuni 0:4b8fa3d0e6f7 51 float tmp = 0.5;
Kansuni 0:4b8fa3d0e6f7 52 while(1){
Kansuni 0:4b8fa3d0e6f7 53
Kansuni 0:4b8fa3d0e6f7 54 //ジョイスティックの左右方向を読み取ってモータに投げる
Kansuni 0:4b8fa3d0e6f7 55 tmp = JOYstick_LR.read();
Kansuni 0:4b8fa3d0e6f7 56 Controller.printf("%f\n",tmp);
Kansuni 0:4b8fa3d0e6f7 57 motorLRplus = tmp;
Kansuni 0:4b8fa3d0e6f7 58 motorLRminus = 1-tmp;
Kansuni 0:4b8fa3d0e6f7 59
Kansuni 0:4b8fa3d0e6f7 60 //タクトスイッチ(Aボタン)が押されていれば"A"を表示.シリンダをONに
Kansuni 0:4b8fa3d0e6f7 61 if(Abutton == 1 && Bbutton == 0 && toggle == 0){
Kansuni 0:4b8fa3d0e6f7 62 Controller.printf("A \n");
Kansuni 0:4b8fa3d0e6f7 63 valve = 1;
Kansuni 0:4b8fa3d0e6f7 64 toggle = 1;
Kansuni 0:4b8fa3d0e6f7 65 wait(0.05);
Kansuni 0:4b8fa3d0e6f7 66 }
Kansuni 0:4b8fa3d0e6f7 67 //タクトスイッチ(Bボタン)が押されていれば"B"を表示.シリンダをOFFに
Kansuni 0:4b8fa3d0e6f7 68 else if(Abutton == 0 && Bbutton == 1 && toggle == 1){
Kansuni 0:4b8fa3d0e6f7 69 Controller.printf("B \n");
Kansuni 0:4b8fa3d0e6f7 70 valve = 0;
Kansuni 0:4b8fa3d0e6f7 71 toggle = 0;
Kansuni 0:4b8fa3d0e6f7 72 wait(0.05);
Kansuni 0:4b8fa3d0e6f7 73 }
Kansuni 0:4b8fa3d0e6f7 74
Kansuni 0:4b8fa3d0e6f7 75 wait(0.05);
Kansuni 0:4b8fa3d0e6f7 76
Kansuni 0:4b8fa3d0e6f7 77 }
Kansuni 0:4b8fa3d0e6f7 78
Kansuni 0:4b8fa3d0e6f7 79 }