View Full Version : Urgent!! (programming question)
anupalsingh
24-02-2004, 23:36
my team and i have a question about the robot. we wish to know if there's a way to print out the output of what the robot does. Also what the values of our joystick are and so on. Anyone know how to do that?
Mark McLeod
24-02-2004, 23:45
my team and i have a question about the robot. we wish to know if there's a way to print out the output of what the robot does. Also what the values of our joystick are and so on. Anyone know how to do that?
If you mean from the IFI_Loader terminal window (i.e. printf joystick values and pwm outputs), the only way I've done it is pretty crude. I've used the "Print Screen" key and pasted the result into Paint, trimed off what I don't want and printed it. You can do this with the dashboard screen as well. Trouble is, of course, you can't fit very much on the screen.
It's easier if you're using Hyperterminal or another similar program. Then you can cut and paste your printf's into any editor.
Tom Bottiglieri
25-02-2004, 07:27
if you used pbasic in prior years, you might have used the debug statement. This year in C it is printf(). What you need to do is find the placein your code where you want to print a variable and for example write
printf("Motor 1 = %d/n" motor)
Whats in quotes will be displayed on screen when you use the hyper terminal, and the %d is used in quotes to show you want to display a decimal value. the /n is a line feed.
if you used pbasic in prior years, you might have used the debug statement. This year in C it is printf(). What you need to do is find the placein your code where you want to print a variable and for example write
printf("Motor 1 = %d/n", motor)
Whats in quotes will be displayed on screen when you use the hyper terminal, and the %d is used in quotes to show you want to display a decimal value. the /n is a line feed.Don't forget the comma if you happened to copy his code. You will also want to add an explicit cast to the printf. So, something like this:
printf("\nMotor 1 = %d", (int)motor);
Just replace the motor with the pwm you want. For a joystick, do something like this:
printf("\nPort 1 Y = %d, Port 2 X = %d", (int)p1_y, (int)p1_x);
You can change the port that it is outputing to whatever you want.
Or, if the values don't change too fast, you could always just use the Dashboard from the Innovation FIRST website.
seanwitte
25-02-2004, 10:35
You can log and plot about 15 seconds worth of data using the program downloaded from here: http://members.cox.net/seanwitte. There are directions in the readme file. You will need the C header and source files, pc_interface.h and pc_interface.c, that are in the zip file.
Extract all of the files onto your PC and run setup.exe to install it. You can uninstall the software using the windows add/remove programs function.
Add the C source files to your project and include pc_interface.h in user_routines.c. During the initialization make a call to InitializePCInterface() to set up the data packets. Each time through the program loop make a call to SendReceivePCData(). You can put it right before putdata().
It will let you send back 8 bytes (aliases fb_pwm01 through fb_pwm08), 6 signed integers (sensor1 through sensor6) and 16 bits (fb_sw01 through fb_sw08 and fb_sw10 through fb_sw18). You can log and plot up to ten of the values at once. Once you have a plot you can save the data as a .csv file or a bitmap. The bitmaps are huge, but its the only option I had easily available at the time. The x-axis on the plots is the time in milliseconds.
If you're using a positioning system you can display your location in a 20' by 20' workspace by setting the following values in your program:
current location X coordinate = fb_pwm07
current location Y coordinate = fb_pwm08
heading (in degrees, 0 - 359) = sensor1
The red point in the workspace is sent to the RC as (pc_p4_x, pc_p4_y). We used it to debug our positioning system on the EDU robot.
Mark McLeod
25-02-2004, 10:49
Nice work!:cool:
Joe Ross
25-02-2004, 10:53
Sean,
Can you create a new thread about this, so that people who don't read this thread can still benefit from it.
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.