Page 2 of 2 FirstFirst 12
Results 11 to 12 of 12

Thread: RGY Projector Complete!

  1. #11
    Join Date
    Aug 2006
    Posts
    20

    Default

    Hey Buffo,

    Yes, this micro was a custom design that i have programmed. Connected to the micro is a low pass filter, 2 parallel DACs(X&Y), a bunch of buttons and an LCD. The entire system can be controlled directly via "Popelscan" or by the Atmel AVR microcontroller. The system can be physically switched between controllers by a toggle switch on the front panel of the laser projector. Currently all I have managed to do sucsessfully (using the AVR) is produce basic Lissajous figures. My C code aint the best!

    Yes, you are correct, Popelscan uses a parallel DAC. http://www.photonlexicon.com/forums/...=popelscan+dac
    I used this same DAC and interfaced it to the AVR micro controller.

    Using frame creation software similar to Chans http://elm-chan.org/works/vlp/report_e.html , my aim is to control the galvos with pre-stored vector coordinates programmed on the AVR & change these vectors when an audio beat is detected. For example the micro could have many stored shapes and patterns in its flash memory and it could be programmed to go through a sequence of random patterns to the beat of the music. I haven't done this yet.

    All the pictures that i've posted were produced using popelscan.

    Cheers
    J

  2. #12
    Join Date
    Jan 2006
    Location
    Charleston, SC
    Posts
    2,147,489,446

    Default Future ideas for a stand-alone controller

    John;

    I'm impressed! You've managed to produce some really great results so far. I see where you're going re: the stored vector coordinates... Wonder if you could write a scrip to convert standard ILDA files to a simple list that you could then load onto the AVR controller? That would give you a whole bunch of images to choose from. (How much memory do you have available to store vectors? If you assume a single frame comprises, say, 500 points, how many frames can you hold?)

    Re: the lissajous programming. If you're really serious about re-writing the code, here's an idea that I got from playing around with my Alphalite unit. Feel free to give it a shot if you want. I never bothered to even try to write this, and I'm not sure if your microcontroller is up to this task or not, but here goes...

    Can you code a *virtual* sine wave oscillator with a variable frequency from 1 to 100,000 hz? If so, then you've got the foundation for a KILLER abstract generator. I'm thinking of a small chunk of code that calculates sines and writes the results to a register over and over at the specified frequency rate. (This rate has to be user-variable, in real time.)

    Now all you need to do is sample that register at the specified scanner speed (ie: 15Kpps = a sampling rate of 15,000 hz) and send the resulting value as an analog voltage directly to the galvo amps. (Well, you need to induce a 90 degree phase lag between the X and Y signals, or else you won't see any patterns other than a diagonal line that grows and shrinks, but you get the picture...) This code should also be fairly small, and the frequency rate can be fixed.

    So long as your oscillator speed is significantly slower (by an order of magnitude) than the scanner speed, you'll get standard lissajous patterns. (rose curves, spirograph patterns, circles and loops, etc...) But if the oscillator speed is increased to a significant fraction of the sampling frequency, then all sorts of strange patterns emerge, because the resulting output waveform has serious distortion induced by the low sampling rate relative to the oscillator frequency. So you're not getting a sine wave output, but some funky triangle-square-ramp looking wave. As you increase the frequency of the virtual oscillator even higher, you'll get some *very* wierd patterns, including fuzzy spokes on a wheel, strange folding geometric shapes, rolling triangular shapes, and more... (Caused by the increasingly noisy and distorted output waveform.)

    If you can switch the polarity of each wave you can create still more effects. And you may want to play around with the phase delay to alter the overall geometry of the pattern. (Different phase delays will cause the axis of symmetry to rotate, giving the pattern a skewed look.) But these are the basic tools behind the Alphalite's own abstract generator. (Well, at least I'm assuming that's the way Rick did it... I've played around with the settings and viewed the output enough that I've sort of reverse-engineered what's going on inside his code, though I must confess that I've never actually seen his program.)

    I've always wanted to build a true analog abstract generator with a multi-waveform signal generator at it's heart. However, after playing around with the Alphalite, I believe that you can emulate nearly ANY waveform by simply setting the virtual oscillator's frequency in the example above to some fraction (or multiple) of the scanning frequency. Thus square waves, triangle waves, saw-tooth waves, and just about any other symetrical form can be generated by harnessing the distortion inherent in the digital down-sampling process.

    Cool eh? 8)

    Adam

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •