November 02, 2024, 12:34:19 PM

News:

You can now use Vixen to program your Prop-1 and Prop-2 controllers!  Get started quickly and easily, without having to learn PBASIC.  Details in the Library forum.


No creativity

Started by tobmaster340, September 10, 2008, 09:32:23 AM

Previous topic - Next topic

tobmaster340

Hey all, I created a pneumatic skeleton.  It has six cylinders, and six solenoids controlled with a prop-1 along with a chipcorder for sound playback.
You can see it here... http://garageofevil.ning.com/video/video/show?id=2243951%3AVideo%3A3182

That said, the routine you see is made with lousy code by myself and two other fellow haunters.  The prop-1 is maxed out!

The skeleton can bend at the waist, lift right arm, bend right elbow, lift left arm, bend left elbow, and open mouth.  We got it working, but have no creativity.  Can any of you expert programmers that might have an idea of what to make this thing do..help me out.  I can e-mail the current code to whomever is interested!!

Heck, I'll load your program the night you send it, re-video the skeleton, and re-post.  We can all judge the best "dance" if you like!

I am sorry for asking, but really, I am so programming challenged I am lucky this thing even works!

thanks so much!

Toby Wrolson
haunt31.com
Haunt or be HAUNTED!!

livinlowe

Is there a reason you can't post the code on the forum? I am no expert programmer (that would be Jon) but I can take a look. I am member livinlowe on the garageofevil site. If you can post the code, I am sure Jon can help tweak the code to fit and other members might be able to help with the "show" of your skeleton.
Shawn
Scaring someone with a prop you built -- priceless!

tobmaster340

Sure, how do I do such a thing? oh, cut and paste...let me try.....
Oh, also, the only constraint is that the arm (either right or left) must be raised or raising before bending.  In the down position, if bent they hit the legs.
thanks
Toby


' =========================================================================
'
'   File....... Skeleton.BS1
'   Purpose....
'
'   {$STAMP BS1}
'   {$PBASIC 1.0}
'
' =========================================================================


' -----[ Program Description ]---------------------------------------------


' -----[ Revision History ]------------------------------------------------


' -----[ I/O Definitions ]-------------------------------------------------

SYMBOL  Audio        = PIN0                  ' scream
SYMBOL  Mouth        = PIN1                  ' Pump blood
SYMBOL  Hips         = PIN2                  ' Pump blood
SYMBOL  RightArmLift = PIN3                  ' right arm
SYMBOL  RightArmBend = PIN4                  ' right arm
SYMBOL  LeftArmLift  = PIN5                  ' left arm
SYMBOL  LeftArmBend  = PIN6                  ' left arm
SYMBOL  Trigger      = PIN7                  ' active-high input


' -----[ Constants ]-------------------------------------------------------

SYMBOL  IsOn            = 1                     ' active high
SYMBOL  IsOff           = 0


' -----[ Variables ]-------------------------------------------------------

SYMBOL  secs            = B2
SYMBOL  count           = B3


' -----[ EEPROM Data ]-----------------------------------------------------


' -----[ Initialization ]--------------------------------------------------

Reset:
  DIRS = %01111111


' -----[ Program Code ]----------------------------------------------------

  count = 0
  DEBUG "Warming up", CR
  secs = 3
  GOSUB Timer                                   ' wait for PIR to warm up

Main:
  DEBUG "Waiting", count, " -- ", Trigger, " (1 = trigger)", CR
  count = count + 1
  IF Trigger = IsOff THEN Main                  ' wait for trigger

Sequence:

  DEBUG "Triggered!", count, CR

  LeftArmLift = IsOn                            ' same as Out0 = 1
  RightArmLift = IsOn                           ' same as Out0 = 1
  secs = 1
  GOSUB Timer                                   ' wait before the next run

  RightArmBend = IsOn                           ' same as Out0 = 1
  LeftArmBend = IsOn                            ' same as Out0 = 1

  Audio = IsOn
  Mouth = IsOn                                  ' same as Out0 = 1
  Hips = IsOn
  secs = 2
  GOSUB Timer                                   ' wait before the next run
                                                ' wait before the next run
  Mouth = IsOff                                 ' same as Out0 = 0
  Audio = IsOff
  secs = 1
  GOSUB Timer                                   ' wait before the next run

  Hips = IsOff
  RightArmBend = IsOff                          ' same as Out0 = 1
  LeftArmBend = IsOff                           ' same as Out0 = 1
  secs = 3
  GOSUB Timer                                   ' wait before the next run

  LeftArmLift = IsOff                           ' same as Out0 = 1
  RightArmLift = IsOff                          ' same as Out0 = 1

  DEBUG "Waiting ten secconds", CR
  secs = 10
  GOSUB Timer                                   ' Wait to reactivate

  count = 0

