Shop OBEX P1 Docs P2 Docs Learn Events
Position Controller Demo.bs2 How do you stop the motor and still keep your da — Parallax Forums

Position Controller Demo.bs2 How do you stop the motor and still keep your da

sam_sam_samsam_sam_sam Posts: 2,286
edited 2010-04-04 22:17 in Robotics
With out your value going to (0000)

So far the only way to stop the motor is with this command how ever this the data to· 0000

SEROUT CommPin, BaudValue, [noparse][[/noparse]CLRP]·············· 'Clears any prior position info

What I want to do is stop the motor with a code command line·and still have the count that·was there before I stop the motor
'------------------------------------------------------------------------'
' Position Controller Demo.bs2                                           '
'                                                                        '
' < Description >                                                        '
' This code is a simple demo interface for a two-wheel robot design.     '
' It sends a command to travel forward 350 positions and continually     '
' queries the current position of each wheel to display to the           '
' debug (serial) terminal. Once the 350 positions are completed the      '
' controller will loop forward and then backward.                        '
'                                                                        '
' < Harware Configuration >                                              '
' This sample uses an HB25 to control a 12 VDC motor                     '
'                                                                        '
'------------------------------------------------------------------------'
' {$STAMP BS2}
' {$PBASIC 2.5}
'--- Command Value Constants ---

QPOS         CON      $08            'Query Position
QSPD         CON      $10            'Query Speed
CHFA         CON      $18            'Check for Arrival
TRVL         CON      $20            'Travel Number of Positions
CLRP         CON      $28            'Clear Position
SREV         CON      $30            'Set Orientation as Reversed
STXD         CON      $38            'Set TX Delay
SMAX         CON      $40            'Set Speed Maximum
SSRR         CON      $48            'Set Speed Ramp Rate
 
'--- User Constants & Variables ---

LeftWheel    CON      1              'ID of the left side Position Controller
CommPin      CON      7             'communication bus pin
BaudValue    CON      32             'for 19.2kbps
Wheel        VAR      Byte           'Specifies which wheel to command for subroutines
Distance     VAR      Word           'Used to set the travel distance
RxData       VAR      Word           'Used to receive data
 
'--- Initialization ---

PAUSE 1000
SEROUT CommPin, BaudValue, [noparse][[/noparse]CLRP]               'Clears any prior position info
 
 
'Go forward 5000 positions

Forwards:
Wheel = LeftWheel
Distance = 5000
GOSUB GoDistance
GOTO Checkloopf
 
'Go backward 5000 positions

Backwards:
Wheel = LeftWheel
Distance = - 5000
GOSUB GoDistance
GOTO Checkloopb
 
'Continually check the position of each wheel

Checkloopf:

  Wheel = LeftWheel
  DEBUG "L= "
  GOSUB DisplayPosition
  DEBUG CR
  IF RxData = 4999 THEN GOSUB Backwards ELSE GOTO Checkloopf
 
Checkloopb:

  Wheel = LeftWheel
  DEBUG "L= "
  GOSUB DisplayPosition
  DEBUG CR
  IF RxData = 1 THEN GOSUB Forwards ELSE GOTO Checkloopb
 
'--- Subroutines ---

GoDistance:

  SEROUT CommPin, BaudValue, [noparse][[/noparse]TRVL + Wheel]
  SEROUT CommPin, BaudValue, [noparse][[/noparse]Distance.HIGHBYTE, Distance.LOWBYTE]
RETURN
 
 
DisplayPosition:

  SEROUT CommPin, BaudValue, [noparse][[/noparse]QPOS + Wheel]
  SERIN  CommPin, BaudValue, [noparse][[/noparse]RxData.HIGHBYTE, RxData.LOWBYTE]
  DEBUG SDEC RxData

RETURN
 
 

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
··Thanks for any·idea.gif·that you may have and all of your time finding them smile.gif

·
·
·
·
Sam

Post Edited (sam_sam_sam) : 4/4/2010 10:23:57 PM GMT
Sign In or Register to comment.