|
|
|
![]() |
|
|||||||
|
||||||||
|
|
Thread Tools | Rate Thread | Display Modes |
|
#3
|
||||
|
||||
|
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');
}
}
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;
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). |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| 2007 vs 2006 controller | psh | Programming | 17 | 11-09-2007 13:16 |
| Legality of Using 2005/2006 Kitbot Gearbox on 2007 Robot | Gusman1188 | Rules/Strategy | 1 | 12-01-2007 15:44 |
| Using auxiliary joystick buttons with IFI controller. | Eric W. Jones | Programming | 9 | 03-12-2006 22:26 |
| Problem with RoboEmu2? | Calvin | Programming | 1 | 12-02-2005 11:27 |
| Using Accelerometer with '04 controller | sanddrag | Control System | 4 | 20-02-2004 12:18 |