• Models
  • Contests
  • Slicer
  • Login
  • Start Here
    thingiverse-iconprintables-iconcults3d-iconmakerworld-iconmyminifactory-icon

    3D GO

    3D ModelsContestsCollectionsSaved ModelsOn a mobile device?

3D GO

Privacy Policy
Lissajous Figure Laser Light-Show Pattern Generator & Projector 3D Printer File Image 1
Lissajous Figure Laser Light-Show Pattern Generator & Projector 3D Printer File Image 2
Lissajous Figure Laser Light-Show Pattern Generator & Projector 3D Printer File Thumbnail 1
Lissajous Figure Laser Light-Show Pattern Generator & Projector 3D Printer File Thumbnail 2

Lissajous Figure Laser Light-Show Pattern Generator & Projector

3DMason avatar3DMason

November 5, 2024

printables-icon
DescriptionCommentsTags

Description

Introduction

Introducing the Lissajous Laser Pattern Projector – a versatile and fully programmable apparatus designed for classroom & hobbyist demonstrations and experimentation. Powered by Arduino and equipped with a 650nm red laser and rotating mirrors, this device allows users to create and explore intricate Lissajous patterns by adjusting parameters such as rotation frequency, phase, and amplitude. Whether you're an educator seeking to illustrate complex mathematical concepts, or a hobbyist passionate about experimenting with dynamic light displays, this tool offers a hands-on way to visualize and understand harmonic motion through stunning laser-generated curves. 

The curves emerge when two oscillations combine at varying angles for differing frequencies and phases.  They can create mesmerizing and intricate designs that look like loops, swirls, and various geometric shapes with mathematical precision.  

The following videos where created with the design presented in this Printable:

Here is a link to another video:  

Features

  • Fully-Flexible Lissagous Figure Generator & Projector;
  • Dual-Mirror Speed & Direction Control;
  • Adaptable Mini-Optical Workbench for Demonstration & Experimentation Purposes;
  • 360° Fine-Tunable Mirror & Laser Alignment Mechanism in the X-Y using Worm Gears;
  • ± 10°  Z-Tilt Adjustment for Laser & Mirrors;
  • 3 Different Pattern Generation Modes:  
    • Manual, controlled by user with switches & potentiometers;
    • Automatic, Arduino program changes the pattern randomly;
    • Command Line Interface via Arduino monitor;
  • 650nm (red) 5mW Laser Light Source;
  • Arduino Nano based, with L298N (or compatible) Motor Controller;
  • 6V DC Hobby Motors;
  • No Soldering Required if using Arduino Break-Out Board,
  • Powered by 5VDC, 1A and separate USB-c for Laser;
  • Dimensions:  165x165x40mm
  • The design makes use of the following Printables:
    • Mini Optical Workbench:  Mini Optical Workbench by yba2cuo3 | Download free STL model | Printables.com
    • Mini Optical Alignment Mechanism:  Mini Optical Alignment Mechanism & Workbench by yba2cuo3 | Download free STL model | Printables.com

Background

Lissajous figures are named after the French mathematician Jules Antoine Lissajous, who studied these patterns in the 19th century.  He used a device called a Lissajous Apparatus to create these figures by reflecting light off vibrating mirrors.  His work provided insights into waveforms and harmonic motion, which led to these captivating patterns being named in his honor.  

Mirrors in a Lissajous Figure Generator don't necessarily need to vibrate—they can just rotate. The key is in how you control the rotation.

Rotating Mirrors: If you rotate the mirrors at different speeds, you can produce Lissajous figures. The angles of rotation effectively change the phase relationship between the two oscillating axes, creating the desired patterns.

Vibrating Mirrors: Typically used in traditional setups, where the vibration at specific frequencies creates oscillations, but rotating mirrors achieve similar outcomes by manipulating phase and frequency dynamically.

Rotation can actually simplify the setup and provide more stable control over the figures, so you have the flexibility to use either method, depending on your design goals.

Patterns

The patterns can be described mathematically as parametric equations.  Here's the fundamental form when plotted against a two dimensional plane:

x(t)=Bsin(ωbt+δ)

y(t)=Asin(ωa(t))

where:

  • A and B are the amplitudes of the oscillations,
  • ωa and ωb are angular frequencies; i.e. 2π times the frequency of oscillation,
  • t is time,
  • δ is the phase difference between the two oscillations.

The relationship and ratios between these variables determine the complexity and shape of the Lissajous figure. For example, if a=1 and b=2, you'll get a figure-eight pattern.  Change the ratios and you get different patterns as highlighted in the figure below:

Figure 1:  Lissagous Figures as a Function of X and Y

