Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Is anyone using RoboEmu2 with the 2006/2007 controller (http://www.chiefdelphi.com/forums/showthread.php?t=55948)

Mike Mahar 20-03-2007 11:07

Is anyone using RoboEmu2 with the 2006/2007 controller
 
Is anyone using RoboEmu2 with the 2006/2007 controller? Based on the comments in the forum, it looks like a great tool, but the most recent reference to it that I can find in the forum is from 5/05.

I've downloaded the files. They are dated 11/04, and definitely refer to the pre-2006 controller. Before I spend a lot of time trying to make it work with the 2006 controller, I thought I'd check to see if anyone else has tried...

bear24rw 20-03-2007 15:08

Re: Is anyone using RoboEmu2 with the 2006/2007 controller
 
You might want to consider making this thread a poll.. But I have to say now, i didn't use it this year..

ace123 21-03-2007 05:04

Re: Is anyone using RoboEmu2 with the 2006/2007 controller
 
I tried to get it working with this year's robot... I don't think there is any good reason that it shouldn't work... however I recommend applying the roboemu-specific changes to your code rather than trying to start with his files.

Two years ago, I hooked in some camera handlers to RoboEmu which basically used two of the analog or joystick sliders as center x and y coordinates of the camera blob.
Code:

void camera() {
        data_rdy=0;
        if (parse_mode==0) {
                Serial_Char_Callback('A');
                Serial_Char_Callback('C');
                Serial_Char_Callback('K');
                Serial_Char_Callback('\r');
        } else {
                Serial_Char_Callback('T');
                Serial_Char_Callback((char)ana_ins[4]);
                Serial_Char_Callback((char)ana_ins[5]);
                Serial_Char_Callback((char)ana_ins[4]);
                Serial_Char_Callback((char)ana_ins[5]);
                Serial_Char_Callback((char)ana_ins[4]);
                Serial_Char_Callback((char)ana_ins[5]);
                Serial_Char_Callback((char)20);
                Serial_Char_Callback((char)rc_dig_in18?90:0);
                Serial_Char_Callback((char)ana_ins[6]);
                Serial_Char_Callback((char)ana_ins[7]);
                Serial_Char_Callback('\r');
        }
}

all of those are analog inputs just getting fed directly back to the program, I believe, so they were easy to change in runtime and see how the code reacts...

Then, To hook up the camera, make your own copies of "Write_Serial_Port_Two" and "Read_Serial_Port_Two" to replace serial_ports.c and do some additional parsing to see whether the code expects an "ACK" after the command, or if it expects a "T" packet...
Again, this is a lot of work, but if you get it, it may be worthwhile.

For some reason, the auto box still comes greyed out... I think it works if you just enable it in the code, though he claimed "it tended to cause infinite loops."

You might be able to think of a few other easier ways that could involve re_core and using something like the "user_display_mode" checkbox.

In addition, I added pot and encoder code by interpreting the motor output, for example:
Code:

                hall_effect_add_1 = (pwm01-127)/4;
                if (hall_effect_add_1<0)
                        hall_effect_add_1=-hall_effect_add_1;
               
                hall_effect_add_2 = ((255-pwm02)-127)/4;
                if (hall_effect_add_2<0)
                        hall_effect_add_2=-hall_effect_add_2;
               
                arm_position_2+=(pwm03-127)/4;
                arm_position_1+=(pwm04-127)/16;

                if (arm_position_1<0)
                        arm_position_1=0;
                if (arm_position_1>254)
                        arm_position_1=254;

                if (arm_position_2<0)
                        arm_position_2=0;
                if (arm_position_2>254)
                        arm_position_2=254;
}
/* And later in my update inputs function: */

                for (i=0;i<hall_effect_add_1;++i) {
                        INTCON3bits.INT2IF=INTCON3bits.INT2IE=1;
                        InterruptHandlerLow ();
                }
               
                for (i=0;i<hall_effect_add_2;++i) {
                        INTCON3bits.INT3IF=INTCON3bits.INT3IE=1;
                        InterruptHandlerLow ();
                }

                ana_ins[0]=arm_position_1;
                ana_ins[1]=arm_position_2;

Anyway, I really liked the idea of RoboEmu2, and it's kind of sad that it's just a little too hard to get working to be worthwhile in most cases.

If you get a nice and clean implementation of these features, I would be interested in seeing it (though in my case it was about as hacked up as you can get).

Mike Mahar 03-04-2007 14:37

Re: Is anyone using RoboEmu2 with the 2006/2007 controller
 
Patrick,

I apologize for not responding sooner, I got pulled off onto something else. Thanks for taking the time to reply, and including your code samples.

I will continue to work on this for next year, and let you know if I come up with something generally useful.

WizardOfAz 26-08-2007 22:30

Anybody know where Rob Bayer or roboemu2 is??
 
Looking for a tool to allow classroom full of students to play with robot code without an RC per student. I thought roboemu2 would be the cat's meow, but can't find it anywhere and robbayer.com is a dead site. Anybody got a clue?

Bill


All times are GMT -5. The time now is 03:52.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi