When programming the Arduino Robot, the motors are disengaged as there is a usb connection. This poses a problem because we are using a program to send the robot data, and the computer is connected to the robot via usb.
How do we engage the motors when the robot has a usb connection? Do we need to modify the ArduinoRobot.h file or something else?
Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png or pdf?
Hello, it is really quite simple what we have done: we connected the robot to a "control program" which sends data to the Arduino Robot. It is connected via the usb cord we use to upload newly compiled programs.
Our problem: The Arduino Robot's Guide Page states that "Whenever the USB is connected, the robot's motors are disengaged." But we need to circumvent this so that we can plug in the computer with our "control program" and send it commands to run. How would we do this?
As for the code, the Arduino Robot is getting (and parsing) the data via the Serial.parseInt() and Serial.readString() commands. That is really all there is to it.
Specifically the "Motor Board" - there is a jumper labeled "SJ2" - which is likely "open". In the open state, IC7D (inverted AND basically) has 5 volts on that leg (13) and when VUSB (?) puts 5 volts on the other leg, that pulls the gate of T2 to ground - and from there I am not sure what exactly happens (and/or whether SJ1 is involved?) - but it basically has something to do with the DRV8833 motor driver - it goes into the NSLEEP pin, which according to the datasheet:
...needs a HIGH signal to activate the driver - so I think if you bridged the jumper SJ2, and I think maybe jumpering SJ1 as well (?) - it should bypass as wanted.
In short - it's a hardware issue - I don't know if SJ1 and SJ2 are actual pin jumpers - or if they are (more likely) pads on the board you have to solder bridge. They will likely be on the topside of the motor board (bottom board), which means you'll have to disassemble the robot pretty heavily to get to them properly.
Care should be taken when modifying the board - research the PDFs I have provided carefully before making the modifications (and maybe also someone else here can give me an assist as far as my explanation is concerned? Thanks!)...
Also - realize that if you do this and get it working, you now have no protection against errant programming, and could send the robot careening off the table (or wherever) - so when testing, put the robot up on a stand so that the wheels aren't touching the ground!