From 00499a4f1ccc4bafb45ed6cf5680ae8f135693a0 Mon Sep 17 00:00:00 2001 From: chch Date: Sun, 16 Feb 2014 19:14:25 +0100 Subject: [PATCH] camera tilt and pan, auto reset camera position --- bin/Debug/UDPclient | Bin 25226 -> 29906 bytes client.config | 2 +- main.c | 57 +++++++++++++++++++++++++++++++++++++++++--- obj/Debug/main.o | Bin 19816 -> 20736 bytes 4 files changed, 55 insertions(+), 4 deletions(-) diff --git a/bin/Debug/UDPclient b/bin/Debug/UDPclient index 6e3527b1ed63191ba792ac49d65f91f893b2fcc3..649fc1bcc03526f9d91dcee54d7634c1adfe9ec2 100755 GIT binary patch delta 8243 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 delta 7195 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 A7ytkO diff --git a/client.config b/client.config index bc98dfa..844644d 100644 --- a/client.config +++ b/client.config @@ -1,6 +1,6 @@ KEYBOARD /dev/input/event2 JOYSTICK /dev/input/js0 FRAME_US 100000 -SERVER 10.8.212.200:32000 +SERVER 10.8.245.47:32000 TIMEOUT 250 CLINBR 0 diff --git a/main.c b/main.c index be2d3c0..6f2576a 100644 --- a/main.c +++ b/main.c @@ -86,6 +86,8 @@ void *keyboard_thread_fcn(void * arg) args->frame = data2frame(event2data(&args->hl, ev)); args->outtty.motor_r = (2*0b01111 - args->hl.velocity - args->hl.direction)*40; args->outtty.motor_l = (- args->hl.velocity + args->hl.direction)*40; + + /* args->outtty.servo_pan += args->hl.pan_left - args->hl.pan_right; if(args->outtty.servo_pan>50) args->outtty.servo_pan = 50; if(args->outtty.servo_pan<-50) args->outtty.servo_pan = -50; @@ -96,6 +98,9 @@ void *keyboard_thread_fcn(void * arg) args->outtty.servo_pan = 0; args->outtty.servo_tilt= 0; } + */ + + } // quit if(16==ev.code && 1==ev.value) break; @@ -148,7 +153,7 @@ void *joystick_thread_fcn(void * arg) } } if(JS_EVENT_AXIS == ev.type){ - //printf("%d %d %d\n", ev.type, ev.value, ev.number); + printf("%d %d %d\n", ev.type, ev.value, ev.number); if(0==ev.number){ jsdata.x = ev.value; } @@ -158,6 +163,38 @@ void *joystick_thread_fcn(void * arg) jsdata.y = +32767; } } + if(2==ev.number){ + outttyloc.servo_tilt = 0; + if(-30000 > ev.value){ + outttyloc.servo_tilt = -1; + args->hl.tilt_down = 1; + args->hl.tilt_up = 0; + }else{ + args->hl.tilt_down = 0; + if(+5000>ev.value){ + args->hl.tilt_up = 1; + outttyloc.servo_tilt = +1; + }else{ + args->hl.tilt_up = 0; + } + } + } + if(3==ev.number){ + outttyloc.servo_pan = 0; + if(-30000 > ev.value){ + args->hl.pan_left = 1; + args->hl.pan_right = 0; + outttyloc.servo_pan = -1; + }else{ + args->hl.pan_left = 0; + if(+5000>ev.value){ + args->hl.pan_right = 1; + outttyloc.servo_pan = +1; + }else{ + args->hl.pan_right = 0; + } + } + } } outttyloc.motor_r = jsdata.y/30 - jsdata.x/30; outttyloc.motor_l = jsdata.y/30 + jsdata.x/30 ; @@ -167,6 +204,7 @@ void *joystick_thread_fcn(void * arg) if(-1022>outttyloc.motor_l) outttyloc.motor_l = -1023; args->outtty = outttyloc; + args->hl.ignation = (1 & (jsdata.buttons >> 2)); printf("%6d %6d %4x\n", jsdata.x, jsdata.y, jsdata.buttons); } @@ -338,6 +376,8 @@ int main(int argc, char* argv[]) memset(refl_thread_args.timestamps, 0, 256*sizeof(uint64_t)); frame_nbr = 0; + senddata.outtty.servo_pan = 0; + senddata.outtty.servo_tilt = 0; while(1){ usleep(conf.frame_us); @@ -358,14 +398,25 @@ int main(int argc, char* argv[]) senddata.outtty.motor_l = keyboard_thread_args.outtty.motor_l + joystick_thread_args.outtty.motor_l; senddata.outtty.motor_r = keyboard_thread_args.outtty.motor_r + joystick_thread_args.outtty.motor_r; - senddata.outtty.servo_pan = keyboard_thread_args.outtty.servo_pan + joystick_thread_args.outtty.servo_pan; - senddata.outtty.servo_tilt = keyboard_thread_args.outtty.servo_tilt + joystick_thread_args.outtty.servo_tilt; + senddata.outtty.servo_pan += keyboard_thread_args.hl.pan_right - keyboard_thread_args.hl.pan_left + joystick_thread_args.hl.pan_right - joystick_thread_args.hl.pan_left; + senddata.outtty.servo_tilt += keyboard_thread_args.hl.tilt_up - keyboard_thread_args.hl.tilt_down + joystick_thread_args.hl.tilt_up - joystick_thread_args.hl.tilt_down; + + if(keyboard_thread_args.hl.ignation | joystick_thread_args.hl.ignation){ + senddata.outtty.servo_pan = 0; + senddata.outtty.servo_tilt = 0; + } if(1022senddata.outtty.motor_l) senddata.outtty.motor_l = -1023; if(1022senddata.outtty.motor_r) senddata.outtty.motor_r = -1023; + if(senddata.outtty.servo_pan>50) senddata.outtty.servo_pan = 50; + if(senddata.outtty.servo_pan<-50) senddata.outtty.servo_pan = -50; + if(senddata.outtty.servo_tilt>50) senddata.outtty.servo_tilt = 50; + if(senddata.outtty.servo_tilt<-50) senddata.outtty.servo_tilt = -50; + + n_send = sendto(sockfd, &senddata, sizeof(senddata), 0, (struct sockaddr *)&servaddr, sizeof(servaddr)); printf("SEND FRAME -- FRM_NBR: %5d, BYTES send: %3d, SEND_FRM: %#x, CLINBR: %d, CLISEL: %d, SERVOFF: %d\n", frame_nbr, n_send, frame, senddata.clinbr, senddata.clisel, senddata.servoff); diff --git a/obj/Debug/main.o b/obj/Debug/main.o index 5cb1cab7e6fbf662dfc6aa5f807f74f8bdb52cab..3ca2d68f0d3db6d78b8474229df17e4f24272653 100644 GIT binary patch delta 9091 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 XKI7c_3pGBgu}Xi$Zf@qJR8IIe)I>Fz delta 8112 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