春ロボ ロケット団
/
NHK_arrow_test2
test
main.cpp@1:acb2ca86725f, 2020-12-21 (annotated)
- Committer:
- maxnagazumi
- Date:
- Mon Dec 21 09:42:00 2020 +0000
- Revision:
- 1:acb2ca86725f
- Parent:
- 0:3dee13ff6060
1221;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
maxnagazumi | 0:3dee13ff6060 | 1 | #include "mbed.h" |
maxnagazumi | 0:3dee13ff6060 | 2 | #include "EC.h" |
maxnagazumi | 0:3dee13ff6060 | 3 | #define RESOLUTION 500 |
maxnagazumi | 1:acb2ca86725f | 4 | #define V_ARRAY_COUNT_MAX 400 |
maxnagazumi | 0:3dee13ff6060 | 5 | |
maxnagazumi | 0:3dee13ff6060 | 6 | Serial pc(USBTX, USBRX); |
maxnagazumi | 0:3dee13ff6060 | 7 | DigitalIn Button1(p15); |
maxnagazumi | 0:3dee13ff6060 | 8 | DigitalIn Button2(p16); |
maxnagazumi | 1:acb2ca86725f | 9 | //DigitalOut clutch(p19); |
maxnagazumi | 1:acb2ca86725f | 10 | DigitalOut air(p20); |
maxnagazumi | 0:3dee13ff6060 | 11 | PwmOut motord(p25); |
maxnagazumi | 0:3dee13ff6060 | 12 | PwmOut motoru(p26); |
maxnagazumi | 0:3dee13ff6060 | 13 | DigitalOut led1(LED1); |
maxnagazumi | 0:3dee13ff6060 | 14 | DigitalOut led2(LED2); |
maxnagazumi | 0:3dee13ff6060 | 15 | DigitalOut led3(LED3); |
maxnagazumi | 1:acb2ca86725f | 16 | DigitalOut led4(LED4); |
maxnagazumi | 0:3dee13ff6060 | 17 | Ec1multi ec(p27,p28,RESOLUTION); |
maxnagazumi | 0:3dee13ff6060 | 18 | Timer timer; |
maxnagazumi | 0:3dee13ff6060 | 19 | |
maxnagazumi | 0:3dee13ff6060 | 20 | |
maxnagazumi | 0:3dee13ff6060 | 21 | int main() { |
maxnagazumi | 0:3dee13ff6060 | 22 | motoru.period_us(50); |
maxnagazumi | 0:3dee13ff6060 | 23 | Button1.mode(PullUp); |
maxnagazumi | 0:3dee13ff6060 | 24 | Button2.mode(PullUp); |
maxnagazumi | 1:acb2ca86725f | 25 | //clutch=0;//on |
maxnagazumi | 1:acb2ca86725f | 26 | air=1;//off |
maxnagazumi | 0:3dee13ff6060 | 27 | led1=1; |
maxnagazumi | 0:3dee13ff6060 | 28 | led2=1; |
maxnagazumi | 0:3dee13ff6060 | 29 | led3=1; |
maxnagazumi | 1:acb2ca86725f | 30 | led4=1; |
maxnagazumi | 0:3dee13ff6060 | 31 | motoru=0; |
maxnagazumi | 0:3dee13ff6060 | 32 | int motor_state=2; |
maxnagazumi | 1:acb2ca86725f | 33 | int led_state=0; |
maxnagazumi | 0:3dee13ff6060 | 34 | int omega; |
maxnagazumi | 0:3dee13ff6060 | 35 | int read_v_state=0; |
maxnagazumi | 0:3dee13ff6060 | 36 | pc.printf("ready to fire"); |
maxnagazumi | 0:3dee13ff6060 | 37 | int count=ec.getCount(); |
maxnagazumi | 0:3dee13ff6060 | 38 | float v_array[V_ARRAY_COUNT_MAX][2]; |
maxnagazumi | 0:3dee13ff6060 | 39 | int v_array_count=0; |
maxnagazumi | 0:3dee13ff6060 | 40 | while(1){ |
maxnagazumi | 0:3dee13ff6060 | 41 | //pc.printf("%d\r\n",count);//確認 |
maxnagazumi | 0:3dee13ff6060 | 42 | count=ec.getCount(); |
maxnagazumi | 0:3dee13ff6060 | 43 | omega = ec.getOmega(); |
maxnagazumi | 0:3dee13ff6060 | 44 | if(Button1==0){ |
maxnagazumi | 0:3dee13ff6060 | 45 | led1=1; |
maxnagazumi | 0:3dee13ff6060 | 46 | led2=0; |
maxnagazumi | 1:acb2ca86725f | 47 | led3=0; |
maxnagazumi | 1:acb2ca86725f | 48 | led4=0; |
maxnagazumi | 1:acb2ca86725f | 49 | //clutch=0; //on |
maxnagazumi | 1:acb2ca86725f | 50 | air=0;//on |
maxnagazumi | 0:3dee13ff6060 | 51 | count=0; |
maxnagazumi | 0:3dee13ff6060 | 52 | motoru=0; |
maxnagazumi | 0:3dee13ff6060 | 53 | motor_state=0; |
maxnagazumi | 0:3dee13ff6060 | 54 | pc.printf("stop\r\n"); |
maxnagazumi | 0:3dee13ff6060 | 55 | } |
maxnagazumi | 0:3dee13ff6060 | 56 | if(Button2==0){ |
maxnagazumi | 0:3dee13ff6060 | 57 | led2=1; |
maxnagazumi | 0:3dee13ff6060 | 58 | led1=0; |
maxnagazumi | 1:acb2ca86725f | 59 | led3=0; |
maxnagazumi | 1:acb2ca86725f | 60 | led4=0; |
maxnagazumi | 0:3dee13ff6060 | 61 | motoru=0.5; |
maxnagazumi | 0:3dee13ff6060 | 62 | motor_state=1; |
maxnagazumi | 0:3dee13ff6060 | 63 | pc.printf("start loading\r\n"); |
maxnagazumi | 1:acb2ca86725f | 64 | } |
maxnagazumi | 1:acb2ca86725f | 65 | if (motor_state == 1) |
maxnagazumi | 1:acb2ca86725f | 66 | { |
maxnagazumi | 1:acb2ca86725f | 67 | switch (led_state) |
maxnagazumi | 1:acb2ca86725f | 68 | { |
maxnagazumi | 1:acb2ca86725f | 69 | case 0: |
maxnagazumi | 1:acb2ca86725f | 70 | led1 = 1; |
maxnagazumi | 1:acb2ca86725f | 71 | led2 = 0; |
maxnagazumi | 1:acb2ca86725f | 72 | led3 = 0; |
maxnagazumi | 1:acb2ca86725f | 73 | led4 = 0; |
maxnagazumi | 1:acb2ca86725f | 74 | break; |
maxnagazumi | 1:acb2ca86725f | 75 | case 50: |
maxnagazumi | 1:acb2ca86725f | 76 | led1 = 0; |
maxnagazumi | 1:acb2ca86725f | 77 | led2 = 1; |
maxnagazumi | 1:acb2ca86725f | 78 | led3 = 0; |
maxnagazumi | 1:acb2ca86725f | 79 | led4 = 0; |
maxnagazumi | 1:acb2ca86725f | 80 | break; |
maxnagazumi | 1:acb2ca86725f | 81 | case 100: |
maxnagazumi | 1:acb2ca86725f | 82 | led1 = 0; |
maxnagazumi | 1:acb2ca86725f | 83 | led2 = 0; |
maxnagazumi | 1:acb2ca86725f | 84 | led3 = 1; |
maxnagazumi | 1:acb2ca86725f | 85 | led4 = 0; |
maxnagazumi | 1:acb2ca86725f | 86 | break; |
maxnagazumi | 1:acb2ca86725f | 87 | case 150: |
maxnagazumi | 1:acb2ca86725f | 88 | led1 = 0; |
maxnagazumi | 1:acb2ca86725f | 89 | led2 = 0; |
maxnagazumi | 1:acb2ca86725f | 90 | led3 = 0; |
maxnagazumi | 1:acb2ca86725f | 91 | led4 = 1; |
maxnagazumi | 1:acb2ca86725f | 92 | break; |
maxnagazumi | 1:acb2ca86725f | 93 | } |
maxnagazumi | 1:acb2ca86725f | 94 | led_state++; |
maxnagazumi | 1:acb2ca86725f | 95 | if(led_state>200)led_state=0; |
maxnagazumi | 1:acb2ca86725f | 96 | } |
maxnagazumi | 0:3dee13ff6060 | 97 | if (count>4500&&read_v_state==0){ |
maxnagazumi | 0:3dee13ff6060 | 98 | motoru=0; |
maxnagazumi | 0:3dee13ff6060 | 99 | wait(3); |
maxnagazumi | 1:acb2ca86725f | 100 | //clutch=1; //off |
maxnagazumi | 1:acb2ca86725f | 101 | air=1;//off |
maxnagazumi | 0:3dee13ff6060 | 102 | motor_state=0; |
maxnagazumi | 1:acb2ca86725f | 103 | led1=0; |
maxnagazumi | 1:acb2ca86725f | 104 | led2=0; |
maxnagazumi | 0:3dee13ff6060 | 105 | led3=0; |
maxnagazumi | 1:acb2ca86725f | 106 | led4=0; |
maxnagazumi | 0:3dee13ff6060 | 107 | pc.printf("fire\r\n"); |
maxnagazumi | 0:3dee13ff6060 | 108 | read_v_state=1; |
maxnagazumi | 0:3dee13ff6060 | 109 | timer.reset(); |
maxnagazumi | 0:3dee13ff6060 | 110 | timer.start(); |
maxnagazumi | 0:3dee13ff6060 | 111 | } |
maxnagazumi | 0:3dee13ff6060 | 112 | ec.calOmega(); |
maxnagazumi | 1:acb2ca86725f | 113 | wait_ms(1); |
maxnagazumi | 0:3dee13ff6060 | 114 | if (read_v_state == 1) |
maxnagazumi | 0:3dee13ff6060 | 115 | { |
maxnagazumi | 0:3dee13ff6060 | 116 | if (v_array_count < V_ARRAY_COUNT_MAX) |
maxnagazumi | 0:3dee13ff6060 | 117 | { |
maxnagazumi | 1:acb2ca86725f | 118 | v_array[v_array_count][0] = omega * 0.01; |
maxnagazumi | 0:3dee13ff6060 | 119 | v_array[v_array_count][1] = timer.read(); |
maxnagazumi | 0:3dee13ff6060 | 120 | v_array_count++; |
maxnagazumi | 0:3dee13ff6060 | 121 | } |
maxnagazumi | 0:3dee13ff6060 | 122 | else |
maxnagazumi | 0:3dee13ff6060 | 123 | { |
maxnagazumi | 0:3dee13ff6060 | 124 | pc.printf("time\tspeed\r\n"); |
maxnagazumi | 0:3dee13ff6060 | 125 | for (int j = 0; j < V_ARRAY_COUNT_MAX; j++) |
maxnagazumi | 0:3dee13ff6060 | 126 | { |
maxnagazumi | 1:acb2ca86725f | 127 | pc.printf("%f\t%f\r\n", v_array[j][1],v_array[j][0]); |
maxnagazumi | 0:3dee13ff6060 | 128 | } |
maxnagazumi | 0:3dee13ff6060 | 129 | read_v_state = 0; |
maxnagazumi | 0:3dee13ff6060 | 130 | } |
maxnagazumi | 0:3dee13ff6060 | 131 | } |
maxnagazumi | 0:3dee13ff6060 | 132 | } |
maxnagazumi | 0:3dee13ff6060 | 133 | } |