Release:
  DEBUG "Waiting for people to leave", count, CR
  count = count + 1
  'IF Trigger = IsOn THEN Release                ' force trigger release
  count = 0
  GOTO Main


' -----[ Subroutines ]-----------------------------------------------------

' Put number or seconds in "secs" before calling
' -- secs is modified by this subroutine
' -- maximum delay is 255 second (4 mins, 15 seconds)

Timer:
'  DEBUG "Sleep ",secs, CR
  IF secs = 0 THEN Timer_Done
  PAUSE 1000
  secs = secs - 1
  GOTO Timer

Timer_Done:
  RETURN


tobmaster340

No comments on our crappy coding?  Anyone?  Really, I am looking for some assistance!  I know, crunch time, and I waited to the last minute!
oh well, thanks in advance.
Toby

JonnyMac

September 11, 2008, 06:00:55 PM #4 Last Edit: September 11, 2008, 06:03:21 PM by JonnyMac
I can't speak for how well the program runs your prop, but you've clearly followed our lead in many areas (way to go).  I've made minor updates in that I added trigger debouncing and changed the timer resolution to 0.1 seconds to give you the opportunity to have more precise movement.

BTW, drop the DEBUG statements unless your program is not working and you're trying to figure out why; they just take space (not too much) and add time to your program (BS1 DEBUG is very slow).

' =========================================================================
'
'   File....... Skeleton.BS1
'   Purpose....
'
'   {$STAMP BS1}
'   {$PBASIC 1.0}
'
' =========================================================================


' -----[ Program Description ]---------------------------------------------


' -----[ Revision History ]------------------------------------------------


' -----[ I/O Definitions ]-------------------------------------------------

SYMBOL  Audio           = PIN0                  ' scream
SYMBOL  Mouth           = PIN1                  ' Pump blood
SYMBOL  Hips            = PIN2                  ' Pump blood
SYMBOL  RtArmLift       = PIN3                  ' right arm
SYMBOL  RtArmBend       = PIN4                  ' right arm
SYMBOL  LtArmLift       = PIN5                  ' left arm
SYMBOL  LtArmBend       = PIN6                  ' left arm
SYMBOL  Trigger         = PIN7                  ' active-high input


' -----[ Constants ]-------------------------------------------------------

SYMBOL  IsOn            = 1                     ' active high
SYMBOL  IsOff           = 0


' -----[ Variables ]-------------------------------------------------------

SYMBOL  timer           = W4
SYMBOL  lottery         = W5


' -----[ EEPROM Data ]-----------------------------------------------------


' -----[ Initialization ]--------------------------------------------------

Reset:
  PINS = %00000000                              ' clear all pins
  DIRS = %01111111                              ' set outputs

Warm_Up:
  timer = 300
  GOSUB Run_Timer                               ' 30-second PIR warm-up


' -----[ Program Code ]----------------------------------------------------

Main:
  timer = 0

Check_Trigger:
  RANDOM lottery                                ' stir random number
  PAUSE 5                                       ' loop delay
  timer = timer + 5 * Trigger                   ' update timer
  IF timer < 100 THEN Check_Trigger             ' hold for 0.1 sec input

Sequence:
  LtArmLift = IsOn
  RtArmLift = IsOn
  timer = 10
  GOSUB Run_Timer

  RtArmBend = IsOn
  LtArmBend = IsOn

  Audio = IsOn
  Mouth = IsOn
  Hips = IsOn
  timer = 20
  GOSUB Run_Timer

  Mouth = IsOff
  Audio = IsOff
  timer = 10
  GOSUB Run_Timer

  Hips = IsOff
  RtArmBend = IsOff
  LtArmBend = IsOff
  timer = 30
  GOSUB Run_Timer

  LtArmLift = IsOff
  RtArmLift = IsOff

  timer = 100
  GOSUB Run_Timer

Hold_Release:
  IF Trigger = IsOn THEN Hold_Release
    GOTO Reset


' -----[ Subroutines ]-----------------------------------------------------

