Get our free book (in Spanish or English) on rainwater now - To Catch the Rain.

Difference between revisions of "Open Source Monochromator"

From Appropedia
Jump to: navigation, search
(Conclusions)
 
(22 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
<!-- These comments are offered as an aid as you get started. Remove as you wish. -->
 
<!-- These comments are offered as an aid as you get started. Remove as you wish. -->
 
<!-- next line is the code for inserting an image; delete if you don't have an image yet -->
 
<!-- next line is the code for inserting an image; delete if you don't have an image yet -->
[[File:Imageneeded.png|thumb|right|Sample photo caption.]]
+
<!--[[File:Imageneeded.png|thumb|right|Sample photo caption.]]-->
 
+
<center>''You can put an abstract (a brief description of your project) here. ''</center>
+
 
+
Some introduction text and background can go here.
+
  
 
== Understanding the market ==
 
== Understanding the market ==
Line 18: Line 14:
 
== Design ==
 
== Design ==
  
Describe your design here. 
+
<!-- Monochromator Parts -->
 
+
<gallery caption="Monochromator Parts">
<!-- Here is a sample gallery. -->
+
<gallery caption="Sample gallery">
+
 
File:Monochromator_Wall.png|Monochromator Wall
 
File:Monochromator_Wall.png|Monochromator Wall
 
File:Monochromator_Mirror_Holder.png|Monochromator Base Plate
 
File:Monochromator_Mirror_Holder.png|Monochromator Base Plate
File:Imageneeded.png|Even more sample caption text.  
+
File:Monochromator_CD.jpg|View of diffraction grating
 +
File:Monochromator_Mirrors.jpg|View of concave mirrors
 +
File:Monochromator_Front.jpg|View of enclosure front
 +
File:Monochromator_Top.jpg|Top view of monochromator
 
</gallery>
 
</gallery>
  
=== Next level heading ===
+
===Mechanical Assembly Instructions===
 +
#Purchase mirrors, bolts, nuts, razor blades, stepper motor, and associated electronics
 +
#Print files from NIH site http://3dprint.nih.gov/discover/3dpx-002158
 +
#Epoxy mirrors into printed mirror holders and leave until dry
 +
#Cut 1" by 1" square from edge of DVD-R and epoxy to mirror holder face
 +
#Epoxy 16mm M3 bolt onto end of stepper motor
 +
#Push M3 nuts into pockets on back of front wall
 +
#Bolt razor blades onto wall with sharp edge pointed into center of wall
 +
#Bolt stepper motor to wall using 4 bolts, with 2 washers under each bolt
 +
#Bolt wall to base with 2 M3 bolts
 +
#Push first mirror holder into square slot on base pointed toward front wall and insert bolt from underneath to secure, repeat with second mirror holder
 +
#Push M3 nut into pin for diffraction grating mount
 +
#Place pin into arms on diffraction grating mount
 +
#Place diffraction grating mount into hole on base plate
 +
#Rotate pin so that the nut side is closest to the stepper motor and rotate the motor by hand to start the bolt into the nut
 +
#Place assembly into cardboard box, mark out holes for motor and slots
 +
#Remove assembly, cut out holes, place assembly back in box
 +
#Tape assembly to bottom and front of box being careful to not cover inlet and outlet slots with tape
 +
#Proceed to electrical setup section
  
You may need deeper level headingsJust keep adding equal signs to get that.
+
===Electrical Assembly Instructions / Software===
 +
#Wire stepper motor according to [http://fritzing.org/media/fritzing-repo/projects/a/a4988-single-stepper-test/images/Arduino%20A4988%20Single%20Stepper%20Wiring_bb.jpg this] diagram<ref>
 +
http://fritzing.org/projects/a4988-single-stepper-test/
 +
</ref>
 +
#Program Arduino according to the code below:
 +
  <nowiki>#</nowiki>include <Stepper.h>
 +
 +
const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
 +
// for your motor
 +
 +
// initialize the stepper library on pins 8 through 11:
 +
//Stepper myStepper(stepsPerRevolution, 4, 5);
 +
 +
int stepCount = 0;        // number of steps the motor has taken
 +
 +
void setup() {
 +
  pinMode(6,OUTPUT); // Enable
 +
  pinMode(5,OUTPUT); // Step
 +
  pinMode(4,OUTPUT); // Dir
 +
 
 +
  // initialize the serial port:
 +
  Serial.begin(9600);
 +
}
 +
 +
void loop() {
 +
  // step one step:
 +
  Serial.println("Please Enter Step Value (-50 to 50): ");
 +
  while (Serial.available() == 0);
 +
  int val = Serial.parseInt(); //read int or parseFloat for ..float...
 +
  if(abs(val) > 50) {
 +
    Serial.println("ERROR: Too High of Input Value.");
 +
    goto failed;
 +
  }
 +
  if(val < 0) {
 +
      digitalWrite(4,HIGH); // Set Dir high
 +
  }
 +
  else {
 +
    digitalWrite(4,LOW); // Set Dir low
 +
  }
 +
  for(int i = 0; i < abs(val); i++) {
 +
    digitalWrite(5,HIGH); // Output high
 +
    delayMicroseconds(500); // Wait 1/2 a ms
 +
    digitalWrite(5,LOW); // Output low 
 +
    delayMicroseconds(500); // Wait 1/2 a ms
 +
  }
 +
  Serial.print("Moved ");
 +
  Serial.print(val);
 +
  Serial.println(" Steps.");
 +
  stepCount++;
 +
  failed:;
 +
  //delay(500);
 +
}
 +
 
 +
===Calibration===
 +
#Due to the many types of mirrors and DVDs available calibration is recommended
 +
#Acquire a white light source and spectrometer
 +
#Move the mirror to the maximum and minimum travel and record the prevalent wavelength
 +
#Take additional points if necessary at known number of stepper motor rotations
 +
#Use either a best fit linear line or polynomial to calculate wavelength output vs stepper motor rotations
  
 
== Costs ==
 
== Costs ==
  
You may describe your costs here.
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Item
 
! Item
 
! Quantity
 
! Quantity
! Cost
+
! Approximate Cost
 
|-
 
|-
 
| Plastic
 
| Plastic
| xxx g
+
| 163 g at 25% fill
| need this
+
| $3.75
 
|-
 
|-
 
| 50 mm dia, 100 mm focal length Concave Mirrors
 
| 50 mm dia, 100 mm focal length Concave Mirrors
 
| 2
 
| 2
| need this
+
| $10
 
|-
 
|-
 
| Razor Blades
 
| Razor Blades
Line 61: Line 133:
 
|-
 
|-
 
| M3x0.5 nuts
 
| M3x0.5 nuts
| 4
+
| 3
 
| $2
 
| $2
 +
|-
 +
| Arduino
 +
| 1
 +
| $20
 +
|-
 +
| Stepper Motor Driver
 +
| 1
 +
| $20
 +
|-
 +
| Breadboard
 +
| 1
 +
| $8
 
|}
 
