Victor 883 Speed Control
Scott Portocarrero
Posts: 72
After I master the BOEBot I am going to build a bigger version (a much bigger version) I have two Victor 883's controlling two 24 volt wheel chair motors. Can I connect the 883s to the BOE as if they were servos or do I need a PWMPAL. I'm not real clear on the BS2 & PWM.
Comments
Can You post the specs for the Victor 883?
_________$WMc%___________
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
The Truth is out there············································ BoogerWoods, FL. USA
http://www.robotmarketplace.com/products/IFI-V883.html
The link you provided was not very informative.
To be safe I would use a driver, something like the IRL510 MOSFET to power the inputs of the V883. I would place a current meter in series with the V883 input to measure the current needed to drive the V883. I would also add in a resister, increasing the value to find the minimum current needed to drive the input of the V883. You may find that the current is in the range of the $STAMPs out put. less then 15mA.
PWM is pretty easy thanks to the folks @ Parallax. Take a look at controlling a servo in the StampWorks Manual.
________________$WMc%_______
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
The Truth is out there············································ BoogerWoods, FL. USA
I'm not sure if the PWMPAL is necessary to do this, especially since BS2's were used in the early FRC controllers that were made by IFIRobotics (who makes the Victor speed controllers).
Sadly, the code examples from IFI are slightly useless, since the actual PWM output was generated off a different microcontroller, not the BS2 itself. I have a PWMPAL lying around here somewhere that I might try just for kicks to see if I can get the Victor to be driven correctly. If I make any break throughs (doubt it ) .. I'll post them here.
' {$STAMP BS2}
' {$PBASIC 2.5}
counter········ VAR·· Word
pulseCount····· VAR·· Word
address········ VAR·· Byte
instruction···· VAR·· Byte
INPUT 0:INPUT 1: INPUT 3
DATA· "Q"
FREQOUT 15, 1000, 4500
HIGH 14···························· 'Program Indicator LED on
HIGH 13···························· 'Victor 883 Power Up
HIGH 3····························· 'HB25 Power Up
DO UNTIL (instruction = "Q")
·READ address, instruction
·address = address + 1
·SELECT instruction
··· CASE "F":GOSUB Forward
··· CASE "D":GOSUB Veer_Left
··· CASE "L":GOSUB Left
··· CASE "C":GOSUB Veer_Right
··· CASE "R":GOSUB Right
··· CASE "J":GOSUB Turn_Around_Right
··· CASE "V":GOSUB Turn_Around_Left
··· CASE "B":GOSUB Backward
··· CASE "Y":GOSUB Waist_Left_One_Degree
··· CASE "X":GOSUB Waist_Right_One_Degree
··· CASE "P":GOSUB Delay
·ENDSELECT
LOOP
·LOW 14···························· 'Program Indicator LED off··························· '
·LOW 13···························· 'Victor 883 Power Down
·LOW 3····························· 'HB25 Power Down
·INPUT 0:INPUT 1: INPUT 2
END
Forward:
FOR pulseCount = 1 TO 60
PULSOUT 0, 750 + pulseCount
PULSOUT 1, 750 + pulseCount
PAUSE 17
NEXT
FOR pulseCount = 1 TO 65
PULSOUT 0, 810
PULSOUT 1, 810
PAUSE 17
NEXT
RETURN
Veer_Left:
FOR pulseCount = 1 TO 75
PULSOUT 0, 750 + pulseCount
PAUSE 17
NEXT
FOR pulseCount = 1 TO 100
PULSOUT 0, 825
PAUSE 17
NEXT
RETURN
Veer_Right:
FOR pulseCount = 1 TO 75
PULSOUT 1, 750 + pulseCount
PAUSE 17
NEXT
FOR pulseCount = 1 TO 100
PULSOUT 1, 825
PAUSE 17
NEXT
RETURN
Left:
FOR pulseCount = 1 TO 75
PULSOUT 0, 750 + pulseCount
PAUSE 17
NEXT
FOR pulseCount = 1 TO 50
PULSOUT 0, 825
PAUSE 17
NEXT
FOR pulseCount = 1 TO 60
PULSOUT 0, 750 + pulseCount
PULSOUT 1, 750 + pulseCount
PAUSE 17
NEXT
FOR pulseCount = 1 TO 10
PULSOUT 0, 810
PULSOUT 1, 810
PAUSE 17
NEXT
RETURN
Right:
FOR pulseCount = 1 TO 75
PULSOUT 1, 750 + pulseCount
PAUSE 17
NEXT
FOR pulseCount = 1 TO 50
PULSOUT 1, 825
PAUSE 17
NEXT
FOR pulseCount = 1 TO 60
PULSOUT 0, 750 + pulseCount
PULSOUT 1, 750 + pulseCount
PAUSE 17
NEXT
FOR pulseCount = 1 TO 10
PULSOUT 0, 810
PULSOUT 1, 810
PAUSE 17
NEXT
RETURN
Backward:
FOR pulseCount = 20 TO 1
PULSOUT 0, 750 - pulseCount
PULSOUT 1, 750 - pulseCount
PAUSE 17
NEXT
FOR pulseCount = 100 TO 1
PULSOUT 0, 730
PULSOUT 1, 730
PAUSE 17
NEXT
RETURN
Turn_Around_Right:
FOR pulseCount = 1 TO 90
PULSOUT 0, 750 + pulseCount
PAUSE 17
NEXT
FOR pulseCount = 90 TO 1
PULSOUT 1, 750 - pulseCount
PAUSE 17
NEXT
PAUSE 500
RETURN
Turn_Around_Left:
FOR pulseCount = 80 TO 1
PULSOUT 0, 750 - pulseCount
PAUSE 17
NEXT
FOR pulseCount = 1 TO 80
PULSOUT 1, 750 + pulseCount
PAUSE 17
NEXT
RETURN
Waist_Left_One_Degree:
FOR pulseCount = 149 TO 1
PULSOUT 2,750 - pulseCount
PAUSE 20
NEXT
RETURN
Waist_Right_One_Degree:
FOR pulseCount = 1 TO 150
PULSOUT 2,750 + pulseCount
PAUSE 20
NEXT
RETURN
Delay:
FOR counter = 1 TO 80
PULSOUT 2,750
PAUSE 20
NEXT
RETURN
I can tell you that it represents an evolutionary advancement in humannoid android technology. No, it is not a Bi-ped. It does have an articulated spine, is Adult- sized, and can·bend completely over a hospital bed or dinner table!
·The Victors have slight variations in their parameters.·Make sure to test each individualy. The HB-25's· are fine for now (I still use them for now),but not for robot joints. If you want greater precision and strength ,you may want to look into hacking your old servos and using them in conjunction with automotive winsheild wiper motors.Then·use the PSC.·There are also powerful servos you can buy from Vantec, but they can be quite expensive, $500 or more.
Ken
I have also had some recent success using pulsout to drive the 883 from a BS2 (although I haven't got it down perfect yet).
As far as the JR 9303 is concerned, I wouldn't be surprised if you needed the driver from IFI. If you had the hardware and time, I suppose you could compare the PWM output from the SuperBOE against the JR 9303 on a scope. Until recently, my experience on driving Victors has only been with IFI Competition Controllers.