I’m trying to figure out how I should set up a circuit that will allow me to remotely reset the robot or put it in programming mode via a switch on the OI or through the terminal. I know the pinouts for the reset/prog header, but I’m not sure whether it is possible to reset/prog without additional electronics (relay).
To reset or prog, the ground pin has to be connected to either the reset or prog pin. Since all the ground pins share a common ground, I thought about connecting a relay pinout to the header. Basically, if a relay output is turned off, it is grounded. So it would be possible to trigger a reset by turning off the relay output. However, the problem is: How to I keep it from always resetting the robot. I thought about turning on the output. However, while this would not trigger a reset, it would connect 5V (or whatever the voltage is) to the reset pin. I’m thinking that this is not very good for the RC :rolleyes: Does anyone have any experience in this area?
The relay could also be switched with a digital out, but this poses the same problem as the relay: 5V on enabled.
Does anyone have anyone have any other ideas? I know it would work if I used a relay (not pinout, actual electical relay), I was just wondering if there was any other way.
I installed a single wire between the PROG pin on the header and DIG17 (chosen because it was already set as an output). Since our program is based on Kevin’s “Bells & Whistles” camera code, there’s already a spot in the “slow loop” where it checks for a menu keypress on the program port. We added a test to detect a “p” and set the digital output to zero, which essentially causes the robot to press its own PROG button.
Since the computer has to be connected to the program port anyway in order to program the RC, this works perfectly. We do have to activate the terminal window manually from the Options menu when we first start the IFI Loader program, but we no longer have to call for a random student to stick his or her hand into the robot and press the button. Now if we could only get a wireless RS-232 converter to play nice with the IFI Loader protocol…
I just wasn’t sure about how to stop it from always triggering prog mode. Do you guys set the DigOut pin to high when you don’t want to trigger it? Or do you just not set it at all (would that leave it in a neutral state, not grounded nor 5V)?
There is no “neutral” on a digital I/O pin. As an output, it will be either ground (logic 0) or +5 (logic 1). Each pin has a resistor to +5, so even if nothing is conneted, it will be pulled high (logic 1) if it’s set to be an input.
We of course set the output to 1 as part of the program initialization. I don’t remember whether we do it before or after it is configured as an output. The PROG signal must be grounded for a certain time before it actually takes effect, so a very brief moment when the digital output is low doesn’t hurt.