If the rotating mirrors have a bit of a wobble, it would affect the produced patterns. The Lissajous figures would become distorted, creating more complex and skewed shapes. The basic equations, however, would remain the same. It's the practical application that would vary—imagine it like trying to draw a perfect circle with a slightly wobbly hand. The theoretical form stays the same, but the result is altered. 

If your mirrors aren't perfectly aligned at 90 degrees, the slight misalignment will cause deviations in the figures, but the fundamental nature of the equations remains. The oscillations will still follow sinusoidal patterns, just not producing perfect Lissajous figures. Instead, you'll see fascinating, if somewhat irregular, modifications to the classic shapes.

The deviations would also result in a dynamic distortion of the Lissajous patterns. Instead of smooth, consistent shapes, you'd get variations and aberrations in the figures. In this circumstance, the equations again don't change, but the practical implementation of those equations—i.e., the actual light patterns—would be affected. The result would be more erratic and less predictable, adding an extra layer of complexity to the patterns.  

Therefore in retrospect, the angles and precise alignment in the setup play a big role in how clean and accurate the patterns are to the ideal shape.

Print Settings

  • Printer brand:  Prusa
  • Model:  i3 MK2S
  • Supports:  Yes
  • Resolution:  0.15mm OPTIMAL
  • Infill:  20%
  • Brim: Yes - 10 to 20mm
  • Filament brand:  Doesn't matter
  • Filament material:  ABS
  • Filament color:  Doesn't matter
  • Special Notes:  
    • Print in an enclosure for best results. 
    • Use a darker color filament at a specific layer height to highlight the text if you have a single extruder. 
    • Slow printer speed to 75% on top layers will improve tick mark production.

Construction

The construction of this sundial is relatively simple, making use of M3 & M4 hardware.  A list of assembly material is provided below, along with where it's used.  Also check the description associated with each file for more assembly details.  All parts can be easily disassembled and reassembled to facilitate transportation.

List of Required Assembly Hardware

All HW is Stainless Steel Button Head Hex Socket Head Cap Screws and Nuts, unless specified otherwise.

QtyDescriptionWhere Used / Supplier
1Arduino Nano (Every)It doesn't need to be an Every.  Any Nano will do.  Amazon-Arduino
1L298 Motor Driver Module  (see alternatives below). Amazon-L298Driver
 or alternative Driver  (preferred). Amazon-Driver
 or Nano Motor Driver Shield  Amazon-NanoMotorShield
21-6V DC Hobby Motor, Type 130  These are not ideal but they will do.  Looking for a better alternative. Amazon-Motor
23V DC Hobby Motor, Type 130This might be a better choice for motors but they haven't been tested. Amazon-Motor_v2
210K ohm Wheel PotentiometerAny 10K pot will do. Amazon-10Kpot
1Nano I/O Breakout Board Optional but useful. Amazon-ExpBoard
3SPDT Slide Switch Any SPDT switch will do. Amazon-Switch
 Breadboard Jumpers  Amazon-Jumpers
1Breadboard  Optional if you don't want to solder jumpers to your components.  Amazon-Breadboard
225mm dia. Mirror  Amazon-Mirror
4M3x8 screwFor mounting motor to lower holder & worm gear. 

Post Processing Tools

  1. Deburring tool for removing excess plastic from printed parts
  2. Hand Drill or Drill Press
  3. 2.5mm or 7/64" drill bit for enlarging holes for M3 tap
  4. 3.3mm or 1/8" drill bit for enlarging holes for M4 tap
  5. M4 tap for making threads

Arduino Nano Pin Definitions

  • Digital Output Pin D3; // Motor 1 IN1 of L293N motor driver bridge
  • Digital Output Pin D4; // Motor 1 IN2 of L293N motor driver bridge
  • Digital Output Pin D5; // Motor 2 IN3 of L293N motor driver bridge
  • Digital Output Pin D6; // Motor 2 IN4 of L293N motor driver bridge
  • Analog Input Pin A0;   // Potentiometer 1 wiper controls speed of Motor 1 when manual mode.  Other sides of potentiometer connect to Vcc & GND
  • Analog Input Pin A1;   // Potentiometer 2 wiper controls speed of Motor 2 when in manual mode.  Other sides of potentiometer connect to Vcc & GND
  • Digital Input Pin D7; // S1 controls direction of Motor 1 rotation when in manual mode
  • Digital Input Pin D8; // S2 controls direction of Motor 2 rotation when in manual mode
  • Digital Input Pin D9; // S3 sets projector in Auto or Manual mode

