Skip to content

obstruse/LaserDemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

redCat PeterMax

LaserDemo

Generate display patterns for laser galvanometer, using ESP8266. Speed of the pattern is limited by the galvanometers, usually 20,000 - 30,000 positions per second. A pattern with more than a few thousand positions will flicker. Large patterns, e.g. LouisWainCat @ 20,000 positions, require a long exposure (one second or more) to view. Reducing the speed of the data sent to the galvanometer produces a more accurate pattern, but with more flicker.

Based on "Arduino Laser Show With Real Galvos" by DeltaFlo:

http://www.instructables.com/id/Arduino-Laser-Show-With-Real-Galvos/

Hardware

Laser Mounting and the CPU stripboard:

Mounting strip

(M4-.70 screws)

Interface

The first time it boots it will create a Soft Access Point with SSID: LaserDemo and PSK: carbondioxide.
Open http://laserdemo.local/config to configure the WiFi

http://laserdemo.local/ allows you to select objects for display:

Screenshot

  • The Object and Generator lists are generated dynamically from the contents of the objName and genName arrays.
  • KPPS is the speed of the scanner, Kilo Positions Per Second
  • LTD Laser Toggle Delay, the latency of the scanner, in microseconds
  • LQ Laser Quality, maximum line segment length

Adjust Amplifier Gain and Scan Rate(KPPS) using ILDA Test Pattern

It is impossible to scan both fast and wide.

ILDA Test Pattern Tuning

When the amplifier gain matches the scan rate, the middle circle will fit inside the the middle square, just touching the sides:

ILDA

I got good results with 15 degrees deflection @ 20 KPPS (9.5" wide at 36").
Typical generic galvonometer specs:

Specification

Adding Objects

Convert an ILDA file to an include object (.h)

Convert the ILD file to text using LaserBoy http://laserboy.org/code/LaserBoy_2017_08_06.zip:

  • i input
  • 1 ILD
  • filename
  • 1 replace
  • o output
  • 4 text
  • 3 all frames
  • filename

LaserBoy has options for optimizing the output (e.g.: h - shiftS) which might also be useful.

Convert the text file to an include file (.h):

Scripts/convert.pl ilda12k.txt

Include the .h file inside the setup() function:

void setup()
{ 
  // initialize object array 
  #include "ilda12k.h"
  #include "barney10.h"
  ...

Barney Horse Alphabet

Audio Input

It's also possible to drive the galvonomters directly with an audio signal, bypassing the ESP8266.

For that you need a cable and an audio interface modified for DC-coupling:

Cable USB Audio

Several laser programs can generate the audio (even LaserBoy), or use a DSP program like Gnuradio-Companion or Linux Laptop Orchestra (Pd-L2Ork/Purr-data):

Purr-data

Laser Mushrooms

Gnuradio-Companion

epicycloid multihypocycloid spiral circleSaw

Releases

No releases published

Packages

No packages published