EFX-TEK

TEK Talk => Completed Projects => Topic started by: JonnyMac on December 10, 2016, 05:26:44 PM

Title: R2-D2 Powered by EFX-TEK
Post by: JonnyMac on December 10, 2016, 05:26:44 PM
Our friends at Alliance Studio asked us to help upgrade an R2-D2 prop. It started out as a mess (static prop, not built well), but between master mechanic/machinist, Kyle Martin (www.moxietool.com) and myself, we were able to upgrade it so that the dome rotates (Kyle made that happen), and it now seems alive. To save time, Alliance purchased an R2-D2 -- this is what we found inside the dome:

(http://www.efx-tek.com/files/old_dome_electronics.jpg)

Here's what we replaced it with:

(http://www.efx-tek.com/files/new_electronics.jpg)

As you can see, there is an HC-8+ (master controller), and AP-16+ (for sounds), and a Teeces R2-D2 lighting kit. I was very lucky to find a guy who had one of these kits (they're nearly impossible to come by unless you're in an R2-D2 builder's group and get in on a group buy) and would sell it to us. It mostly outputs random flickering, but it can take simple serial commands to do specific animations -- the HC-8+ sends those commands in coordination with the dome movement (via a giant, all metal servo) and audio.

I can't post the entire program, but this will give you a taste of what I did. The program has running timers that can call various shows. Every 20 to 30 minutes, the Princess Leia speech (Episode 4) plays. Of course, we don't have a projector, so we put a WS2812 LED into R2's fron't projector lens and control it in sync with the audio.

Here's the code.

pub help_me_obiwan | level, color, ms

  servo.move(0, 1500, ||(servo.position(0) - 1500) << 1)        ' center dome
  repeat until (servo.at_target(0))
  time.pause(500)

   repeat level from 0 to 255                                   ' fade on projector bulb
     color := level
     color.byte[1] := level * 60 / 100
     color.byte[2] := level * 60 / 100
     projector.set(0, color)
     time.pause(8)

   teeces_cmd(@Leia)
   ap16_wav(%00, string("leia"), 1)

   time.set(0)
   repeat                                                       ' flicker projector 34 secs
     level := (prng.random >> 1) // 193 + 64
     color := level
     color.byte[1] := level * 60 / 100
     color.byte[2] := level * 60 / 100
     projector.set(0, color)
     ms := (prng.random >> 1) // 13 + 13
     if (time.millis < 34000)
       time.pause(ms)
     else
       quit

   teeces_cmd(@AllOff)   

   repeat level from 255 to 0                                   ' fade out projector
     color := level
     color.byte[1] := level * 60 / 100
     color.byte[2] := level * 60 / 100
     projector.set(0, color)
     time.pause(4)

   time.pause(2000)
   teeces_cmd(@Normal)


Here's a very short clip of the R2-D2 working.
-- https://drive.google.com/open?id=0B5Z6lJmoPrb9emNHZ1NpdGhBSTQ

Title: Re: R2-D2 Powered by EFX-TEK
Post by: JackMan on December 11, 2016, 11:42:03 AM
Very cool Jon!  8)
Title: Re: R2-D2 Powered by EFX-TEK
Post by: bsnut on December 15, 2016, 02:41:15 PM
Cool ;D.