App Note:
Interactive Kiosk Control
A Simple Approach

 

In this example, we have established a new hotel, the Alcorn Inn, and are seeking ways to advertise our new hotel to current or would-be tourists.  Our marketing department comes up with an idea for an interactive kiosk that provides prospective customers with a rich multimedia presentation touting the great benefits of staying at the Alcorn Inn.  Energized by the marketing pep-talk, we quickly decide to combine an Alcorn McBride InterActivator and DVM to provide both control and audio/video sourcing for our kiosk. 
President
 
Equipment
Video DVM7400
Show Control

InterActivator

Software
WinScript
Files
DVM.AMW

DVM Configuration

At power-up, our kiosk will run an "Attract Loop".  This video sequence will be a succession of still-images taken at the Alcorn Inn and will loop at the end (the first and last still images are the same, providing a seamless transition back to the beginning).

When a guest steps up to the kiosk, the motion sensor is tripped and a short "welcome" video message is played.  The guest is then given the choice to view one of four clips: Great Rooms, Great Food, Great Rates, and a Special Offer.  Great Rooms, Great Food, and Great Rates are located on the Internal drive of the DVM, and Special Offer is located on the Removable PC-Card (this allows us to change our special offer at any time without having to copy the clip to the Internal drive).   If the guest does not select a clip within ten seconds, it is assumed that they have walked away and the kiosk returns to the Attract Loop.

If the guest chooses a clip by pressing one of the buttons, the clip is played and then the Welcome clip is played again.  Once the guest views all of the desired clips and walks away (hopefully to the nearest phone to reserve a week at the Alcorn Inn), the kiosk will return to the Attract Loop.

Here is a listing of all the clips and playlists on our DVM:

Removable Drive

Internal Drive

Clip File Name Clip File Name
Special Offer VID00001.MPG Autoexec Playlist PLY00000.LST
    Great Rooms Clip VID00001.MPG
    Great Food Clip VID00002.MPG
    Great Rates Clip VID00003.MPG
    Welcome Clip VID00004.MPG
    Attract Loop Clip VID00005.MPG

We want our kiosk to start the Attract Loop as soon as possible after power up, so we will use the Autoexec Playlist located on the Internal drive to play and loop the Attract Loop clip as soon as the DVM has powered up.  The Playlist is created as follows:

I  ;Our Attract Loop is interruptible
L5 ;Loop Attract Loop - VID00005.MPG

InterActivator Programming

We move on to program the InterActivator script.   First, we configure Port 1 of the InterActivator for the Alcorn McBride Digital Video Machine:

Next, we assign our contact closure inputs: Input 9 of the InterActivator is connected to the motion sensor, Inputs 10-13 are connected to the four external pushbuttons, and Input 14 is connected to the "Playing" output of the DVM:

To prevent the guest from being able to interrupt a clip while it is playing, we will use two flags to keep track of where we are in the show.   This will allow our sequences to decide whether or not they should accept an input from the guest.  PlayingClipFlag will be turned on when one of our four informational clips is playing, while PlayingWelcomeFlag will be turned on when the Welcome clip is playing.

Next, we want to create the sequences that provide the interactivity of our kiosk and tightly control the flow of the show.  The sequences we will use are listed in the figure below:

Our first sequence will be the Attract Loop sequence.   Although this sequence won’t be used at power up, it will be called on to play the Attract Loop after a guest has stepped away from the kiosk. AttractLoop selects the Internal drive of the DVM with the SelectDrive event and then commands the DVM to continuously play and loop the Attract Loop clip.

Our next sequence is a house-keeping sequence that has become commonplace in many scripts.  This sequence, ResetFlags, indiscriminately resets all of the flags that we are using in this script.  We will use this sequence to return the flags to a known state at certain points in the show.

The sequence Welcome is triggered by MotionSensor. This sequence resets the flags using ResetFlags to ensure that the show is in a known state, turns on PlayingWelcomeFlag to alert the other sequences that the Welcome clip is currently playing, and then plays the Welcome clip.

When PlayInput (the "Playing" output of the DVM) turns off, we know that one of the clips has just finished playing - but which one?   Using the two flags we created earlier (PlayingWelcomeFlag and PlayingClipFlag), we can create a sequence that is triggered when PlayInput turns off, and can decide whether it should wait for the guest to push a button (after Welcome has played), or immediately play the Welcome clip (after an informational clip has played). 

Our sequence, ClipFinished, first checks the state of PlayingClipFlag.  If it is on, the sequence knows that the DVM has just finished playing one of the four informational clips.  It turns off PlayingClipFlag and starts Welcome (which plays the Welcome clip again).   If PlayingClipFlag is off, then the sequence checks the state of PlayingWelcomeFlag.  If PlayingWelcomeFlag is on, the sequence knows that the DVM has just finished playing the Welcome clip and that it should wait for the guest to push a button.  It turns off the flag and starts our "waiting" sequence, WaitingForSelection.   We are only interested in the status of the four informational clips and the Welcome clip during the show, so if both flags are off, we do nothing. 

WaitingForSelection waits ten seconds after the Welcome clip finishes and then restarts the Attract Loop, assuming that the guest has walked away.   If the guest presses a button during the ten second interval, the sequence that corresponds with that button will reset WaitingForSelection so that it does not restart the Attract Loop.

We provide four separate sequences (triggered individually by a corresponding pushbutton) to play our informational clips: GreatRooms, GreatRates, GreatFood, and SpecialOffer.  These sequences check the status of both flags.   If either flag is on, the sequence knows that another clip is playing and it should not interrupt it, so it does nothing.  This forces the guest to watch a clip in its entirety before choosing another.

Each sequence resets WaitingForSelection to prevent it from starting the Attract Loop ten seconds later. After the informational clip has finished playing, ClipFinished starts the Welcome clip again. When the guest has viewed all the desired clips and walks away, the kiosk automatically times out, starts the Attract Loop and waits for the next guest.

Conclusion

As you can see, controlling video playback from a Digital Video Machine is extremely straightforward.  Near-instantaneous access times eliminate the need for independent Spinup, Spindown, or Search sequences.   Also, the Playing output allows us to make our script clip-independent, so we can change the lengths or content of our clips at any time without reworking the script.   An InterActivator / DVM combination is ideal for many applications.





3300 S. Hiawassee Rd.
Bldg. 105
Orlando, FL 32835


407-296-5800 Contact Sales Show Control Blog Facebook