Building a low cost Mie scattering experiment

Mie-Scattering Experiment for the Classroom Manufactured by 3D Printing: Supplementary Material

Christian Scholz, Achim Sack, Michael Heckel, and Thorsten Pöschel
Institute for Multiscale Simulations, Friedrich-Alexander-Universtätt Erlangen-Nürnberg

 

Build and perform a low cost Mie-scattering experiment

700_7294_b_edit

 

Table of contents:

  1. Mie-scattering
  2. Hardware
  3. Setup
  4. Software
  5. Preparation of the calibration sample
  6. Preparation of the samples
  7. Calibration and measurement
  8. Analyzing the data
  9. References
  10. Resources
  11. FAQ

 

1. Mie-scattering

Mie-scattering is light scattering on particles with diameters in the order of the wavelength of the light. An every day example for this is for example the light scattering on small water droplets in clouds and fog. The light is scattered multiple times on particles of different sizes resulting in white and opaque areas.

Scattering monochromatic light, i.e. light of one wavelength, on monodisperse spherical particles cause a characteristic scattering pattern like scattering on a grid. Using this pattern one can calculate the size of the particles.

We show here a cost-efficient experiment, using 3D printing and embedded computing (Arduino Uno), which is capable of measuring Mie scattering on monodisperse particle suspensions quantitatively with high precision.

 

2. Hardware

All links to parts are examples with prices from end of 2015 (total of 50 €). All parts can be found at webstores such as amazon, ebay and similar, too.

Here an example list from www.amazon.com (e.g. for US citizens). If you know better shops, feel free to use them. Please check all specifications and dimensions again carefully, as the experiment was built and tested with the above (European) ones. The experiment was designed to be easily altered.

  • Servo motor small, e.g. www.amazon.com, article SG90 mini micro servo (~$6)
  • Servo motor large, e.g. www.amazon.com, article standard servo (~$9)
  • LASER, e.g. www.amazon.com, article 635nm laser diode module (~$3)
  • Photodiode, e.g. www.amazon.com, article SFH 203 P (~$2)
  • Arduino board, e.g. www.amazon.com, article Arduino Uno R3 (~$5)
  • Polarizer, e.g. www.amazon.com, article polarizing film filter (~$8)
  • Wires, e.g. www.amazon.com, article phantom dupont cable (~$2)
  • Screws, e.g. www.amazon.com, article Philipps M3x10 mm (~$2)
  • Power supply, e.g. www.amazon.com, article 100V converter adapter universal (~$9)
  • Filament for 3D printing, e.g. www.amazon.com, article excelvan filament reprap (~$1 per pc; $9.99 per kg)
    (STL and SCAD files can be found at the Resources)

The prices for this list were taken beginning of 2016 with a total for all pieces of about $50.

 

3. Setup

700_7192_b

A picture of all parts needed to built this experiment:

  • 3D printed experiment
  • small and large servo motor
  • Arduino Uno
  • photodiode detector
  • LASER (635 nm)
  • polarizer
  • resistor (1 MΩ)
  • screws
  • wires

 

To assemble everything proceed as follows:

Mie-3D

  • put the Arduino in the 3D printed housing
  • attach the base plate of the experiment to the housing and fix it with screws
  • glue the sample holder to the base plate
  • assemble the 3D printed detector mount
  • attach the small servo motor to the detector mount and fix it with screws or glue
  • attach the polarizer to the small servo motor with a screw (cut a small hole in the middle of the polarizer if needed)
  • attach the detector mount including the polarizer and small servo motor to the large servo motor with a screw
  • connect all wires according to the following layout
    ArduinoFig
    Wiring of the Arduino board.
  • attach the LASER and the photodiode, fix both parts, e.g. with a heat-shrinking tubing, and take care to minimize the possibility of scattered light from the surroundings hitting the photodiode
  • use a polarizer to rotate the LASER such that the polarization is in 45° to the detector plane (in the direction of the beam)
  • connect the power supply
  • connect the experiment to the computer via USB

 

Fig3_Setup-Foto_web

The assembled setup.

 

4. Software

Arduino firmware
The Arduino firmware (is capable of):

  • Position the motors
  • Turn LASER on/off
  • Measure photo current from photodiode
  • Export the measurement data

 

Installing the Arduino firmware
The Arduino firmware is installed by using the Arduino IDE. All files can be found under Resources.

Accessing the Arduino
With the firmware, the Arduino behaves like a serial device and can be accessed via terminal:

Linux: Connect to the serial device (e.g. /dev/ttyACM0) with 9600 baud, e.g. :

screen /dev/ttyACM0 9600

Available commands

  • Moving the servos
    x $ANGLE (lower servo)
    y $ANGLE (upper servo; polfilter)
    e.g.: x 90
  • Turning the LASER on/off
    O (LASER off)
    o (LASER on)
  • Reading background, LASER intensity, and difference between both
    m
  • Set the number of measurements to average over
    N $NUMBER
    e.g.: N 200

