November 21, 2024, 02:56:02 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.


R2-D2 Powered by EFX-TEK

Started by JonnyMac, December 10, 2016, 05:26:44 PM

Previous topic - Next topic

JonnyMac

December 10, 2016, 05:26:44 PM Last Edit: December 11, 2016, 12:41:23 PM by JonnyMac
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:



Here's what we replaced it with:



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

Jon McPhalen
EFX-TEK Hollywood Office


bsnut

William Stefan
The Basic Stamp Nut