' Put number of ticks (0.1 second units) in "timer" before calling
' -- timer is modified by this subroutine
' -- maximum delay is 6553.5 seconds

Run_Timer:
  IF timer = 0 THEN Timer_Done
    PAUSE 100
    timer = timer - 1
    GOTO Run_Timer

Timer_Done:
  RETURN
Jon McPhalen
EFX-TEK Hollywood Office

livinlowe

Yes, I agree your code looks good. I noticed this code is not the same as in the video (I'm pretty sure). I have been trying to find a state machine program for the Prop-1 but have been unable, but I noticed this program is far from filling the Prop-1's memory(Prop-1 maxed out?).

I'm not sure what you think is so bad, you've done a darn good job!!!  ;)
Shawn
Scaring someone with a prop you built -- priceless!

EricTheMannn

No creativity!?

that thing you made is incredable, well done!

-Eric ;D

WooHoo

tobmaster340

livinlowe, you are correct!!! upon review, I posted the wrong code.  The one posted is what we WANTED to use.  But, it doesn't work!  I took Jon's modifications to use elsewhere, but still may be begging for more future help.  To make the skeleton move like you saw, here is the correct program the real one...the one that maxed out the memory: (I would love a few more lunges, or arm lifts, but don't have the space this way....

THANKS SO MUCH
Toby


' =========================================================================
'
'   File....... skeleton moan 3.BS1
'   Purpose....
'
'   {$STAMP BS1}
'   {$PBASIC 1.0}
'
' =========================================================================


' -----[ Program Description ]---------------------------------------------


' -----[ Revision History ]------------------------------------------------


' -----[ I/O Definitions ]-------------------------------------------------

SYMBOL  Audio        = PIN0                  ' scream
SYMBOL  Mouth        = PIN1                  ' open mouth
SYMBOL  Hips         = PIN2                  ' bend at waist
SYMBOL  RightArmLift = PIN3                  ' right arm lift
SYMBOL  RightArmBend = PIN4                  ' right arm bend
SYMBOL  LeftArmLift  = PIN5                  ' left arm lift
SYMBOL  LeftArmBend  = PIN6                  ' left arm bend
SYMBOL  Trigger      = PIN7                  ' active-high input


' -----[ Constants ]-------------------------------------------------------

SYMBOL  IsOn            = 1                     ' active high
SYMBOL  IsOff           = 0


' -----[ Variables ]-------------------------------------------------------

SYMBOL  secs            = B2
SYMBOL  count           = B3


' -----[ EEPROM Data ]-----------------------------------------------------


' -----[ Initialization ]--------------------------------------------------

Reset:
  DIRS = %01111111


' -----[ Program Code ]----------------------------------------------------

  count = 0
  DEBUG "Warming up", CR
  PAUSE 2000                                   ' wait for PIR to warm up

Main:
'  DEBUG "Waiting", count, " -- ", Trigger, " (1 = trigger)", CR
  count = count + 1
  IF Trigger = IsOff THEN Main                  ' wait for trigger

Sequence:

  'DEBUG "Triggered!", count, CR

  LeftArmLift = IsOn                            ' same as Out0 = 1
  RightArmLift = IsOn                           ' same as Out0 = 1
  PAUSE 400

  Audio = IsOn
  Mouth = IsOn                                  ' same as Out0 = 1
  Hips = IsOn
  RIGHTARMBEND = ISON
  PAUSE 200                                     ' same as Out0 = 1
  LeftArmBend = IsOn                           ' same as Out0 = 1

  secs = 2
  GOSUB HipMove

  LeftArmLift = IsOff
  RightArmLift = IsOff
  PAUSE 200

  Hips = IsOn
  RIGHTARMBEND = ISON
  LeftArmBend = IsOn
  PAUSE 200
  LeftArmLift = IsOn
  RightArmLift = IsOn

  secs = 2
  GOSUB HipMove

  secs = 1
  GOSUB HipMove

  Hips =IsOff
  PAUSE 100
  Mouth = IsOff
  Audio = IsOff

  RightArmBend = IsOff
  LeftArmBend = IsOff
  LeftArmLift = IsOff
  RightArmLift = IsOff
  PAUSE 900

  Hips = IsOn

  'Audio = IsOn
  Mouth = IsOn                                  ' same as Out0 = 1
  PAUSE 500
  Mouth = IsOFF

  Mouth = IsOn                                  ' same as Out0 = 1
  PAUSE 500
  Mouth = IsOFF

  Mouth = IsOn                                  ' same as Out0 = 1
  PAUSE 500
  Mouth = IsOFF

  RIGHTARMBEND = ISON
  LeftArmBend = IsOn
  PAUSE 200
  LeftArmLift = IsOn
  RightArmLift = IsOn
                                    ' same as Out0 = 0
  secs = 2
  GOSUB HipMove
  'Audio = IsOff

  secs = 1
  GOSUB HipMove

  secs = 2
  GOSUB HipMove

  PAUSE 400
  Hips = IsOff

  Audio = IsOn
  Mouth = IsOn                                  ' same as Out0 = 1
  PAUSE 10

  RightArmBend = IsOff
  LeftArmBend = IsOff
  PAUSE 1600
  LeftArmLift = IsOff                           ' same as Out0 = 1
  RightArmLift = IsOff                          ' same as Out0 = 1
  PAUSE 100
  Mouth = IsOff
  Audio = IsOff

  RightArmBend = IsOn
  LeftArmBend = IsOn
  PAUSE 800
  LeftArmLift = IsOn                           ' same as Out0 = 1
  RightArmLift = IsOn                          ' same as Out0 = 1

'  DEBUG "Waiting with Arms", CR
  PAUSE 7000
  GOSUB AllOff


  'put delay time here
  PAUSE 30000


Release:
  'DEBUG "Waiting for people to leave", count, CR
  'count = count + 1
  'IF Trigger = IsOn THEN Release                ' force trigger release
  'count = 0
  GOTO Main


' -----[ Subroutines ]-----------------------------------------------------

' Put number or seconds in "secs" before calling
' -- secs is modified by this subroutine


HipMove:
Hips = IsOn
HipLoop:
IF secs = 0 THEN Hip_Done
  PAUSE 100
  secs = secs - 1
  GOTO HipLoop

Hip_Done:
  Hips = IsOff
  PAUSE 300
RETURN
                                                ' wait before the next run
'Timer:
'  DEBUG "Sleep ",secs, CR
'  IF secs = 0 THEN Timer_Done
'  PAUSE 1000
'  secs = secs - 1
'  GOTO Timer

'Timer_Done:
'  RETURN

AllOff:
'Mouth        = IsOff
Hips         = IsOff
RightArmLift = IsOff
RightArmBend = IsOff
LeftArmLift  = IsOff
LeftArmBend  = IsOff
RETURN

JonnyMac

September 13, 2008, 09:20:05 AM #8 Last Edit: September 13, 2008, 09:24:56 AM by JonnyMac
There are many roads that lead to Rome -- and a lot of ways to pack a lot of program into a small controller like the Prop-1.

Part of the problem you're having, I beleive, is that you have a lot of redundant commands, that is, you're turnning things on that are already on.  Keep in mind that every SomePin = IsOn command takes code space.  I went through and added up the number of PAUSE instructions as the program runs; counting two for each HipMove call I come up with about 28.  That means you have 28 discrete steps in the program (as is) and if you convert this to a sequencer engine (see below) then you can handle that plus a whole lot more.

Granted, this is not quite as easy to edit or read, but it does give you the ability to get where you're going.  I've started the sequence but will leave it to you to finish.  If you want or need more steps simply insert more EEPROM lines in the table;  the last one, though, should be

  EEPROM (%10000000, 000)

... as this tells the sequencer engine that the sequence is done.


' =========================================================================
'
'   File...... Skeleton_Moan_Sequencer.BS1
'   Purpose...
'   Author....
'   E-mail....
'   Started...
'   Updated...
'
'   {$STAMP BS1}
'   {$PBASIC 1.0}
'
' =========================================================================


' -----[ Program Description ]---------------------------------------------


' -----[ Revision History ]------------------------------------------------


' -----[ I/O Definitions ]-------------------------------------------------

SYMBOL  Trigger         = PIN7                  ' active-high input
SYMBOL  LeftArmBend     = PIN6                  ' left arm bend
SYMBOL  LeftArmLift     = PIN5                  ' left arm lift
SYMBOL  RightArmBend    = PIN4                  ' right arm bend
SYMBOL  RightArmLift    = PIN3                  ' right arm lift
SYMBOL  Hips            = PIN2                  ' bend at waist
SYMBOL  Mouth           = PIN1                  ' open mouth
SYMBOL  Audio           = PIN0                  ' scream


' -----[ Constants ]-------------------------------------------------------

SYMBOL  IsOn            = 1                     ' for active-high in/out
SYMBOL  IsOff           = 0

SYMBOL  Yes             = 1
SYMBOL  No              = 0


' -----[ Variables ]-------------------------------------------------------

SYMBOL  showBits        = B0
SYMBOL   endOfShow      = BIT7

SYMBOL  timer           = B2
SYMBOL  pntr            = B3


' -----[ Initialization ]--------------------------------------------------

Reset:
  PINS = %00000000                              ' clear all outputs
  DIRS = %01111111                              ' make P0-P6 outputs

  PAUSE 30000                                   ' PIR warm-up/show delay


' -----[ Program Code ]----------------------------------------------------

Main:
  timer = 0                                     ' reset timer

Check_Trigger:
  PAUSE 5                                       ' loop pad
  timer = timer + 5 * Trigger                   ' update timer
  IF timer < 100 THEN Check_Trigger             ' wait for 0.1 sec input
    pntr = 0                                    ' start of show

Play_Show:
  READ pntr, showBits                           ' get step

Engine:
  PINS = showBits & %01111111                   ' update outputs
  pntr = pntr + 1                               '   point to timing
  READ pntr, timer                              '   read it
  pntr = pntr + 1                               ' point to next step

Run_Timer:
  IF timer = 0 THEN Next_Step                   ' timer expired?
    PAUSE 100                                   ' no, time one "tic"
    timer = timer - 1                           ' decrement timer
    GOTO Run_Timer                              ' check again

Next_Step:
  IF endofShow = Yes THEN Reset                 ' done?
    GOTO Play_Show


' -----[ Subroutines ]-----------------------------------------------------


' -----[ User Data ]-------------------------------------------------------
'
'          +---------------- End of Show
'          |+--------------- LeftArmBend
'          ||+-------------- LeftArmLift
'          |||+------------- RightArmBend
'          ||||+------------ RightArmLift
'          |||||+----------- Hips
'          ||||||+---------- Mouth
'          |||||||+--------- Audio
'          ||||||||
'          ||||||||    +---- timing (x 100ms)
Show_Data:
  EEPROM (%00101000, 004)                       ' arm lifts on, 400 ms
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%10000000, 000)                       ' end of show
Jon McPhalen
EFX-TEK Hollywood Office

