春ロボ ロケット団 / Mbed 2 deprecated SpringShotingArm

Dependencies:   mbed Encoder

Committer:
maxnagazumi
Date:
Thu Mar 05 01:58:48 2020 +0000
Revision:
2:d213999ee436
Parent:
1:9732c03b0de4
3/5;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
maxnagazumi 0:ef259ff25554 1 #include "mbed.h"
maxnagazumi 0:ef259ff25554 2 #include "EC.h" //Encoderライブラリをインクルード
maxnagazumi 0:ef259ff25554 3 #define RESOLUTION 500
maxnagazumi 0:ef259ff25554 4
maxnagazumi 2:d213999ee436 5 //Serial pc(USBTX, USBRX); // tx, rx
maxnagazumi 2:d213999ee436 6 PwmOut f(p26);
maxnagazumi 2:d213999ee436 7 PwmOut b(p25);
maxnagazumi 1:9732c03b0de4 8 Ticker ticker;
maxnagazumi 2:d213999ee436 9 Ec1multi EC(p16,p17,RESOLUTION);
maxnagazumi 2:d213999ee436 10 InterruptIn X(p15);
maxnagazumi 2:d213999ee436 11 DigitalOut led1(LED1);
maxnagazumi 2:d213999ee436 12 DigitalOut led2(LED2);
maxnagazumi 2:d213999ee436 13 DigitalOut led3(LED3);
maxnagazumi 2:d213999ee436 14 DigitalOut led4(LED4);
maxnagazumi 0:ef259ff25554 15
maxnagazumi 2:d213999ee436 16 DigitalOut out(p20);
maxnagazumi 2:d213999ee436 17
maxnagazumi 2:d213999ee436 18 void cal()
maxnagazumi 1:9732c03b0de4 19 {
maxnagazumi 1:9732c03b0de4 20 EC.calOmega();
maxnagazumi 1:9732c03b0de4 21 }
maxnagazumi 1:9732c03b0de4 22
maxnagazumi 1:9732c03b0de4 23 int X_count=0;
maxnagazumi 1:9732c03b0de4 24
maxnagazumi 1:9732c03b0de4 25 void Xcount()
maxnagazumi 1:9732c03b0de4 26 {
maxnagazumi 1:9732c03b0de4 27 X_count++;
maxnagazumi 1:9732c03b0de4 28 }
maxnagazumi 2:d213999ee436 29
maxnagazumi 0:ef259ff25554 30 int main()
maxnagazumi 0:ef259ff25554 31 {
maxnagazumi 1:9732c03b0de4 32 X.rise(&Xcount);
maxnagazumi 2:d213999ee436 33 f.period_us(50);
maxnagazumi 2:d213999ee436 34 b.period_us(50);
maxnagazumi 2:d213999ee436 35 out=1;
maxnagazumi 2:d213999ee436 36 double a=0,r=0.4,v=0;
maxnagazumi 2:d213999ee436 37 int i=0,count;//rで半径指定 a*r=v
maxnagazumi 2:d213999ee436 38 ticker.attach(&cal,0.05);
maxnagazumi 2:d213999ee436 39
maxnagazumi 2:d213999ee436 40
maxnagazumi 2:d213999ee436 41 while(1) {
maxnagazumi 2:d213999ee436 42 printf("set");
maxnagazumi 2:d213999ee436 43 if(X_count ==1) {
maxnagazumi 2:d213999ee436 44 EC.reset();
maxnagazumi 2:d213999ee436 45 X_count =0;
maxnagazumi 2:d213999ee436 46 break;
maxnagazumi 2:d213999ee436 47 }
maxnagazumi 2:d213999ee436 48 }
maxnagazumi 2:d213999ee436 49 //角度リセット
maxnagazumi 2:d213999ee436 50 out = 0;
maxnagazumi 2:d213999ee436 51 wait(5);
maxnagazumi 0:ef259ff25554 52 while(1) {
maxnagazumi 2:d213999ee436 53 printf("%.3f %.3f %d %d\r\n",a,v,X_count,i);
maxnagazumi 2:d213999ee436 54 a=EC.getOmega();
maxnagazumi 2:d213999ee436 55 count=EC.getCount();
maxnagazumi 2:d213999ee436 56 i =count%500;
maxnagazumi 2:d213999ee436 57 v=a*r;
maxnagazumi 2:d213999ee436 58 f=0.45;//速度一定
maxnagazumi 2:d213999ee436 59 b=0.0;
maxnagazumi 2:d213999ee436 60 led1=1;
maxnagazumi 2:d213999ee436 61 led2=0;
maxnagazumi 2:d213999ee436 62 led3=0;
maxnagazumi 2:d213999ee436 63 led4=1;
maxnagazumi 2:d213999ee436 64 if(X_count>3) {
maxnagazumi 2:d213999ee436 65 if(i < -380 && i > -390) {//離す角度を決める
maxnagazumi 2:d213999ee436 66 out=1; //ボールを離す
maxnagazumi 2:d213999ee436 67 printf("shot\r\n");
maxnagazumi 2:d213999ee436 68 led1=1;
maxnagazumi 2:d213999ee436 69 led2=1;
maxnagazumi 2:d213999ee436 70 led3=1;
maxnagazumi 2:d213999ee436 71 led4=1;
maxnagazumi 2:d213999ee436 72 break;
maxnagazumi 1:9732c03b0de4 73 }
maxnagazumi 1:9732c03b0de4 74 }
maxnagazumi 2:d213999ee436 75 }
maxnagazumi 2:d213999ee436 76 printf("stop\r\n");
maxnagazumi 2:d213999ee436 77 while(1) {
maxnagazumi 2:d213999ee436 78 printf("%.3f %.3f %d %d stop\r\n",a,v,X_count,i);
maxnagazumi 2:d213999ee436 79 X.rise(&Xcount);
maxnagazumi 2:d213999ee436 80 a=EC.getOmega();
maxnagazumi 2:d213999ee436 81 count=EC.getCount();
maxnagazumi 2:d213999ee436 82 i =count%500;
maxnagazumi 2:d213999ee436 83 f=0;
maxnagazumi 2:d213999ee436 84 b=0;
maxnagazumi 2:d213999ee436 85 led1=0;
maxnagazumi 2:d213999ee436 86 led2=1;
maxnagazumi 2:d213999ee436 87 led3=1;
maxnagazumi 2:d213999ee436 88 led4=0;
maxnagazumi 2:d213999ee436 89 }
maxnagazumi 2:d213999ee436 90 }
maxnagazumi 1:9732c03b0de4 91