close-circle
Close

Automating Santa's Shop--Working Together

A project log for Santa's Shop

This is a techno/art installation to be displayed in the community--similar to old time holiday window displays.

Mike Rigsby 07/25/2016 at 23:500 Comments

Six Arduino units are connected together to operate a three minute story sequence in Santa's Shop.

What happens is as follows:

Santa points to isobot robot and isobot moves arms and legs

Santa points to monkey--monkey claps; airplane floats

Santa points to drum--drum sticks play

Santa looks at elf workers

Clock shifts to play mode (eyes wake up and blink)

Elsie notices clock and taps her two co-workers, who also see clock

Elsie switches her table from work tools to party goods

Elsie makes robot move left and right

Elmer switches his table to play mode

Elmer makes toy bear light up

Elfis switches his table to play mode

Elfis plays guitar while Elsie and Elmer bob heads in time

Clock shifts to work mode, but Elfis keeps playing

Santa turns and points to clock

Elmer turns and sees Santa, then taps Elsie

Elsie turns to Santa and taps Elfis

Elfis continues to play

Elsie turns to look at Elfis, but Elfis keeps playing

Elsie turns to look at Elfis again, and taps him twice

Elfis turns to see Santa, then puts down his guitar

All three put tables back to work mode

Santa returns to original position

This is accomplished using a sync pulse (or start pulse in the drum's case) as indicated below.

Arduino sketches for all the above devices are available on this site.

Since the display could be turned off at any point during the cycle, it is important that the animated figures do not harm themselves or the display on restart. For example, if Elfis moved his guitar from a playing position to the start position in the fastest way, he would crash it into the table and something would break or jam.

Santa waits a few seconds on startup before sending out a sync pulse so that all creatures can get into position.

I'm sure that serious Arduino programmers know this (but I didn't), so I'll share. In setup, when a servo motor is attached, it immediately gets a signal to start moving--whether you have written a position or not. To control servo sequencing on startup (Elfis needs to move his arm out, then rotate his shoulder down if he was shut down in the guitar playing mode--if he's in the rest mode, this will result in no movement), attach the arm servo, write the setup position, write a delay (.5 second for example), then attach the shoulder, write the shoulder setup position, then write a delay.

Discussions