|}
See [[Help:Tables]] and [[Help:Table examples]] for more.
 
  
 
== Discussion ==
 
== Discussion ==
  
Your discussion.
+
=== Current Issues ===
  
=== Next steps ===
+
#Diffraction mount will not actually rotate in current configuration
 +
#Setup in now too heavy on motor side
 +
#Motor is also in the way of light openings
  
The next steps.
+
===Possible Solutions===
 
+
#For all problems above move motor underneath and direct mount to diffraction mount
== Conclusions ==
+
 
+
Your conclusions.
+
  
 
== References ==
 
== References ==
 
 
<!-- This code is for placing the citation you included above.  If you did not use the <ref> code, please delete this. -->
 
<!-- This code is for placing the citation you included above.  If you did not use the <ref> code, please delete this. -->
 
<references/>
 
<references/>
Line 85: Line 166:
 
== Contact details ==
 
== Contact details ==
  
Add your contact information. 
+
#[[User:robertarden|Robert Arden]]
 +
#[[User:Mikehartl|Mike Hartl]]
 +
#[[User:Michaelpatrick|Michael Patrick]]
 +
#[[User:Akhenry|Andrea Henry]]
  
 
<!-- Don't change the next line unless you intend to change the categorization -->
 
<!-- Don't change the next line unless you intend to change the categorization -->
 
<!-- Do add additional, appropriate categories.  See http://www.appropedia.org/Appropedia:CategoryTree for ideas. -->
 
<!-- Do add additional, appropriate categories.  See http://www.appropedia.org/Appropedia:CategoryTree for ideas. -->
 
[[Category:Projects]]
 
[[Category:Projects]]

Latest revision as of 23:02, 10 November 2015


Understanding the market[edit]