Each command is sent by pressing ENTER at the end.

 

Software on the measurement computer
Here we use python and Matlab / octave for the automatic measurement. Therefore Matlab / octave and python has to be installed as well as the python packages numpy, matplotlib and python-serial.

Linux: In Linux the packages can be installed e.g. via

sudo apt get install python python-numpy python-matplotlib python-serial octave

The python code is started via command line with

python ArduMie.py

All files can be found under Resources.

 

Matlab / octave scripts for analysis is able to:

  • Calculate the theoretical Mie-scattering
  • Determine the positions of the extrema from the measurement
  • Compare the theoretical and experimental extrema
  • Determine particle diameter from look-up table

 

All files can be found under Resources (Arduino firmware, python and Matlab / octave scripts).

 

5. Preparation of calibration sample

1. Peel off the reflection layer from a CD with a track distance of 1.5 µm (CD-R 80 min) with cellotape (try different manufactures if you experience problems).

700_7230_b

2. Cut out a piece from outer rim of the CD.

700_7236_b_arrow

3. Glue the piece to a microscope slide (careful: The interference pattern must be in plane with the detector, see arrows).

700_7253_b_arrow

 

 

6. Preparation of the samples

Required Materials

700_7148

Microscope slide, cover glass, particle suspension, cellotape, epoxy glue

Sample preparation
1. Fix the microscope slide with cellotape.

700_7152

2. Partially fix the cover glass with epoxy (sides only).

700_7163

2. Add a droplet of suspension (capillary forces will suck in the liquid).

700_7167

3. Wipe of excessive suspension, glue the cover glass and label the sample.

700_7179

4. Cut out the sample.

700_7180_edit

5. The finished sample.

700_7183_edit

6. Quick test with a LASER. Ring(s) should be visible.

700_7187_edit

700_7187_edit_zoom

 

7. Calibration and measurement

The calibration and the measurement is done almost automatically. The calibration sample has to be changed for the actual sample during the run. At the end the measurement values are compared against the theoretical values and a few graphs as well as the recognized samples diameters are printed.

The experiment is started via

python ArduMie.py

The program will ask you to insert the calibration sample. Then a calibration run for the motors will be performed. At the end a graph will be presented and you’ll be asked to enter the the value of parallel (maximum) and perpendicular (minimum) position.

Next, the script will ask you to insert the actual sample to be measured and will then start the actual measurement. The setup will first measure the parallel scattering intensity and then rotate the polarizer and measure the perpendicular scattering intensity. The resulting data will be saved in two text files called Mie_scattering_parallel.dat and Mie_scattering_perpendicular.dat.

ArduMie.py and all other files can be found under Resources.

 

8. Analyzing the data

To analyze the data and get the particle diameter, the data must be first smoothed to find the local maxima. This is done by using the Matlab / octave script called smooth.m. Measurement, spline fit and position of extrema are shown in the following image:

Fig10_measure

The next step is calculating the theoretical values and compare them the measured data. This is done by the Matlab / octave script called Mie_table.m. In the end you’ll receive the measured particle diameter in your sample (see the point marked by the arrow in the figure; here for two different particle sizes). 5.9 µm sized monodisperse spheres can be bought for example here [5].

Fig11_distance

All Matlab / octave scripts can be found under Resources.

 

9. References

  1. S. Prahl. Mie scattering. http://omlc.org/software/mie/
  2. C. Mätzler. MATLAB Functions for Mie Scattering and Absorption Version 2. IAP Res. Rep., 2002
  3. C. Scholz, A. Sack, M. Heckel, and T. Pöschel. Mie-Scattering Experiment for the Classroom Manufactured by 3D Printing. Submitted, 2016
  4. C. Aguilera. extrema.m. Math-Central. 2007
  5. Polysciences, Inc. Polybead® Microspheres 6.00µm. http://www.polysciences.com

 

10. Resources

Mie_complete.zip

This package includes:

  • 3D-printing
    • SCAD files
    • STL files
  • Arduino
    • Arduino firmware (ArduMie.ino)
    • a short manual
  • Calibration_and_measurement
    • Main program (ArduMie.py and MieScattering.py)
  • Mie_scripts
    • Matalb / Octave scripts (see also Refs. [1-4])

 

11. FAQ

A) I do not own a 3D printer, what now?

Don’t worry, try to

  1. Find a local Fab lab (cost est. $5)
  2. Build parts from cardboard [Pepakura] [Unfold]
  3. Use an online 3d-printing service [shapeways] [meltwork] (cost est. $50)

B) Where to get cheap particle suspensions?

For testing you can use suspensions of milk etc. Suspensions of monodisperse particles are typically sold in (relatively) large quantities (~ 15 ml). Since you only need a small droplet, try to ask at a local research facility, e.g. chemistry or physics departments of your nearby university.