livinlowe

SEQUENCER ENGINE! That's what I was looking for. Thanks Jon!
Shawn
Scaring someone with a prop you built -- priceless!

livinlowe

September 13, 2008, 06:14:30 PM #10 Last Edit: September 13, 2008, 10:53:58 PM by livinlowe
Okay, try this. Before you do realize, I DON'T HAVE ACCESS TO YOUR HARDWARE, and I don't want to destroy it so you probably want to change my timing factors by a factor of 2 (i.e. when I have a 400 ms pause, you put in a 800 ms pause). I only say this because 1) it looks like youve put a lot of effort into building it and 2) I myself am still learning and applying this stuff.

Jon- Your program you posted does not have a Reset section. I have added one, with the only thing it is doing is reset the pntr variable and starting over. Is this what your reset would have done? DOH!

Anyway, I did some movement similar to your video, and as you can tell from the remaining eeprom values, you could have this prop do a lot more. I just don't think you need to do more because you kind lose the scare factor after too long. But it's your prop, so have fun. Good Job once again, ask any question if you have them. Remember - measure twice cut once....or think twice or glue lots....or, well I think you know what I mean.

Shawn

    ' =========================================================================
'
'   File...... Generic_Sequencer.BS1
'   Purpose...
'   Author....
'   E-mail....
'   Started...
'   Updated...
'
'   {$STAMP BS1}
'   {$PBASIC 1.0}
'
' =========================================================================


