View Single Post
  #7   Spotlight this post!  
Unread 28-01-2011, 10:44
Racer26 Racer26 is offline
Registered User
no team
Team Role: Alumni
 
Join Date: Apr 2003
Rookie Year: 2003
Location: Beaverton, ON
Posts: 2,229
Racer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond reputeRacer26 has a reputation beyond repute
Re: Can we transmit any data from a custom dashboard TO the robot using UDP ?

Quote:
Originally Posted by sjspry View Post
No, I'm thinking it wouldn't violate the spirit. The only reason for the existence of rule 75 I can see is to keep the robots from accepting driver input while in disabled mode (although they could theoretically still make the motors run, iirc, but whatever (On second thought, maybe there's a wrapper which stops this from happening. Either way, however, it is still legal to modify the cRIO's software so this protection might be nonexistent, therefore rendering this rule pretty much arbitrary.)).
The FPGA onboard the cRIO that does all of the decision making and direct control of the outputs runs on a layer abstracted from us. FIRST/NI makes this code, and the code we control calls into it to actually control the outputs. When the Field Management System, or the Driver Station is broadcasting a DISABLED case, the FPGA in the cRIO drives all of the output lines to a tristate status, thereby stopping all the motor controllers from doing anything. This is why the Jaguars and Victors exhibit a solid yellow on their diagnostic LEDs when they have a zero signal from an enabled controller (essentially telling the user that they HAVE a signal, but they're being commanded to STOP), but exhibit a flashing yellow both when in the disabled state AND when a PWM cable is simply not connected. Effectively what is happening is the cRIO is disconnecting all of the wires to the speed controllers by setting the pins to a high-impedance state when it receives a DISABLE command.

Tristating is a concept in electronics where a given user-configurable pin on a microcontroller can be configured to output HIGH (using TTL as an example, this would be the 5V state), to output LOW (continuing the TTL example, this would be the 0V state), or to go to a third, high impedance state, where it acts like a disconnected wire. This little quirk of how microcontrollers work allows creative electronics engineers to take advantage of it to create unique circuits that require fewer logic gates.
Reply With Quote