taka yamanouchi / Mbed 2 deprecated Nucleo_minirobo_con

Dependencies:   mbed

Committer:
sink
Date:
Mon Oct 05 10:37:51 2020 +0000
Revision:
0:d83a0eaeb1d9
Child:
1:79522b611923
yguy

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sink 0:d83a0eaeb1d9 1 #include "mbed.h"
sink 0:d83a0eaeb1d9 2 #include "string"
sink 0:d83a0eaeb1d9 3 #define INT_TIME 0.02
sink 0:d83a0eaeb1d9 4
sink 0:d83a0eaeb1d9 5
sink 0:d83a0eaeb1d9 6 Ticker timer;
sink 0:d83a0eaeb1d9 7 RawSerial pc(USBTX,USBRX,115200);
sink 0:d83a0eaeb1d9 8 RawSerial Master(D5,D4,115200);
sink 0:d83a0eaeb1d9 9
sink 0:d83a0eaeb1d9 10 DigitalIn sw2(D2);
sink 0:d83a0eaeb1d9 11 DigitalIn sw3(D3);
sink 0:d83a0eaeb1d9 12 DigitalIn sw6(D6);
sink 0:d83a0eaeb1d9 13 DigitalIn sw7(D7);
sink 0:d83a0eaeb1d9 14 DigitalIn sw8(D8);
sink 0:d83a0eaeb1d9 15 DigitalIn sw9(D9);
sink 0:d83a0eaeb1d9 16 DigitalIn sw10(D10);
sink 0:d83a0eaeb1d9 17
sink 0:d83a0eaeb1d9 18 AnalogIn joyR_x(A6);
sink 0:d83a0eaeb1d9 19 AnalogIn joyR_y(A5);
sink 0:d83a0eaeb1d9 20 AnalogIn joyL_x(A4);
sink 0:d83a0eaeb1d9 21 AnalogIn joyL_y(A3);
sink 0:d83a0eaeb1d9 22
sink 0:d83a0eaeb1d9 23 bool per_rotR, pre_rotL, pre_up, pre_down, pre_handR, pre_handL, pre_other;
sink 0:d83a0eaeb1d9 24
sink 0:d83a0eaeb1d9 25 bool sw_in(int sw, int pre_sw){
sink 0:d83a0eaeb1d9 26 bool rt_sw;
sink 0:d83a0eaeb1d9 27 if (sw == true && pre_sw == false) rt_sw = true;
sink 0:d83a0eaeb1d9 28 else rt_sw = false;
sink 0:d83a0eaeb1d9 29 return rt_sw;
sink 0:d83a0eaeb1d9 30 }
sink 0:d83a0eaeb1d9 31
sink 0:d83a0eaeb1d9 32 void timer_warikomi(){
sink 0:d83a0eaeb1d9 33
sink 0:d83a0eaeb1d9 34 double d_joyx = joyR_x.read();
sink 0:d83a0eaeb1d9 35 double d_joyy = joyR_y.read();
sink 0:d83a0eaeb1d9 36
sink 0:d83a0eaeb1d9 37 bool rotR = sw2.read();
sink 0:d83a0eaeb1d9 38 bool rotL = sw3.read();
sink 0:d83a0eaeb1d9 39 bool up = sw6.read();
sink 0:d83a0eaeb1d9 40 bool down = sw7.read();
sink 0:d83a0eaeb1d9 41 bool handR = sw8.read();
sink 0:d83a0eaeb1d9 42 bool handL = sw9.read();
sink 0:d83a0eaeb1d9 43 bool other = sw10.read();
sink 0:d83a0eaeb1d9 44
sink 0:d83a0eaeb1d9 45 char buttons = 0b00000000;
sink 0:d83a0eaeb1d9 46
sink 0:d83a0eaeb1d9 47 if(sw_in(up,pre_up)) buttons |= 0b00000001;
sink 0:d83a0eaeb1d9 48 if(sw_in(down,pre_down)) buttons |= 0b00000010;
sink 0:d83a0eaeb1d9 49 if(sw_in(handR,pre_handR)) buttons |= 0b00000100;
sink 0:d83a0eaeb1d9 50 if(sw_in(handL,pre_handL)) buttons |= 0b00001000;
sink 0:d83a0eaeb1d9 51 if(sw_in(other,pre_other)) buttons |= 0b00010000;
sink 0:d83a0eaeb1d9 52
sink 0:d83a0eaeb1d9 53 char joyx = char(int(255.0 * d_joyx));
sink 0:d83a0eaeb1d9 54 char joyy = char(int(255.0 * d_joyy));
sink 0:d83a0eaeb1d9 55 char rot = char(127 + 100*sw_in(rotR,per_rotR)- 100*sw_in(rotL,pre_rotL));
sink 0:d83a0eaeb1d9 56
sink 0:d83a0eaeb1d9 57 pc.printf("%c%c%c%c\n",joyx,joyy,rot,buttons);
sink 0:d83a0eaeb1d9 58
sink 0:d83a0eaeb1d9 59 Master.putc(joyx);
sink 0:d83a0eaeb1d9 60 Master.putc(joyy);
sink 0:d83a0eaeb1d9 61 Master.putc(rot);
sink 0:d83a0eaeb1d9 62 Master.putc(buttons);
sink 0:d83a0eaeb1d9 63 Master.putc('\n');
sink 0:d83a0eaeb1d9 64
sink 0:d83a0eaeb1d9 65 per_rotR = rotR;
sink 0:d83a0eaeb1d9 66 pre_rotL = rotL;
sink 0:d83a0eaeb1d9 67 pre_up = up;
sink 0:d83a0eaeb1d9 68 pre_down = down;
sink 0:d83a0eaeb1d9 69 pre_handR = handR;
sink 0:d83a0eaeb1d9 70 pre_handL = handL;
sink 0:d83a0eaeb1d9 71 pre_other = other;
sink 0:d83a0eaeb1d9 72 }
sink 0:d83a0eaeb1d9 73
sink 0:d83a0eaeb1d9 74 int main()
sink 0:d83a0eaeb1d9 75 {
sink 0:d83a0eaeb1d9 76
sink 0:d83a0eaeb1d9 77 timer.attach(&timer_warikomi,INT_TIME);
sink 0:d83a0eaeb1d9 78
sink 0:d83a0eaeb1d9 79 while(true) {}
sink 0:d83a0eaeb1d9 80 }