' -----[ Program Description ]---------------------------------------------


' -----[ Revision History ]------------------------------------------------


' -----[ I/O Definitions ]-------------------------------------------------

SYMBOL  Trigger         = PIN7                  ' active-high input
SYMBOL  LeftArmBend     = PIN6                  ' left arm bend
SYMBOL  LeftArmLift     = PIN5                  ' left arm lift
SYMBOL  RightArmBend    = PIN4                  ' right arm bend
SYMBOL  RightArmLift    = PIN3                  ' right arm lift
SYMBOL  Hips            = PIN2                  ' bend at waist
SYMBOL  Mouth           = PIN1                  ' open mouth
SYMBOL  Audio           = PIN0                  ' scream


' -----[ Constants ]-------------------------------------------------------

SYMBOL  IsOn            = 1                     ' for active-high in/out
SYMBOL  IsOff           = 0

SYMBOL  Yes             = 1
SYMBOL  No              = 0


' -----[ Variables ]-------------------------------------------------------

SYMBOL  showBits        = B0
SYMBOL   endOfShow      = BIT7

SYMBOL  timer           = B2
SYMBOL  pntr            = B3


' -----[ Initialization ]--------------------------------------------------

Reset:
  PINS = %00000000                              ' clear all outputs
  DIRS = %01111111                              ' make P0-P6 outputs

  PAUSE 30000                                   ' PIR warm-up/show delay


