| Vex Robotics | UserPreferences |
| MoinMoin Wiki | FrontPage | RecentChanges | TitleIndex | WordIndex | Help |
Several RG members now own the VEX kits.
NOTE: The Radio/Receiver was spotted for $30 at http://www.allelectronics.com/cgi-bin/item/JS-6 in Feb 2007
The 16 Analog/Digital 3 pin ports read 0=ground 1=+5v 2=input/output. Pin 0 is the one closest to the edge of the case and pin 2 is inwards. The jumpers have 3 pins but the center pin is no contact. So they act as switches to ground the weak pullup input.
The motor outputs appear to be:
Pin 0 (outer edge pin) to black wire = ground
Pin 1 (center) to orange wire = +7-8volt from battery.
Pin 2 (closest inward) to white wire = signal.
Timing diagram: http://www.junun.org/MarkIII/datasheets/SRF04_timing.pdf
I found that if you build up on the frame it can be a little wobbly due to quick accel/decel of the servos.
I dont recommend moving the wheels further apart though with the standard 4 wheel design because turning
quickly becomes a problem. Like with tank treds, turning/rotating requires some skidding and the rubber
tires dont skid well. This becomes more apparent as the wheel distance is widened. I have had success
by using 2 regular wheels and 2 VEX 'Omni' wheels on the front or rigging some swivel wheels from the
hardware store to the front.
Some personal oppions: This EasyC graphical C written by a 3rd party that really has them where it hurts and trys to push upgrade sales to children under a professional like CPU ID registration licensing system and stores source in a proprietary format that can't be edited as ascii!!! This tactic has been used in the past and affected many companies negatively.
I recommend as soon as you get literate in C then use the Microchip C compiler that is there on the CD (its real PIC18 coding) So you just need to figure out how to use the vex library to controll servos with the SetPWM command (dont use SetServo or SetMotor, they dont work in that api)
VEX has over-complex examples and undocummented libraries which leave development in the hands of user forums (whoes posters are luckily quite helpful) to figure out how to actually write any code.
With the ultrasonic module for example, they give you a 4 page printout of the principals of ultrasonic, and a url to that ugly example (how about a tutorial to get people, typical kids as well as hackers, using the thing?)
I have yet to google up a treasure of VEX info beyond their site and the first competition site, though this kit been out for some time now so you would expect to see web rings and a plethora of hacker info out there. The info I have found to date on easyC or using other languages like PIC assembly is minimal. It's unclear to me what the interaction is between the master and slave PICs in the controller or how to use the interrupts.
Update: Feb 2007 - There is more stuff out there now but still no clear programming docs. the VEX forums are helpful for info and people do answer questions there.
VEX robotics relies on common folk to reverse engineer the hardware. This may be its downfall as compared to other systems out there that may be more open and better docummented resulting in real people getting real robotics up and running.
Hardware info:
The default kits are channel 61 75.41 mhz and appear to be standard R/C-ground crystals.
The one in the transmitter has a plastic housing around it but you can probably plug in a regular ground RC crystal. Radio:
Fairly decent Radio with voltage meter on the lcd, heard the range was good enough for a ground radio.
The radio has 2 sticks (4 analog channels) and 2 sets of buttons to control 2 other channels. The servo is centered when the buttons are unpushed, and the buttons simulate stick up/stick down condition.
There is a controller in the radio and it has some programmability for combining, reversing, and trimming the control.
There is a 4 pin connector on it which someone says has this pinout:
Pin 1 = +5V
Pin 2 = Data
Pin 3 = GND
Pin 4 = Tether detect. (shorting this to GND, on the transmitter, blocks the transmitter, from another msg.
showing how to wire a multi-pole single through switch to control competitions.)
Data is in a solid stream, of single digits, 0 to 255... dont know the info
Not sure how the data is combined when plugging one radio into another, check out the VEX forums. Receiver:
The receiver has an antenna and a 4 pin jack that connects it to the controller brain.
It converts the RF 6 channel into 1 digital output. It does not break out the 6 channels of RC pulses.
It contains a ta31136 FM receiver and something that might be a ta75W393FU dual comparator. I guess it is just demodulating the rf and the processor is responsible
Maybe there is a missing stop pulse so the main controller can figure out which pulse is the first control stick
and break them out. This needs to be scoped. Controller Brain:
The controller has jacks for serial port and 2 receiver ports so you can have 2 separate controllers (12 channel R/C).
The VEX robot controller contains 2 pic18f8520 chips. One is labled "user" and the other "master". They share a 10mhz crystal. Among other components are a lm294 5v regulator and a smaller 2931A 8pin soic (probably a 3.3v regulator). There are 5 LEDs (one glows through a red slit over the other 4 but it is not an IR port). A ULN2003A (seven darlington
drivers) chip is found near the servo motor outputs. Servos/Motors:
The servo signal is standard 1.5ms servo center/motor stopped and occur about every 17ms.
They seem to be good and powerful and a good deal at the 1/2 off price.
They include a servo saver clutch and extra gears.
The hardware is nonstandard for servos, it has two mounting screw holes on top and a hole for a square drive shaft instead of the plastic arm that servos usually have. This may be quite useful for certain types of wheel mounting, but note that the square shaft is not secured to the servo, I guess you could glue it if doing non VEX hardware.
White wire=signal, Orange=+ 6 to 7.2v, Black=GND Ultrasonic Range Sensor:
NOTE: not usable with the VEX without doing programming!!!
It was commented on the web that this is a Daventech SRF-04 so its a good deal at the 1/2 off price. I dont know if the quality is as good as the parallax ping. If it is a Daventech then this info should be valid:
Voltage: 5V only Required
Current: 30 mA Typical, 50 mA Max.
Frequency: 40 KHz
Maximum Range: 3 meters (~10 ft.)
Minimum Range: 3 cm (~1")
Sensitivity: Detect 3 cm dia. broom handle at > 2 m
Input Trigger: 10 uSec min. TTL level pulse
Output Pulse: 10uS to 18mS ~36mS if no object detected, wait 10mS before next pulse
Note it has lables input and output. You send a pulse to its "Input" line and get the signal back from its "Output" line. There was some previous confusion about this, but I have verified that it works that way. Connect both reds to +5v and both blacks to GND or determine which are no-connect. Starting Project
The basic project given, "squarebot" is a good start
to test the kit and is supprisingly powerful for the
little servos running on a fully charged nicd pack.
Its downfall is a drive gear that barely doesnt touch the ground (level floor only) Programming Kit:
The programming kit contains a USB to RS232 port, a RS232 programming module that connects to the controller to reflash it. This mystery hardware programmer box is not a simple breakout. It contains a RS232 level shifter and a small PIC12 controller. It is likely possible to find a way to reprogram the device without the kit but it may involve board modifications since its not clear what the small PIC12 is doing. There are discussions on this but any real info was suppressed last time I checked on the list. Most likely if you want to program or use any of the advanced sensors then you have to buy the programming kit. It comes with EasyC, on the cd is also Microchip C and you may be able to program in PIC assembly too. The web says my EasyC is out of date with what the First Robotics group is using in schools and its a $50 or more upgrade.
As we learn new things or write code, it can be posted here. Thanks for helping!
- GrayMack
EditText
of this page
(last modified 2007-02-07 13:37:21)
FindPage
by browsing, searching, or an index
Or try one of these actions:
LikePages,
LocalSiteMap,
SpellCheck