Difference between revisions of "Russ Hensel's EL Wire Project"

From OpenCircuits
Jump to navigation Jump to search
m
m (Reverted edits by KiaiRohde (Talk) to last revision by Russ hensel)
 
Line 87: Line 87:
 
Here is a bit of not very good explanation.
 
Here is a bit of not very good explanation.
  
For the main elwire routine see: doELLoop() the basic idea is that we are in a loop that counts down for some period <span class="plainlinks">[http://www.moderncosmetics.com/ <span style="color:black;font-weight:normal;text-decoration:none!important;background:none!important; text-decoration:none;">mac makeup</span>]</span> of time and count: elCyclePeriod. At the beginning of the loop all the wires are turned on and have their own counters initialized. Each time thru the loop all the counters are decremented. When a wire's counter reaches 0 the wire is turned off. No attemp is made to make the loop execute in some constant time, but it should be close. To make the cycle time longer increase elCyclePeriod and everyting else, or put a delay in the loop.
+
For the main elwire routine see: doELLoop() the basic idea is that we are in a loop that counts down for some period of time and count: elCyclePeriod. At the beginning of the loop all the wires are turned on and have their own counters initialized. Each time thru the loop all the counters are decremented. When a wire's counter reaches 0 the wire is turned off. No attemp is made to make the loop execute in some constant time, but it should be close. To make the cycle time longer increase elCyclePeriod and everyting else, or put a delay in the loop.
  
 
Routines like altOddDim( ) intitalize the counters for some pattern.
 
Routines like altOddDim( ) intitalize the counters for some pattern.

Latest revision as of 05:34, 14 November 2011

Looking for Collaborators


Summary[edit]

This is a collaborative project where I will supply the electronics technology and someone else will provide the artistic sensibilities. I am still looking for collaborators. The technology will be open source, with the exception that the artist's may keep the algorithm behind their specific artwork as private as they want. The artist can keep all the electronics, I will ask to be reimbursed for my direct cost of what ever they want to keep. You can reach me through my page at open circuits russ_hensel

Status[edit]

  • We are now two. Still looking for more collaborators, if anyone is interested.
  • Code works!
  • Triacs work with wire!
  • Wire works.
  • Soldering of wire works OK even without coper foil, but hard to do a nice clean compact job.
  • Project is off the runway. ( Feb 26 )
  • Hardware works!
  • Software works!
  • IR remote works.
  • Technical part done for now.

Collaborator Criteria[edit]

  • Need to be GD ( geographically desirable ) collaboration will require some contact, somewhere in the range from Boston to Providence should work.
  • Taking the project to Burning Man is a plus.
  • I will have to limit the number of collaborators to a workable number, others can partake via this page ( see open source above ).
  • Collaborators will need to have at least some time available to actively work on the project. And have access to the equipment ( sewing machine? ) so they can do their part.

Plan[edit]

Version 0 Done![edit]

Control 8 segments of EL wire in an on-off or variable brightness mode. Any segment can be off or on independent of any other. Display can be divided into at least 100 time periods during which any combination of wires can be on or off. The length of each time period can be independently set. Microprocessor will is the 16F877A but could be one ( or more ) of the many PIC microcontrollers. Uses a serial boot loader for programming ease. Programming done in BoostC. Now will try to uses these abilities to find interesting ways to use them.

Version Later Partly Done![edit]

Switch from on-off to intensity control, the is control how dim or bright the wire is -- done. Added an infra-red control, had some noise problems with this, which I have managed to fix.

Still to do: Design printed circuit boards for project, turn EL driver routines into a reusable library. Will document procedures for more artistic types to do their own programming.

Circuit and Code[edit]

Email Me russ_hensel The circuit is pretty much an 16F877A plus 8 triacs. I use the serial interface for control. Thinking of adding an IR control.

Effects Ideas[edit]

Now is the time to think what can be done with the controller:

Blink[edit]

This is the simplest ( you can buy controllers with blink built in ) but now we can vary the blink rate and make each of the wires blink at a different rate. A strobe effect for a dancing costume is basically a blink.

Animate[edit]

This is basically blinking through different pattern to simulate motion. Done right you see motion, not blinking. Can take a lot of wire. Simple effects like spinning motions.


Morph[edit]

We can control the brightness so we can slowly change from one color/shape.... to another. More like a mood ring than a warning flasher.

Combine[edit]

The effect can be a compound of the ones above.

Control[edit]

We can control with a computer, with switches or with a TV remote control. More interesting might be to make it respond the the environment, music, light, closeness of other people......

Hardware[edit]

16F877 driving triacs through 100 ohm resistor 8 bit port for now. Commercial el wire power supply. Supply running at about 2k Hz, Pwm done in a 10 ms period ( about 100 hz ) I have a 2 foot peice of wire always on so the supply never sees a load of 0. A more elegant way of doing this might be a good idea.

I have not done a eagle files yet.

see download for more info

Software[edit]

The archive has all the files for a BoostC project. ElWire.c is the main program, there are other .c file for IR support and Serial support, which you can skip if converting to a different compiler.

Currently has IR and serial interface.

Here is a bit of not very good explanation.

For the main elwire routine see: doELLoop() the basic idea is that we are in a loop that counts down for some period of time and count: elCyclePeriod. At the beginning of the loop all the wires are turned on and have their own counters initialized. Each time thru the loop all the counters are decremented. When a wire's counter reaches 0 the wire is turned off. No attemp is made to make the loop execute in some constant time, but it should be close. To make the cycle time longer increase elCyclePeriod and everyting else, or put a delay in the loop.

Routines like altOddDim( ) intitalize the counters for some pattern.

Changing paterns are implemented by routines like: testLoopB( unsigned char aFast ).


see download for more info, or email me.

Comments Anyone?[edit]

We are interested in any comments, ideas, suggestions. We may even do them. If you do not like our ideas, suggest something better.

Download[edit]

Boost C project in ELWire.zip

Links[edit]

  • What's "EL Wire"? Electroluminescent Wire - you could even say it glows. More info: [1].
  • News Flash: Spark fun has come out with something similar for the Arduino see: EL Sequencer sku: COM-09203