' -----[ Program Code ]----------------------------------------------------

Main:
  timer = 0                                     ' reset timer

Check_Trigger:
  PAUSE 5                                       ' loop pad
  timer = timer + 5 * Trigger                   ' update timer
  IF timer < 100 THEN Check_Trigger             ' wait for 0.1 sec input
    pntr = 0                                    ' start of show

Play_Show:
  READ pntr, showBits                           ' get step

Engine:
  PINS = showBits & %01111111                   ' update outputs
  pntr = pntr + 1                               '   point to timing
  READ pntr, timer                              '   read it
  pntr = pntr + 1                               ' point to next step

Run_Timer:
  IF timer = 0 THEN Next_Step                   ' timer expired?
    PAUSE 100                                   ' no, time one "tic"
    timer = timer - 1                           ' decrement timer
    GOTO Run_Timer                              ' check again

Next_Step:
  IF endofShow = Yes THEN Reset                 ' done?
    GOTO Play_Show


' -----[ Subroutines ]-----------------------------------------------------


' -----[ User Data ]-------------------------------------------------------
'
'          +---------------- End of Show
'          |+--------------- LeftArmBend
'          ||+-------------- LeftArmLift
'          |||+------------- RightArmBend
'          ||||+------------ RightArmLift
'          |||||+----------- Hips
'          ||||||+---------- Mouth
'          |||||||+--------- Audio
'          ||||||||
'          ||||||||    +---- timing (x 100ms)
Show_Data:
  EEPROM (%00000100, 004)                       ' bend over, 400 ms
  EEPROM (%00110100, 005)                       ' extend arrms, 500 ms
  EEPROM (%01111111, 007)                       ' hug, open, scream, 700 ms
  EEPROM (%00101100, 005)                       ' unhug, close, 500 ms
  EEPROM (%01111111, 007)                       ' hug, open, scream 700 ms
  EEPROM (%00101100, 004)                       ' unhug, close, 400 ms
  EEPROM (%00101000, 005)                       ' stand up, 500 ms
  EEPROM (%00101111, 004)                       ' bend over, open scream, 400 ms
  EEPROM (%01111111, 005)                       ' hug, 500 ms
  EEPROM (%00101100, 004)                       ' unhug, close 400 ms
  EEPROM (%00101000, 004)                       ' stand up, 400 ms
  EEPROM (%00000000, 005)                       ' lower arms, 500 ms
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%00000000, 000)
  EEPROM (%10000000, 000)                       ' end of show
Shawn
Scaring someone with a prop you built -- priceless!

JonnyMac

You owe me a beer, Shawn!

1. I do have a section called reset (at the top of the program)
2. I reset the show pointer right after the valid trigger detection
3. Shame on you for not testing your program -- if you try to run it you get a "Symbol is already defined" error
   -- you've added something that is already there!

This wasn't my first rodeo....  ;D
Jon McPhalen
EFX-TEK Hollywood Office

livinlowe

Darn it! K, I owe you a beer. But in my defense--I got a killer cold right now.
Shawn
Scaring someone with a prop you built -- priceless!

JonnyMac

All's forgiven then -- I caught a bad cold myself recently (shooting "Strangers") and was not right for a couple weeks.
Jon McPhalen
EFX-TEK Hollywood Office

tobmaster340

Allright, I will play a bit tonight if I get home in time...if not Tuesday.  Thanks Jon and Shawn.  I think I understand what you are doing.  I will try Shawn's bit, then once working, I'll add more eprom statements to see if I do indeed get it.

Thanks so very much!

Toby