手動機アーム、ヌクレオ基盤のプログラムです(9/4)

Dependencies:   RcServo mbed

Fork of a_SPI_slave_arm_shudouki by F^3 RC 2班

Committer:
yoka06
Date:
Mon Sep 04 12:39:59 2017 +0000
Revision:
4:ea846eabda0e
Parent:
3:f200ae8fea88
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yoka06 0:bf93b3e87029 1 #include "mbed.h"
yoka06 0:bf93b3e87029 2 #include "rc-servo.h"
yoka06 0:bf93b3e87029 3 #include "motor_1.h"
yoka06 0:bf93b3e87029 4 #include "motor_2.h"
yoka06 0:bf93b3e87029 5
yoka06 0:bf93b3e87029 6 int a,b,c,d,e,f,g,h;
yoka06 4:ea846eabda0e 7 //Serial pc(USBTX,USBRX);
yoka06 0:bf93b3e87029 8 SPISlave spi(PA_7,PA_6,PA_5,PA_4);
yoka06 0:bf93b3e87029 9
yoka06 2:df4d6f7952b6 10 RcServo sA(PB_0,500,2400,180); //PwmOutのpin,minpulsewidth,maxpulsewidth,motionrange
yoka06 4:ea846eabda0e 11 RcServo sB(PA_9,500,2400,180);
yoka06 2:df4d6f7952b6 12 RcServo sC(PA_10,500,2100,180);
yoka06 2:df4d6f7952b6 13 RcServo sD(PA_11,500,3000,180);
yoka06 2:df4d6f7952b6 14 RcServo sE(PA_2,500,2400,180);
yoka06 0:bf93b3e87029 15 RcServo sF(PA_3,500,3000,180);
yoka06 2:df4d6f7952b6 16 RcServo sG(PA_8,500,2400,180);
yoka06 4:ea846eabda0e 17 M2 mH(PB_6,PA_0,PA_1); //pwm*1,digital*2
yoka06 0:bf93b3e87029 18
yoka06 0:bf93b3e87029 19 int main()
yoka06 0:bf93b3e87029 20 {
yoka06 4:ea846eabda0e 21 spi.format(8,3);
yoka06 0:bf93b3e87029 22 spi.frequency(1000000);
yoka06 0:bf93b3e87029 23
yoka06 4:ea846eabda0e 24
yoka06 0:bf93b3e87029 25 while(1) {
yoka06 4:ea846eabda0e 26 if(spi.receive()) {
yoka06 0:bf93b3e87029 27
yoka06 0:bf93b3e87029 28 a=spi.read() & 0b1;
yoka06 0:bf93b3e87029 29 b=(spi.read() & 0b10)>>1;
yoka06 0:bf93b3e87029 30 c=(spi.read() & 0b100)>>2;
yoka06 0:bf93b3e87029 31 d=(spi.read() & 0b1000)>>3;
yoka06 0:bf93b3e87029 32 e=(spi.read() & 0b10000)>>4;
yoka06 0:bf93b3e87029 33 f=(spi.read() & 0b100000)>>5;
yoka06 0:bf93b3e87029 34 g=(spi.read() & 0b1000000)>>6;
yoka06 0:bf93b3e87029 35 h=(spi.read() & 0b10000000)>>7;
yoka06 4:ea846eabda0e 36 //pc.printf("a:%d\t b:%d\t c:%d\t d:%d\t e:%d\t f:%d\t g:%d\t h:%d\t send:%d\r\n",a,b,c,d,e,f,g,h,spi.read());
yoka06 4:ea846eabda0e 37 }
yoka06 0:bf93b3e87029 38
yoka06 3:f200ae8fea88 39
yoka06 4:ea846eabda0e 40 if(a==1) {
yoka06 4:ea846eabda0e 41 //if((ButtonState >> BUTTONUP)&1 == 1) { // ▲で燃料用アーム展開
yoka06 4:ea846eabda0e 42 sD.set_deg(80);
yoka06 4:ea846eabda0e 43 wait(0.7);
yoka06 4:ea846eabda0e 44 sA.set_deg(118);
yoka06 4:ea846eabda0e 45 wait(1.2);
yoka06 4:ea846eabda0e 46 sB.set_deg(0);
yoka06 4:ea846eabda0e 47 sC.set_deg(180);
yoka06 4:ea846eabda0e 48
yoka06 4:ea846eabda0e 49 }
yoka06 4:ea846eabda0e 50
yoka06 3:f200ae8fea88 51
yoka06 0:bf93b3e87029 52
yoka06 4:ea846eabda0e 53 if(b==1) {
yoka06 4:ea846eabda0e 54 //if((ButtonState >> BUTTONTRIANGEL)&1 == 1) { // △で燃料回収
yoka06 4:ea846eabda0e 55 sB.set_deg(180);
yoka06 4:ea846eabda0e 56 sC.set_deg(0);
yoka06 4:ea846eabda0e 57 wait(0.7);
yoka06 4:ea846eabda0e 58 sA.set_deg(28);
yoka06 4:ea846eabda0e 59 wait(0.7);
yoka06 4:ea846eabda0e 60 sD.set_deg(0);
yoka06 4:ea846eabda0e 61 sE.set_deg(120);
yoka06 0:bf93b3e87029 62
yoka06 1:9e95f48ea988 63
yoka06 0:bf93b3e87029 64
yoka06 4:ea846eabda0e 65 }
yoka06 3:f200ae8fea88 66
yoka06 4:ea846eabda0e 67 if(c==1) {
yoka06 4:ea846eabda0e 68 //if((ButtonState >> BUTTONLEFT)&1 == 1) { // ◀で燃料掃き出し
yoka06 4:ea846eabda0e 69 mH.move(1);
yoka06 4:ea846eabda0e 70 wait(1.2);
yoka06 4:ea846eabda0e 71 mH.move(0);
yoka06 4:ea846eabda0e 72
yoka06 4:ea846eabda0e 73 }
yoka06 1:9e95f48ea988 74
yoka06 4:ea846eabda0e 75 if(d==1) {
yoka06 4:ea846eabda0e 76 //if((ButtonState >> BUTTONCIRCLE)&1 == 1) { // 〇でタンク回収
yoka06 4:ea846eabda0e 77 sA.set_deg(118);
yoka06 4:ea846eabda0e 78 sE.set_deg(30);
yoka06 4:ea846eabda0e 79 wait(0.7);
yoka06 4:ea846eabda0e 80 sD.set_deg(180);
yoka06 4:ea846eabda0e 81 wait(0.7);
yoka06 4:ea846eabda0e 82 sE.set_deg(120);
yoka06 4:ea846eabda0e 83 wait(0.7);
yoka06 4:ea846eabda0e 84 sD.set_deg(80);
yoka06 4:ea846eabda0e 85 wait(0.7);
yoka06 4:ea846eabda0e 86 sE.set_deg(90);
yoka06 4:ea846eabda0e 87 sA.set_deg(27);
yoka06 0:bf93b3e87029 88
yoka06 4:ea846eabda0e 89
yoka06 4:ea846eabda0e 90
yoka06 4:ea846eabda0e 91 }
yoka06 0:bf93b3e87029 92
yoka06 4:ea846eabda0e 93 if(e==1) {
yoka06 4:ea846eabda0e 94 //if((ButtonState >> BUTTONRIGHT)&1 == 1) { // ‣でタンク掃き出し
yoka06 4:ea846eabda0e 95 mH.move(-1);
yoka06 4:ea846eabda0e 96 wait(1.2);
yoka06 4:ea846eabda0e 97 mH.move(0);
yoka06 4:ea846eabda0e 98 }
yoka06 1:9e95f48ea988 99
yoka06 4:ea846eabda0e 100 if(f==1) {
yoka06 4:ea846eabda0e 101 //if((ButtonState >> BUTTONDOWN)&1 == 1) { // ▼で待機
yoka06 4:ea846eabda0e 102
yoka06 4:ea846eabda0e 103 sF.set_deg(0);
yoka06 4:ea846eabda0e 104 sG.set_deg(100);
yoka06 4:ea846eabda0e 105 sE.set_deg(5);
yoka06 4:ea846eabda0e 106 sD.set_deg(180);
yoka06 4:ea846eabda0e 107 }
yoka06 0:bf93b3e87029 108
yoka06 4:ea846eabda0e 109 if(g==1) {
yoka06 4:ea846eabda0e 110 //if((ButtonState >> BUTTONCROSS)&1 == 1) { // ×でサンプル受け取り
yoka06 4:ea846eabda0e 111 sG.set_deg(30);
yoka06 4:ea846eabda0e 112 wait(0.7);
yoka06 4:ea846eabda0e 113 sF.set_deg(87);
yoka06 4:ea846eabda0e 114
yoka06 4:ea846eabda0e 115 }
yoka06 3:f200ae8fea88 116
yoka06 4:ea846eabda0e 117 if(h==1) {
yoka06 4:ea846eabda0e 118 //if((ButtonState >> BUTTONSQUARE)&1 == 1) { // □でサンプル設置
yoka06 4:ea846eabda0e 119 sG.set_deg(120);
yoka06 0:bf93b3e87029 120 }
yoka06 4:ea846eabda0e 121
yoka06 0:bf93b3e87029 122 }
yoka06 4:ea846eabda0e 123
yoka06 0:bf93b3e87029 124 }
yoka06 4:ea846eabda0e 125