Recommendations for Electrical Connections

  • Use an Arduino break-out board with breadboard jumpers to simplify your connections;  
  • The potentiometers, switches and motor driver can be placed on a separate breadboard or mounted directly on the optical workbench with tie wraps.  I found it useful to solder jumpers directly to the pots & switches so that the other wire ends could be plugged directly into the motor driver or nano breakout board;
  • The motors have their own jumpers & can be connected directly to the motor drivers with appropriate headers;
  • Use the schematic in the file section to confirm all your connections are correct.

Operation

Auto Mode: When the auto/manual mode switch is LOW, the Arduino randomly varies the speed and direction of each motor.  The code generates random speeds (0-255) and directions (0 or 1) for each motor, changing every 5 seconds. It also ramps the motor speeds up from 0 to 255 and back down to 0 over a period of 5 seconds also.  During ramping, the direction of each motor is randomly chosen each time. 

Manual Mode: When the auto/manual mode switch is HIGH, the speed and direction are controlled by the external potentiometers and direction control switch.

Command Line Mode:  You can use the Arduino serial port to enter commands to directly control the motors at a precise speed & direction vs. using the potentiometers and switches.  Up can also independently control the ramping up & down of the speeds.

The command line format is as follows: M,X,Y,Z  where;

  • M is motor: 1 or 2, 
  • X is the speed: 0 to 255,
  • Y is the direction: 0 (clockwise) or 1 (counter-clockwise).  The direction will depend on the polarity of your motors & how they are connected to the motor driver;
  • Z is ramp, 0 (no) or 1 (yes) to gradually ramp up & back down

Example 1:

1,122,0,1

This would command motor 1 to go to speed 122, in a clockwise direction and to ramp up from 0 to that speed & then back down to 0.

Example 2:

2,255,1,0

This would command motor 2 to go maximum speed (255) in a counter-clockwise direction with no ramping.

The maximums speed of the motors have been scaled back in order to provide a decent pattern.  Also, depending on the motors you selected, the current drawn from each motor might exceed the your power supply's capacity if allowed to go to full speed.  The program therefore limits the max speed to ¼ of the motors specification.

Note: This sketch is still a work in progress.  The Auto Mode needs a bit of work, as well as the Command Line Mode.  Otherwise, it is fully functional.

Things to Try

In Manual Mode:

  • Adjusting the speed of each;
  • Changing the direction of rotation of one motor then both;
  • Changing the mirror angles or laser angle;
  • Changing the position of the laser spot on the mirror; i.e. upper, lower, left & right;
  • Using mirror mounts with different tilts on different motors; i.e.
    • no tilt on both mirrors;
    • 2.5 degree tilt on one mirror, then the other, then both;
    • 5 degree tilt on one mirror, then the other, then both.
  • Use a tachometer to measure the rotational speed of the mirrors.  Can you adjust the speeds to correspond the the patterns shown in Figure 1?
  • Use the command line interface to precisely control the difference in speed between both motors.

In Auto Mode:

  • Just let it go on its own & see what interesting patterns pop up!

Command Line Mode:

  • See if you can program the motor speed to display the patterns shown in Figure 1.  

DISCLAIMER:  

This project incorporates a Class 3R (IIIa) laser with a power output of 5mW. This laser is designed for safe use under controlled conditions.

Safety Precautions:

  • Do not stare into the laser beam directly.
  • Avoid pointing the laser at reflective surfaces or at eyes.
  • Keep out of reach of children.
  • Use of protective eyewear is recommended for prolonged exposure.

By using this product, you acknowledge and accept all associated risks and responsibilities.

 

License:

Creative Commons — Attribution — Noncommercial — Share Alike

Related Models

#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se preview image

#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se

CreativeTools profile image

CreativeTools

90,836

Flying Night Dragon preview image

Flying Night Dragon

Sevro profile image

Sevro

8,720

Colorful Train Flashcards/Tags (now w/ Spanish) preview image

Colorful Train Flashcards/Tags (now w/ Spanish)

jimamy112803 profile image

jimamy112803

7

The T-Rex Skull preview image

The T-Rex Skull

MakerBot profile image

MakerBot

39,798

Stable Flyer VI - Small Toy Glider preview image

Stable Flyer VI - Small Toy Glider

João Hackbart profile image

João Hackbart

3,735

Children’s Visual Clothes Tokens preview image

Children’s Visual Clothes Tokens

Neruson profile image

Neruson

1

Plantygon - Modular Geometric Stacking Planter for Succulents preview image

Plantygon - Modular Geometric Stacking Planter for Succulents

Printfutura profile image

Printfutura

28,529

Upcycled ATX Lab Bench Power Supply preview image

Upcycled ATX Lab Bench Power Supply

Caelestis Workshop profile image

Caelestis Workshop

1,507