Monochromators are used in optics to isolate certain wavelengths from a light source made up of many wavelengths. [1] Monochromators on the market are anywhere from $2000 to $10,000. Our monochromator is made for less than $100.

Project goals[edit]

The goal for this project was to create an easily 3D printed and assembled monochromator that is still relatively accurate.

Design[edit]

Mechanical Assembly Instructions[edit]

  1. Purchase mirrors, bolts, nuts, razor blades, stepper motor, and associated electronics
  2. Print files from NIH site http://3dprint.nih.gov/discover/3dpx-002158
  3. Epoxy mirrors into printed mirror holders and leave until dry
  4. Cut 1" by 1" square from edge of DVD-R and epoxy to mirror holder face
  5. Epoxy 16mm M3 bolt onto end of stepper motor
  6. Push M3 nuts into pockets on back of front wall
  7. Bolt razor blades onto wall with sharp edge pointed into center of wall
  8. Bolt stepper motor to wall using 4 bolts, with 2 washers under each bolt
  9. Bolt wall to base with 2 M3 bolts
  10. Push first mirror holder into square slot on base pointed toward front wall and insert bolt from underneath to secure, repeat with second mirror holder
  11. Push M3 nut into pin for diffraction grating mount
  12. Place pin into arms on diffraction grating mount
  13. Place diffraction grating mount into hole on base plate
  14. Rotate pin so that the nut side is closest to the stepper motor and rotate the motor by hand to start the bolt into the nut
  15. Place assembly into cardboard box, mark out holes for motor and slots
  16. Remove assembly, cut out holes, place assembly back in box
  17. Tape assembly to bottom and front of box being careful to not cover inlet and outlet slots with tape
  18. Proceed to electrical setup section

Electrical Assembly Instructions / Software[edit]

  1. Wire stepper motor according to this diagram[2]
  2. Program Arduino according to the code below:
#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on pins 8 through 11:
//Stepper myStepper(stepsPerRevolution, 4, 5);

int stepCount = 0;         // number of steps the motor has taken

void setup() {
  pinMode(6,OUTPUT); // Enable 
  pinMode(5,OUTPUT); // Step 
  pinMode(4,OUTPUT); // Dir 
  
  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {
  // step one step:
  Serial.println("Please Enter Step Value (-50 to 50): ");
  while (Serial.available() == 0);
  int val = Serial.parseInt(); //read int or parseFloat for ..float...
  if(abs(val) > 50) {
    Serial.println("ERROR: Too High of Input Value.");
    goto failed;
  }
  if(val < 0) {
      digitalWrite(4,HIGH); // Set Dir high
  }
  else {
    digitalWrite(4,LOW); // Set Dir low
  }
  for(int i = 0; i < abs(val); i++) {
    digitalWrite(5,HIGH); // Output high 
    delayMicroseconds(500); // Wait 1/2 a ms 
    digitalWrite(5,LOW); // Output low  
    delayMicroseconds(500); // Wait 1/2 a ms 
  }
  Serial.print("Moved ");
  Serial.print(val);
  Serial.println(" Steps.");
  stepCount++;
  failed:;
  //delay(500);
}

Calibration[edit]

  1. Due to the many types of mirrors and DVDs available calibration is recommended
  2. Acquire a white light source and spectrometer
  3. Move the mirror to the maximum and minimum travel and record the prevalent wavelength
  4. Take additional points if necessary at known number of stepper motor rotations
  5. Use either a best fit linear line or polynomial to calculate wavelength output vs stepper motor rotations

Costs[edit]

Item Quantity Approximate Cost
Plastic 163 g at 25% fill $3.75
50 mm dia, 100 mm focal length Concave Mirrors 2 $10
Razor Blades 2 $1
NEMA 17 Stepper Motor 1 $20
M3x0.5 10 mm bolts 8 $4
M3x0.5 nuts 3 $2
Arduino 1 $20
Stepper Motor Driver 1 $20
Breadboard 1 $8

Discussion[edit]

Current Issues[edit]

  1. Diffraction mount will not actually rotate in current configuration
  2. Setup in now too heavy on motor side
  3. Motor is also in the way of light openings

Possible Solutions[edit]

  1. For all problems above move motor underneath and direct mount to diffraction mount

References[edit]

  1. Monochromator Wikipedia [1]
  2. http://fritzing.org/projects/a4988-single-stepper-test/

Contact details[edit]

  1. Robert Arden
  2. Mike Hartl
  3. Michael Patrick
  4. Andrea Henry