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
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.