[Robotgroup] Robot Head: BS2 Stamp programming Help?!

Gray Mack gray_mack at yahoo.com
Tue Aug 5 10:51:45 PDT 2008


I am not familiar with the debugin command. I know the serin command does have a timeout that might help.
Your servos have to have that pulse about every 20 msec or they will power off and any torque on them may cause them to rotate since they are no longer actively seeking the last position.
The solutions are 1. external servo controller 2. timeout on the serial command so it can refresh the servo pulse or 3. send pings to the serial port every 20 msec when there is no data, some command that tells it no mouth movement but update your servos.

For wierdness at startup, it is possible that you are draining too much current at startup to home the servos. If your batteries or supply cant keep up with that current spike then what it is supplying to the basic stamp can brown-out the voltage causing the processor to reset. This might explain why the first few instructions repeat several times or intermitently. Try running the servos/stamp off a different battery and see if that makes a difference.

-Gray

--- On Tue, 8/5/08, LHudson <lhudson73 at yahoo.com> wrote:

> From: LHudson <lhudson73 at yahoo.com>
> Subject: [Robotgroup] Robot Head:  BS2 Stamp programming Help?!
> To: "The Robot Group Mailing List" <robotgroup at puremagic.com>
> Date: Tuesday, August 5, 2008, 10:48 AM
> I've included my code module as an attachment.
>  
> I have four pins connected to a "Mouth Module"
> with LEDs that light up.  The Serial Port is tied to a DOT
> NET speech programming API event.  The BS2
> "listens" for the Serial data inside of a
> DO...LOOP:
>  
> DO
>   '~ SERIN 16\0, BAUD, [DEC COMDATA]
>   DEBUG CR, "Enter Command: "
>   DEBUGIN DEC COMDATA
>  
>   SELECT COMDATA
>     CASE CMD_Mouth_Pin2_ON: HIGH 2
>     CASE CMD_Mouth_Pin2_OFF: LOW 2
>     CASE CMD_Mouth_Pin1_ON: HIGH 1
>     CASE CMD_Mouth_Pin1_OFF: LOW 1
>     CASE CMD_Mouth_Pin4_ON: HIGH 4
>     CASE CMD_Mouth_Pin4_OFF: LOW 4
>     CASE CMD_Mouth_Pin5_ON: HIGH 5
>     CASE CMD_Mouth_Pin5_OFF: LOW 5
>   ENDSELECT
> LOOP
>  
> I am happy to report that the mouth movement is quite
> realistic and entertaining, when tied to the Speech API
> Events!  I will bring this to the Show & Tell on
> Thursday.  Also, this is weird, but it doesn't matter
> if you use the SERIN or the DEBUGIN Code, it still works
> the same whether you are using the DOT NET Serial Interface
> or the Stamp Editor?!
>  
> But okay here is my actual question:  I am having problems
> with the Pan & Tilt servos that are attached to the
> head.  If you inspect the code attachment, you can see the
> input processing to determine the servo position.  With
> some experimentation, I was able to engineer it so that by
> inputting a command, e.g. "1010" or
> "2130" I was able to position the head... not with
> 100% consistency or accuracy, but it's a good start.
>  
> The problem is that if there is no command to execute the
> Pan & Tilt, then the servos receive no PULSOUT.  With
> no charge to the motors, the slightest bump can cause a
> severe case of whiplash.  My tentative solution was to put
> additional PULSOUT codes before the ...LOOP:  
>  
> DO
>   '~ SERIN 16\0, BAUD, [DEC COMDATA]
>   DEBUG CR, "Enter Command: "
>   DEBUGIN DEC COMDATA
>  
>   IF COMDATA < 100
>     ' {Do the Speech Code}
>   ELSEIF COMDATA < 1000
>     ' {Do the Movement Code}
>   ELSE
>     ' {Do the Pan or Tilt Code}
>   ENDIF
>  
>   PULSOUT PIN_PanTilt_Pan, POS_PanTilt_Pan
>   PULSOUT PIN_PanTilt_Tilt, POS_PanTilt_Tilt
> LOOP
>  
> However this causes much weirdness to happen.  In the
> attachment, there is an initialization sequence; it lights
> up the LEDs so I can verify they are connected to
> the correct pins, and it also centers the servos, before
> the DO...LOOP that receives the input and executes the
> command.  When I include the two PULSOUT codes before the
> ...LOOP, the result is that this initiation sequence,
> which is supposed to occur before the DO...LOOP, executes
> over and over and over again!
>  
> Here is another thing:  sometimes, when I am debugging in
> the Stamp Editor, it will go through the initiation sequence
> 10-11x before finally displaying the "Enter
> Command:" prompt in the debug window.  Is this somehow
> related?
>  
> Thanks!
>  
> L. Scott Hudson
>  
> "There are known knowns. These are things we know that
> we know. There are known unknowns. That is to say, there are
> things we know we don't know. But, there are also
> unknown unknowns. These are things we don't know we
> don't know." 
>  
> -- Donald Rumsfeld, describing the IBM "Rational
> Software" Platform
> 
> 
>       _______________________________________________
> Robotgroup mailing list
> Robotgroup at puremagic.com
> http://lists.puremagic.com/cgi-bin/mailman/listinfo/robotgroup


      


More information about the Robotgroup mailing list