Jump to content

Remote Control Equipment


cedd

Recommended Posts

Hi everyone!

Most folks will probably have sussed that I spend a lot of my time building all manner of odd props, animatronics and special effects/illusions.

 

I've got a big project coming up though! I've been asked to be special effects supervisor for a production of Addams Family. It's an amateur production, but a big budget one.

There are lots of effects to build, and I'll be keeping whatever I build afterwards to join my hire stock.

I've built effects beforehand using standard radio control car equipment, and have recently invested in a Spektrum 2.4Ghz 7 channel system, which is proving very useful. The problem with these systems though is that a handset can only be bound to one model at a time, and it's not that straightforward to change between models (the dream ticket would be an RC system where you could control multiple receivers simply via a menu on the transmitter, sadly current systems need to go through a binding process that's a little faffy and requires access to both receiver and transmitter).

I've also used simple 2 and 4 channel key fob style remotes (thing garage doors or car alarms) with lots of success, but the small key fobs are fiddly and liable to get lost, plus I'm not sure how the cheaper systems will get on with multiple systems working simultaneously.

 

One transmitter controlling multiple receivers seems like the most straightforward method. I've considered arduino with wireless modules (wifi or other) but there's nothing really off the shelf already coded that'll do the job, and I haven't got the time to write it.

I really need one transmitter which can have multiple switches or pots connected, which can control multiple addressed receivers. I might for example configure the system so that switch one worked receiver 2, output 2, while potentiometer 3 might work receiver 3 output 4 - Just by way of an example.

I'm sure such a thing is possible with Arduino, but like I say, can't find anything off the shelf ready written. I'd even considered wireless DMX using the Auber-cheap chinese units currently on the market, but then I need to convert back to whatever I need to control.

 

Does anybody have any suggestions at all? What have you used?

Link to comment
Share on other sites

I do a tiny little bit of hot-wired props

 

I'd even considered wireless DMX using the Auber-cheap chinese units currently on the market, but then I need to convert back to whatever I need to control.

 

Wireless DMX is what I use, as the bits to do it are readily available, and the control tool can be arbitrarily complex or simple. I use parallax propeller ready-made boards, usually the propeller mini mounted on a bit of prototyping board along with a wireless DMX PCB module from AliExpress. The prop will drive servos and the like directly, and can drive FETs for switching, and if I need relays then again from Ali there are relay boards available with on-board drivers needing just a logic input, and they cost less than I can buy the relay on its own for! Pixel LEDs can also be driven directly.

 

The trick is to pick a technology, and stick with it, as one then builds up a stock of hardware and software bits that are re-usable, and are familiar and comfortable to work with. And the result is knocking up the code to drive a thing takes very little time.

 

The prop (like the Arduino) has programming software and there is lots of software modules available. Unlike most other small processors, the prop isn't "a" processor, but is eight processors in one body (called "cogs") so it makes writing the software really easy, as one can think about what one needs to drive one item as a time, and just write a few lines of code to drive that "thing". Here is everything I wrote (apart from a few definitions that are copy and pasted for each of these trinkets) for a dimmable battery powered mobile streetlamp, the bulb was 12V 60W, and controlled by a FET using PWM, and the PWM is generated by simple bit-banging, no hardware assist. Because this little bit of code has a dedicated processor (one of the aforementioned eight) to run on, there are no complications involving interrupts or task scheduling, or doing several things at once, which makes development a breeze.

 

 

PUB main | on, off

 StartChannel := 66
 dira[PinPwmOut] := 1

 DMX.init(PinDmxIn, PinDmxLed, 0, 0)

 repeat
   on := 0
   if ina[PinDmxLed]
     on := DMX.read(StartChannel)
   off := 256 - on
   on *= period
   off *= period
   if on  
     outa[PinPwmOut] := 1
     waitcnt(cnt + on)
   outa[PinPwmOut] := 0
   waitcnt(cnt + off)  

 

And the scrappy implementation - pic on right:

 

http://www.davidbuckley.name/pix/wdmx2.jpg

 

This pic actually shows an older way I did this, using an older prop module, and using a RS485 receiver chip, as the DMX board has a "proper" DMX interface. I looked harder on later revisions of the DMX receiver board, and the DMX data is available as a single pin at logic levels, needing no more than a resistor to connect it to the prop, which means the RS485 receiver is no longer needed.

Link to comment
Share on other sites

Wow, loads of really good stuff in here, thanks!

Been doing a fair bit of thinking about this today, based on some of the posts from this thread. I suspect I'm asking too much to be looking for a "one size fits all" solution on this one. Some of my effects (Robbie the animatronic Raven for instance) work really well with an RC style handset, so they're probably worth ignoring - what I have already works, so why bother changing it. This leaves the "simpler" effects like the street light mentioned above. Single devices that need turning on or off easily.

I started off trying to come up with some sort of protocol for sending information to a number of receivers. I thought maybe I could start by sending 20 channels of data out over a wireless serial link. Rather than my initial plan of sending control data such as reading analogue pots, what I really need to be able to do is to change 20 variables from 0 to 1 as required. I then tell the receiver Arduino to look at a specific variable (like setting a DMX channel) and everything after that is easy. I just write the specific code for the device to respond to that variable using an IF statement, this would mean that the street light could turn on or off when its' channel is set, and a solenoid on another prop could fire when its' channel is set. Meanwhile another item could be told to start a small motor, ramping up the speed over time as programmed in its' arduino. In short, I don't actually need to remote control anything as such, I need to be able to remotely trigger an arduino to do something it's pre programmed to do.

So what I actually need is a simple hardware and code setup that'll enable me to change the state of arduino variables remotely.

 

Alongside this I think there's a place for wireless DMX on some of my projects, my spinning wheel for instance, which contains 30 WS2811 LED pixels that are supposed to twinkle and then when Sleeping Beauty pricks her finger on it, turn red. I've got an Arduino in there currently and am attempting to control it via a 4 channel remote control relay unit. The problem is that it's sluggish as hell (known issue with WS2811 serial comms slowing things down) and coding 30 led's to randomly twinkle is actually not that easy. I've spent the whole time thinking "DMX would be way easier, Chamsys could do this in seconds". I have some great DMX to WS2801 converters, but the motor is always the faff - it'd require a relay board with its' own separate address to drive it. I've wondered if I could hack a WS2811 pixel and instead of driving an LED, drive a FET from it. This would put it on a channel alongside the LED's which would be much easier. How have people got on with the cheap wireless DMX systems?

Tim, thanks so much for the PM. I'll be in touch about the Arduino idea above in the next day or so.

Thanks also for the tip about pairing receivers to RC kit. I did know that it was possible to pair multiple receivers. It's more the switching from one to another that I'd be looking to do (which to my knowledge none of them do). I'd want to be able to control one device, then switch over to another using the same controls. I guess I could just rely on there only being one prop switched on at once maybe, and have both paired. Might be an option to look into.

Thanks again everyone

Chris

Link to comment
Share on other sites

... which contains 30 WS2811 LED pixels that are supposed to twinkle ... and coding 30 led's to randomly twinkle is actually not that easy.

 

Actually, yes, it is, if you choose the right platform! Adding twinkle to my pixel led controller took minutes, though, full disclosure, I already had a couple of effects written. Even easier to do random twinkles when the processor has a built in pseudo random generator - that's the question mark in front of the variable randy. And it sure as hell ain't sluggish! Division of labour. One cog is bitbangin' the pixel strips, another is receiving DMX, and both these are running code I didn't have to write. A third runs the background colour, and a fourth is the effects manager. The effects manager starts up a fifth cog when necessary for an effect, like twinkle. And I've till got three cogs left over in case I think of something else.

 

PRI random | I, d, n

   if randy == 0
     randy := cnt

   d := $0000FFFF / _nleds
     
   repeat
     n := 1
     if eData > 10
       n := eData / 10
    
     longfill(@Detail, 0, _nleds)
     repeat while n--
       I := (?randy & $0000FFFF) / d 
       Detail[I] := eColour
     waitcnt(cnt + (200_000 * (256 - eRate)))

 

By way of explanation, this is part of the effects generator, that can do chases, ripples and twinkles, all controlled by DMX; in the code above, eColour is the effect colour (on top of an optional background colour), eRate is how fast one wants the twinkles to move around, and eData is how many LEDs one wants on in the twinkle.

 

If anyone is interested in having this much fun, they are welcome to the code.

Link to comment
Share on other sites

Yes, the Prop chip is sadly overlooked these days in favour of Arduino or Raspberry Pi systems. Thats a shame as its quite a powerful chip. It can generate audio, composite video, and even VGA entirely in software. It can also interface with PS2 keyboards and mice, and people have used this with the VGA code to create a simple GUI. I used one once to control some Texas TLC5940 LED driver chips to create a simple DMX controlled LED matrix.
Link to comment
Share on other sites

I dabble with all three of these platforms, plus PICs, and have a beaglebone black as well, which I've yet to seriously dabble with (it has a couple of extra onboard I/O processors running at 200MHz that give the BBB everything the Pi has plus outrageous bitbang capability) and they all have different strengths and weaknesses. But for theatrical toys with DMX, its the prop every time, because everything else is harder and thus takes more time to develop. I'm looking for the tool to get the job done right, but with the least effort.

 

As well as the toy stuff, and the joke props like the big raygun, there are moderately serious props like the digital clock-calendar, pics below, and the awesome phone ringer, [old, slightly less awesome version info here].

 

http://davidbuckley.name/pix/digiclock_closeup.jpg http://davidbuckley.name/pix/digiclock_back_annotated.jpg

Link to comment
Share on other sites

Agh! Just when I thought I'd got my head around Arduino and had settled on it as a platform, it would appear that the Prop is way better suited to what I'm doing. Had loads of problems with the Arduino being slow to react when reading inputs and starting WS2811 effects. A bit of research shows that it's something I'm stuck with, rather than my poor coding. Prop might just be the tool for the job.

Better start brushing up!

Link to comment
Share on other sites

  • 2 weeks later...

Just when one thinks one's life is complete, on Reddit there was a link to the video below. It get interesting about 1:30, but is a bit dry and technician.

 

But the important bit is the availability of boards based on the ESP8266 chip, which is a CPU with onboard WiFi costing about next to nothing, intended for the Internet of Things. Basic boards are available for about $5, with very little I/O, but more I/O is available on the SparkFun ESP8266 Thing and the Adafruit Huzzah. A lot of people are doing a lot of interesting things with this chip.

 

OK, so it takes some custom firmware and creative misuse of the I2S feature to drive pixel LEDs, but to drive relays it needs no more than a I/O pin, which is programmable easily and onboard using LUA.

 

These don't use wireless DMX, they talk as a device over TCP/IP (or UDP/IP) so there isn't the easy connection to a standard DMX controller to get something going, but at that price, to remote-ize something, it could be a bit of a game changer.

 

http://www.youtube.com/watch?v=6zqGwxqJQnw

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.