Wataru Shibazaki
/
Nucleo_minirobo_con
con_shiba
main.cpp@3:c95582aeaa4d, 2020-10-11 (annotated)
- Committer:
- shibazakiwataru
- Date:
- Sun Oct 11 08:44:58 2020 +0000
- Revision:
- 3:c95582aeaa4d
- Parent:
- 2:d94fb02df854
contoro-ra-
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
shibazakiwataru | 1:8de783bf51f5 | 1 | #include "mbed.h"//改変バージョン |
sink | 0:d83a0eaeb1d9 | 2 | #include "string" |
shibazakiwataru | 2:d94fb02df854 | 3 | #define INT_TIME 0.02 |
shibazakiwataru | 1:8de783bf51f5 | 4 | |
shibazakiwataru | 1:8de783bf51f5 | 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); |
shibazakiwataru | 1:8de783bf51f5 | 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); |
shibazakiwataru | 1:8de783bf51f5 | 17 | |
shibazakiwataru | 1:8de783bf51f5 | 18 | //AnalogIn joyL_x(A4); |
shibazakiwataru | 1:8de783bf51f5 | 19 | //AnalogIn joyL_y(A3); |
sink | 0:d83a0eaeb1d9 | 20 | AnalogIn joyR_x(A6); |
sink | 0:d83a0eaeb1d9 | 21 | AnalogIn joyR_y(A5); |
shibazakiwataru | 1:8de783bf51f5 | 22 | |
sink | 0:d83a0eaeb1d9 | 23 | bool per_rotR, pre_rotL, pre_up, pre_down, pre_handR, pre_handL, pre_other; |
shibazakiwataru | 1:8de783bf51f5 | 24 | |
sink | 0:d83a0eaeb1d9 | 25 | bool sw_in(int sw, int pre_sw){ |
sink | 0:d83a0eaeb1d9 | 26 | bool rt_sw; |
shibazakiwataru | 3:c95582aeaa4d | 27 | if (sw == false && 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 | } |
shibazakiwataru | 1:8de783bf51f5 | 31 | |
sink | 0:d83a0eaeb1d9 | 32 | void timer_warikomi(){ |
sink | 0:d83a0eaeb1d9 | 33 | |
shibazakiwataru | 1:8de783bf51f5 | 34 | |
sink | 0:d83a0eaeb1d9 | 35 | double d_joyx = joyR_x.read(); |
sink | 0:d83a0eaeb1d9 | 36 | double d_joyy = joyR_y.read(); |
sink | 0:d83a0eaeb1d9 | 37 | |
shibazakiwataru | 3:c95582aeaa4d | 38 | pc.printf("%d,%d\n",d_joyx,d_joyy); |
shibazakiwataru | 3:c95582aeaa4d | 39 | |
shibazakiwataru | 1:8de783bf51f5 | 40 | int buttons_int = 0; |
shibazakiwataru | 1:8de783bf51f5 | 41 | |
sink | 0:d83a0eaeb1d9 | 42 | bool rotR = sw2.read(); |
sink | 0:d83a0eaeb1d9 | 43 | bool rotL = sw3.read(); |
sink | 0:d83a0eaeb1d9 | 44 | bool up = sw6.read(); |
sink | 0:d83a0eaeb1d9 | 45 | bool down = sw7.read(); |
sink | 0:d83a0eaeb1d9 | 46 | bool handR = sw8.read(); |
sink | 0:d83a0eaeb1d9 | 47 | bool handL = sw9.read(); |
sink | 0:d83a0eaeb1d9 | 48 | bool other = sw10.read(); |
sink | 0:d83a0eaeb1d9 | 49 | |
sink | 0:d83a0eaeb1d9 | 50 | char buttons = 0b00000000; |
sink | 0:d83a0eaeb1d9 | 51 | |
shibazakiwataru | 1:8de783bf51f5 | 52 | if(sw_in(up,pre_up)){ |
shibazakiwataru | 1:8de783bf51f5 | 53 | buttons = 0b00000001;//1 |
shibazakiwataru | 1:8de783bf51f5 | 54 | } |
shibazakiwataru | 1:8de783bf51f5 | 55 | if(sw_in(down,pre_down)){ |
shibazakiwataru | 1:8de783bf51f5 | 56 | buttons = 0b00000010;//2 |
shibazakiwataru | 1:8de783bf51f5 | 57 | } |
shibazakiwataru | 1:8de783bf51f5 | 58 | if(sw_in(handR,pre_handR)){ |
shibazakiwataru | 1:8de783bf51f5 | 59 | buttons = 0b00000100;//4 |
shibazakiwataru | 1:8de783bf51f5 | 60 | } |
shibazakiwataru | 1:8de783bf51f5 | 61 | if(sw_in(handL,pre_handL)){ |
shibazakiwataru | 1:8de783bf51f5 | 62 | buttons = 0b00001000;//8 |
shibazakiwataru | 1:8de783bf51f5 | 63 | } |
shibazakiwataru | 1:8de783bf51f5 | 64 | if(sw_in(other,pre_other)){ |
shibazakiwataru | 1:8de783bf51f5 | 65 | buttons = 0b00010000;//16 |
shibazakiwataru | 1:8de783bf51f5 | 66 | } |
shibazakiwataru | 3:c95582aeaa4d | 67 | |
shibazakiwataru | 3:c95582aeaa4d | 68 | if(d_joyx <= 137 && d_joyx >= 117) d_joyx = 127; |
shibazakiwataru | 3:c95582aeaa4d | 69 | if(d_joyy <= 137 && d_joyy >= 117) d_joyy = 127; |
shibazakiwataru | 3:c95582aeaa4d | 70 | |
sink | 0:d83a0eaeb1d9 | 71 | char joyx = char(int(255.0 * d_joyx)); |
sink | 0:d83a0eaeb1d9 | 72 | char joyy = char(int(255.0 * d_joyy)); |
sink | 0:d83a0eaeb1d9 | 73 | char rot = char(127 + 100*sw_in(rotR,per_rotR)- 100*sw_in(rotL,pre_rotL)); |
sink | 0:d83a0eaeb1d9 | 74 | |
shibazakiwataru | 1:8de783bf51f5 | 75 | |
shibazakiwataru | 1:8de783bf51f5 | 76 | buttons_int = buttons; |
shibazakiwataru | 1:8de783bf51f5 | 77 | pc.printf("%d,%d,%d,%d\n",joyx,joyy,rot,buttons_int); |
sink | 0:d83a0eaeb1d9 | 78 | |
sink | 0:d83a0eaeb1d9 | 79 | Master.putc(joyx); |
sink | 0:d83a0eaeb1d9 | 80 | Master.putc(joyy); |
sink | 0:d83a0eaeb1d9 | 81 | Master.putc(rot); |
shibazakiwataru | 1:8de783bf51f5 | 82 | Master.putc(buttons_int); |
sink | 0:d83a0eaeb1d9 | 83 | Master.putc('\n'); |
sink | 0:d83a0eaeb1d9 | 84 | |
sink | 0:d83a0eaeb1d9 | 85 | per_rotR = rotR; |
sink | 0:d83a0eaeb1d9 | 86 | pre_rotL = rotL; |
sink | 0:d83a0eaeb1d9 | 87 | pre_up = up; |
sink | 0:d83a0eaeb1d9 | 88 | pre_down = down; |
sink | 0:d83a0eaeb1d9 | 89 | pre_handR = handR; |
sink | 0:d83a0eaeb1d9 | 90 | pre_handL = handL; |
sink | 0:d83a0eaeb1d9 | 91 | pre_other = other; |
sink | 0:d83a0eaeb1d9 | 92 | } |
shibazakiwataru | 1:8de783bf51f5 | 93 | |
sink | 0:d83a0eaeb1d9 | 94 | int main() |
sink | 0:d83a0eaeb1d9 | 95 | { |
sink | 0:d83a0eaeb1d9 | 96 | |
sink | 0:d83a0eaeb1d9 | 97 | timer.attach(&timer_warikomi,INT_TIME); |
sink | 0:d83a0eaeb1d9 | 98 | |
sink | 0:d83a0eaeb1d9 | 99 | while(true) {} |
shibazakiwataru | 1:8de783bf51f5 | 100 | } |