Page 1 of 2 12 LastLast
Results 1 to 10 of 11

Thread: Arduino Scanner Project

  1. #1
    Join Date
    Jan 2010
    Posts
    11

    Default Arduino Scanner Project

    Hello people,


    So I'm going to build a USB interface DAC type thing out of an Arduino.

    As the Arduino runs at 8 bit I will need to increase the resolution to at least 12 bit, one of these should do fine:

    http://search.digikey.com/scripts/Dk...=296-2303-5-ND

    As the Arduino also has bugger all memory I am going to use a Micro drive and a 1GB SD such as these:

    http://robosavvy.com/store/product_i...roducts_id/591

    and

    http://robosavvy.com/store/product_i...roducts_id/448

    With this I will be able to store animations in stand alone mode.

    The Arduino is USB powered and can be easily fed live information to create complex animations etc via serial communication from a computer.

    I intend to use some XY Galvo's that have a driver board attached as to eliminate the need for an amplifier, as I am assuming the Galvo's driver accepts and processes PWM signals.

    Most projects I have seen consist of using cheap ass symbol tech galvo's which have no driver board, and I am assuming that is why there is a need for an amp to power the galvo, and then a DAC to send signals to the galvo amps.

    I think this is possible, does anyone have any objections?

    Cheers

  2. #2
    mixedgas's Avatar
    mixedgas is offline Creaky Old Award Winning Bastard Technologist
    Infinitus Excellentia Ion Laser Dominatus
    Join Date
    May 2007
    Location
    A lab with some dripping water on the floor.
    Posts
    9,905

    Default

    I intend to use some XY Galvo's that have a driver board attached as to eliminate the need for an amplifier, as I am assuming the Galvo's driver accepts and processes PWM signals.

    Most projects I have seen consist of using cheap ass symbol tech galvo's which have no driver board, and I am assuming that is why there is a need for an amp to power the galvo, and then a DAC to send signals to the galvo amps.

    end quote

    we dont use symbol tech stuff anymore, jeeze, that was the rage when I was a Kid in 1988. real galvos are now available at less then 200$ and up. Perhaps as low as 120$.

    PWM is the easy way to kill your galvos. They will try to follow the PWM waveform, not its average. Its best to ouput the actual beam path using a DAC chip, not PWM and use galvos with feed back and analog driver amplifiers.

    What you want to do in your post is called "open loop" and is big disapointment when you get it working, as modern galvos do not have 80's style torsion bars as part of their construction to return the shaft to zero. So since modern galvos and modern symbol tech stuff have no centering means and nothing to to act as a integrating spring, , there is nothing to integrate the PWM signal and you get garbage, the galvo will tend to flop between two positions and not draw anything. Yes, I know modern symboltech has a centering coil, but it does not integrate. Besides symboltech gets you about 200 pps, which is useless in the modern scheme of things.

    Here, this project's code is useful, using a older AT MEGA family, easy to adapt:

    scroll down to "building a controller"

    http://elm-chan.org/works/vlp/report_e.html

    Skip the build your own galvos step, its much easier to purchase. However read it to get a idea of how modern galvos work, althout modern galvos use LEDs and Photodiodes to sense position, not the 70's and 80's style RF. Dont get me wrong, many systems made now use RF, but only for really precision slow laser marking applications.

    PL USER "Shobbley" here has used the TLV series chip you mention to control his laser harp, he had a few problems at first with the code not being obvious from the data sheet. But other then that it works fine.

    Where are you located? we can pair you up with someone close by and you can get a look at some working hardware?

    And if you buy a dac chip, try to make sure its "double buffered" , ie x and y outputs update at the same time in hardware. With high speed galvos and 20-30 kPPS , not updating at the same time shows up as minor glitches in the image.

    Steve
    Last edited by mixedgas; 01-07-2010 at 08:44.
    Qui habet Christos, habet Vitam!
    I should have rented the space under my name for advertising.
    When I still could have...

  3. #3
    Join Date
    Jan 2010
    Posts
    11

    Default

    Quote Originally Posted by mixedgas View Post
    we dont use symbol tech stuff anymore, jeeze, that was the rage when I was a Kid in 1988. real galvos are now available at less then 200$ and up. Perhaps as low as 120$.

    PWM is the easy way to kill your galvos. They will try to follow the PWM waveform, not its average. Its best to ouput the actual beam path using a DAC chip, not PWM and use galvos with feed back and analog driver amplifiers.

    What you want to do in your post is called "open loop" and is big disapointment when you get it working, as modern galvos do not have 80's style torsion bars as part of their construction to return the shaft to zero. So since modern galvos and modern symbol tech stuff have no centering means and nothing to to act as a integrating spring, , there is nothing to integrate the PWM signal and you get garbage, the galvo will tend to flop between two positions and not draw anything. Yes, I know modern symboltech has a centering coil, but it does not integrate. Besides symboltech gets you about 200 pps, which is useless in the modern scheme of things.

    Here, this project's code is useful, using a older AT MEGA family, easy to adapt:

    scroll down to "building a controller"

    http://elm-chan.org/works/vlp/report_e.html

    Skip the build your own galvos step, its much easier to purchase. However read it to get a idea of how modern galvos work, althout modern galvos use LEDs and Photodiodes to sense position, not the 70's and 80's style RF. Dont get me wrong, many systems made now use RF, but only for really precision slow laser marking applications.

    PL USER "Shobbley" here has used the TLV series chip you mention to control his laser harp, he had a few problems at first with the code not being obvious from the data sheet. But other then that it works fine.

    Where are you located? we can pair you up with someone close by and you can get a look at some working hardware?

    And if you buy a dac chip, try to make sure its "double buffered" , ie x and y outputs update at the same time in hardware. With high speed galvos and 20-30 kPPS , not updating at the same time shows up as minor glitches in the image.

    Steve
    Yeah I read the elm chan article before but I don't understand him at times, I think I could make the controller he is talking about but gives no directions just says, "you need to have a lot of skill to build a controller" I have some skill in designing audio interfaces but have never delved into the deep dark spaces of light controllers, and just want to challenge myself!

    I opened up Laser lines with my sound card plugged in and that has answered a large amount of questions for me, as what I heard was essentially changes in pitch and pitch modulation, so I guess it's the frequency of what you send out of the dac that matters, and that which gives the galvo it's direction. I also remember reading old skool laser people used to use analog synths to control their galvos, so amybe it's just done digitally nowadays hence the need for decent sampling rate or bit depth.

    If the pwm will burn it out, and what you need is a smooth out put of voltage then I think you could do this using the analog.write function on the Atmega, and blank it using the pwm signals. but this geezer has achieved a similar thing to what i was going for

    "Similarly, to drive the galvanometers, the PWM output from the Arduino is fed through a small amplifier (actually designed for driving mosfets), which is then fed to the galvanometer. Through careful biasing of the galvanometers, it is possible to get both a positive and negative scan angle using this technique, and due to the high momentum of the galvanometers they effectively filter the PWM signal and respond quite linearly"

    Taken from:
    http://www.krazerlasers.com/lasers/rgb_projector/

    I work in London so am there throughout the week and live near portsmouth, south of england basically.

    Double buffered dac chips ey, never heard of them but I will look into them, haven't bought anything yet, want to learn what to do before and how it works before I splash some cash on this, if that makes any sense!

    But what I do know in experience with building audio interfaces as it is hard for a processor to do many functions at the same time, and it is easier to just end up reading or sending data in a loop, where you do things one at a time but you just do it so fast it seems like their is little delay, like in multiplexers for example. But as you said this might not work as you might get glitches to the image you are producing.

    Seriously cheers for the help

  4. #4
    Join Date
    Jan 2008
    Location
    Stockholm, Sweden
    Posts
    799

    Default

    Quote Originally Posted by bubble and tweak View Post
    I opened up Laser lines with my sound card plugged in and that has answered a large amount of questions for me, as what I heard was essentially changes in pitch and pitch modulation, so I guess it's the frequency of what you send out of the dac that matters, and that which gives the galvo it's direction. I also remember reading old skool laser people used to use analog synths to control their galvos, so amybe it's just done digitally nowadays hence the need for decent sampling rate or bit depth.

    If the pwm will burn it out, and what you need is a smooth out put of voltage then I think you could do this using the analog.write function on the Atmega, and blank it using the pwm signals. but this geezer has achieved a similar thing to what i was going for
    It's probably more useful to look at the actual waveform of what is being output. What you see on the galvo signals is basically sequences of coordinates. When the DAC is outputting 0 V the galvos are centered, and at -10 V and +10 V they are at their maximum angle. For every potential between those the angle is proportional to the voltage.

    The frequency only has an impact on the speed at which the image is drawn.

    The microcontroller doesn't have any true analog outputs, so you should use a real DAC. Analog.write is also PWM, and I agree with Steve that it's probably not a good idea to feed this to your galvos. At least not directly - if you smooth it out with a capacitor it might be OK.

    BTW, krazer is a member of this site.

  5. #5
    Join Date
    Jan 2010
    Posts
    11

    Default

    Quote Originally Posted by tocket View Post
    It's probably more useful to look at the actual waveform of what is being output. What you see on the galvo signals is basically sequences of coordinates. When the DAC is outputting 0 V the galvos are centered, and at -10 V and +10 V they are at their maximum angle. For every potential between those the angle is proportional to the voltage.

    The frequency only has an impact on the speed at which the image is drawn.

    The microcontroller doesn't have any true analog outputs, so you should use a real DAC. Analog.write is also PWM, and I agree with Steve that it's probably not a good idea to feed this to your galvos. At least not directly - if you smooth it out with a capacitor it might be OK.

    BTW, krazer is a member of this site.
    You total legend, I was wondering about the angle business, thank you for clearing that up for me.

    I'm pretty sure the arduino has 8 bit dac's, so there must be a way to send out analog sigs even if the analog write funtion is just pwm sigs.

    If I get something like this:

    http://search.digikey.com/scripts/Dk...=296-2303-5-ND

    then i might be able to get away with sending out pwm sigs through that chip, like krazer.

    The intention of using a microprocessor is the fact that you can use it standalone as well, and if I whack a micro drive with a gig on it, that will be an hour or two of animated fun (time dependant on pps rate), and if the code is made right then you will also have the ability to do a few simple manipulations of the animations or frames, such as rotation or zoom using a pot for instance.

    Please tell me if i'm wrong in my assumptions though, as this is really helping me atm.

    Cheers people
    Last edited by bubble and tweak; 01-07-2010 at 14:30. Reason: stupidit

  6. #6
    Join Date
    Nov 2005
    Location
    Melbourne, Australia
    Posts
    3,702

    Default

    I question if the AVR is going to be fast enough for your project if its programmed in anything other than well written assembler..
    KVANT Australian projector sales
    https://www.facebook.com/kvantaus/

    Lasershowparts- Laser Parts at great prices
    https://www.facebook.com/lasershowparts/

  7. #7
    Join Date
    Nov 2007
    Location
    Cairns, Australia
    Posts
    1,896

    Default

    The Arduino bootloader is fairly fast, however whether it's fast enough to run all that code for flicker free projection is going to be a bit of a problem I think, even with the 328 ..

  8. #8
    Join Date
    Aug 2009
    Location
    Bristol, England
    Posts
    333

    Default

    Tip for testing your software (before you get into galvos and all that), connect the X and Y signals to a 'scope, and put it into "XY" mode. It is obviously way fast and has no blanking (unless you use the Z input normally on the back), but it will show you how things work.

    Regards, Dan.

  9. #9
    Join Date
    May 2009
    Location
    UCSB
    Posts
    715

    Default

    I am sorry to revive this thread from the dead, but I noticed there was a spike of web traffic coming from you guy so I decided it was time to investigate Perhaps I should start paying attention to more than the advanced techinical discussion and sale/trade forums

    In any case, if I were to rebuild my projector (the arduino controlled one linked in the first post), I would definitely have bought a $150 pair of closed loops galvos off ebay and used some real DACs to output the position data.

    This project was done for a 1 credit class, so I was looking for a quick and dirty way to project some images, and ultimately settled on just using the open loop galvos I had in my junkbox and feeding random PWM data into them. NOTE-I got away with driving the galvos with a PWM signal directly only because they were crappy open loop galvos, and the inductance of the coil smoothed out the PWM signal. If you were to try this on a modern pair of galvos (or just about anything with a real driver), it wouldn't work at all and if you were lucky could probably melt something.

    If you really wanted to avoid using a real DAC, you could put a simple lowpass filter between the pwm output and the galvo input, with the time constant (t=R*C) set about twice the PWM frequency. This would go a long ways to help stabilize the galvos, and won't hurt the high speed response too much, but it is still far from ideal.

    I hope your project goes well!

  10. #10
    Join Date
    Oct 2009
    Location
    Eindhoven, The Netherlands
    Posts
    921

    Default

    Quote Originally Posted by krazer View Post
    If you really wanted to avoid using a real DAC, you could put a simple lowpass filter between the pwm output and the galvo input, with the time constant (t=R*C) set about twice the PWM frequency. This would go a long ways to help stabilize the galvos, and won't hurt the high speed response too much, but it is still far from ideal.

    I hope your project goes well!
    Arduinos have an SPI port, and getting a few SPI DAC's is pretty inexpensive. Microchip has some nice DAC's which are run off SPI and have 12-bit input. Look for the MCP4921 (single) chips, they are DIL8 so you would not have any trouble mounting them on a breadboard.

    If you need a DAC on the cheap, you can always build an R-2R ladder network with a $0.50 op-amp, and use an analog multiplexer (with a sample-and-hold circuit) if you need multiple channels.

Posting Permissions

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