T
Tomt0m
Guest
Ik gebruik een stingray robot met parallax board.
Hiermee wil ik mijn bluebird bms631 servo aansturen.
Ik heb mijn servo omgebouwd naar continious rotation, maar ik heb bij andere servo's ervaren dat dit geen invloed moet hebben op de code.
Nu heb ik de volgende 2 code's om de servo aan te sturen:
De 1e code zou moeten werken bij de Width van 1000 voor de ene richting en 2000 voor de andere richting. (1500 betekent stil staan).
Deze code werkt maar sporadisch, ik heb geen idee waarom.
De 2e code zou moeten werken met een delay van 1_000_000 of 100_000. De count zorgt hier voor het aantal stappen, wat er voor zorgt dat ik precies het aantal rotaties kan bepalen. helaas werkt deze code helemaal niet bij deze servo.
Mijn vraag is of iemand, hopelijk met ervaring met deze servo, mij kan helpen met de aansturing.
Alvast bedankt.
Hiermee wil ik mijn bluebird bms631 servo aansturen.
Ik heb mijn servo omgebouwd naar continious rotation, maar ik heb bij andere servo's ervaren dat dit geen invloed moet hebben op de code.
Nu heb ik de volgende 2 code's om de servo aan te sturen:
Code:
PUB Set(Pin, Width)|S_Width 'Set Servo value
S_Width := LowRange #> Width <# HighRange 'limit Width value
Pin := 0 #> Pin <# 31 'limit Pin value between 0 and 31
if RampFlag == 0
ServoData[Pin] := (clkfreq / _1uS * S_Width) 'calculate # of clocks for a specific Pulse Width
else
ServoData[Pin] := ((clkfreq / _1uS * S_Width)/SERVO#CoreSpeed)*SERVO#CoreSpeed
ServoTarget[Pin] := ServoData[Pin]
if S_Width==Width
dira[Pin] := 1 'set selected servo pin as an OUTPUT
else
dira[Pin] := 0 'set selected servo pin as an INPUT only if Width out of range
ServoPinDirection := dira 'Read I/O state of ALL pins
Code:
PUB lift(Pin, Delay, Count)
dira[Pin]~~
repeat Count
!outa[Pin]
waitcnt(Delay + cnt)
De 1e code zou moeten werken bij de Width van 1000 voor de ene richting en 2000 voor de andere richting. (1500 betekent stil staan).
Deze code werkt maar sporadisch, ik heb geen idee waarom.
De 2e code zou moeten werken met een delay van 1_000_000 of 100_000. De count zorgt hier voor het aantal stappen, wat er voor zorgt dat ik precies het aantal rotaties kan bepalen. helaas werkt deze code helemaal niet bij deze servo.
Mijn vraag is of iemand, hopelijk met ervaring met deze servo, mij kan helpen met de aansturing.
Alvast bedankt.