TinyProjector Lab Notebook

top | summary | prototypes | original proposal | diary

previous section 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | next section



Diary of April 2002 1-21

 

April 1, 2002

I made a 3D model of TinyProjector prototype 4: 8 Lumex diodes (5.6mm diameter) and 8 mirrors (7mm diameter), as well as a double-mirror (two stainless steel plates, 2mm rod) (Figure 58).

 

Figure 58: Design for TinyProjector prototype 4 with an array of 8 lenses, 8 Lumex diodes, and a two-plate mirror

 

If the beam that comes out of the lens has full diameter of the lens (7mm), then in order to paint an angle of 75 degrees, the mirror only turns only for 37 degrees (see Figure 59)! That is very little. Perhaps I should use a 1mm rod, steel or carbon fiber? Perhaps the beam that comes out of the lens does not have full 7mm diameter?

 

Figure 59: Projection angle and mirror angle

 

 

April 2, 2002

I ordered 30 very cheap key chain laser pointers on eBay, and got confirmation that they were shipped.

 

Furthermore, I ordered 10 Lumex low-cost laser diodes from Digikey (Figure 60)

            http://www.lumex.com/pls/lumex/subproduct_galary?iproduct_id=1000901

 

Figure 60: Lumex laser diode

 

I made 3D model of mirror holders (TinyProjector3_holders.3dm) (Figure 61), prototype 4.

 

Figure 61: TinyProjector prototype 4 lens and diode holders

 

Made second rotating test mirror, with two stainless steel pieces (1/2inch x 55mm), 1/16th inch steel rod, and balsa pieces as distance holders; glued everything together with 5-minute Epoxy resin: result looks promising, very torque resistant, no "wobble".

 

Double mirror with 1/16th rod is rather bulky, I should use a 1mm rod (I have a carbon fiber rod, very light). I might need ball bearings for that; Homefly David Lewis has for $4:

            http://www.homefly.com/bearings.htm

 

Perhaps use a 1.5mm rod, and Sky Hooks & Rigging ball bearings, for $5 each

            http://www.mentornet.org/parts.htm#Bearings

 

Or then from WES, they have many different kinds:

            http://www.WES-Technik.de/English/access.htm

 

High quality "micro ball bearings" 1mm bore seem to be very expensive, otherwise: e.g., NTN:

            http://www.ntnamerica.com/products/Micro_Ball_Bearings.htm

            http://www.ntnamerica.com/cgi-bin/NTNSRCH.DLL?SEARCHTYPE=BROWSELIST&CL_PartNo=681&CTYPECODE=RBMBB

            http://www.bearingquotes.com/bearingquotes/dbinfo.asp?key=353948&Product=B

(NTN 681 is $61!)

 

Replaced a diode from prototype 2, adjusted the mirrors again (was a long process!)

 

I disposed of all the empty key chain laser pointer boxes (kept a few), recycling the batteries. There are only about 5 lasers left, of which only one is from the 30-laser batch. The other 4 are different (silver casing instead of gold). I also recycled 10 lenses (rest of the lenses are still around).

 

I made beam divergence measurements of current (flat) laser diode: at a distance of 83mm, the footprint is ca. 100mm tall and 20mm wide. Theta parallel is big, about 62 degrees! Theta perpendicular is about 14 degrees (that's what I expected) (Figure 62).

 

Figure 62: Theta parallel and perpendicular

 

 

Did some testing about what the diameter of the lens has to be: sanded a 7mm diameter lens on two sides by 1mm each, so overall width is now only 5mm (Figure 63).

 

Figure 63: On the left side an original lens, as salvaged from a key chain laser pointer, diameter 7mm. On the right, a modified lens with sides sanded down to an overall width of 5mm.

 

Optically, the outer 1mm rim does not seem to be necessary, so the modified lens worked just fine with my Lumex laser diodes. Since they have a diameter of 5.6mm, they could be aligned back to back, minimizing the overall size of the projector! Hover, the problem with such a construction would be that the diodes could touch each other, and could be difficult to align (Figure 64).

 

Figure 64: Eight-lens array, where each lens (diameter 7mm) is trimmed on two sides by 1mm, allowing to pack the lenses very close to each other, reducing overall width of the lens array from 56mm to 40mm!

 

It looks like the actual laser beam has a diameter of about 3mm when it exits the lens. The hole of the piece right in front of the lens of the key chain laser pointers has a diameter of 3mm as well. This means that the width of the mirror can be reduced, too.

 

 

I fixed several bugs in new_choic.c code (Figure 65): I did not include the right header file, 16f84a.h; counting backwards per character did not work; spacing between characters was not there.

 

Everything works now as expected. It can receive characters A through F and O, and displays 12 of them left-right and 12 right-left, and then waits again. Probably should use gets() function: gets a string, which ends with "enter" on the terminal.

 

#include <16F84a.h>

#fuses HS,NOWDT,NOPROTECT,PUT

#use Delay(Clock=10000000)

 

#use fast_io(A)

#use fast_io(B)

 

#use RS232(Baud=9600,xmit=PIN_A0,Rcv=PIN_A3,INVERT)

 

#byte PORTA = 5

#byte PORTB = 6

 

#define SERVO PIN_A2

 

char char1;

int i;

int s;

int forw;

 

 

byte _A[5] = {

  0b00000001,

  0b11101110,

  0b11101110,

  0b11101110,

  0b00000001 };

 

byte _B[5] = {

  0b00000000,

  0b01110110,

  0b01110110,

  0b01110110,

  0b10001001 };

 

byte _C[5] = {

  0b10000001,

  0b01111110,

  0b01111110,

  0b01111110,

  0b10111101 };

 

byte _D[5] = {

  0b00000000,

  0b01111110,

  0b01111110,

  0b01111110,

  0b10000001 };

 

byte _E[5] = {

  0b00000000,

  0b01110110,

  0b01110110,

  0b01110110,

  0b01111110 };

 

byte _F[5] = {

  0b00000000,

  0b11110110,

  0b11110110,

  0b11110110,

  0b11111110 };

 

byte _L[5] = {

  0b00000000,

  0b01111111,

  0b01111111,

  0b01111111,

  0b01111111 };

 

byte _O[5] = {

  0b10000001,

  0b01111110,

  0b01111110,

  0b01111110,

  0b10000001};

 

 

void project3(byte the_character[5], int the_line) {

 

    PORTB = the_character[the_line - 1];

    delay_us(1300);

    PORTB = 0xFF;

    delay_us(1000);

}

 

 

void project2(char c, int line_number) {

 

  switch(c){

      case 'A': project3(_A,line_number);

         break;

      case 'B': project3(_B,line_number);

         break;

      case 'C': project3(_C,line_number);

         break;

      case 'D': project3(_D,line_number);

         break;

      case 'E': project3(_E,line_number);

         break;

      case 'F': project3(_F,line_number);

         break;

      case 'L': project3(_L,line_number);

         break;

      case 'O': project3(_O,line_number);

         break;

      default:  project3(_O,line_number);

   }

 

}

 

 

void project1(char the_char, int forward) {

   int v;

 

   if (forward==1) {

//      puts("forward");

//      putc(v);

 

      for (v=1; v<=5; v++) {

           project2(the_char, v);

           delay_us(1300);

      }

   }else{

      for (v=5; v>=1; v--) {

//      puts("backward");

//      putc(v);

 

           project2(the_char, v);

           delay_us(1300);

      }

   }

}

 

main() {

  set_tris_a(0b00001000);

  set_tris_b(0b00000000);

 

  while(1) {

 

    char1 = getc();

    //delay_ms(200);

    putc(char1);           // after 0.2 sec echo it

 

    //for (s=0; s<=3; s++) {  // got a character!

    //  PORTB = 0b00000000;

    //  delay_ms(50);

    //  PORTB = 0xFF;

    //  delay_ms(50);

    //}

 

    for (forw=1; forw<=2; forw++) {

 

      for (i=0; i<12; i++) {

 

        OUTPUT_HIGH(SERVO);

        if (forw==1){

           delay_us(1900);

        }else{

           delay_us(1000);

         }

 

        OUTPUT_LOW(SERVO);

 

        if (forw==1) {

           delay_ms(2);

        }else{

           delay_ms(3);

        }

 

//        puts("--Projecting character");

//        putc(char1);

 

        project1(char1,forw);

 

        delay_us(1300);

 

      } // end of loop through 12 chars

    } // end of forw/backw loop

  } // end of whil

} // end of main

 

 

Figure 65: Final C code for TinyProjector prototype 2

 

April 3, 2002

I scanned the drawings of the schematics and the theta calculations, and cleaned them up (see Figure 55, Figure 56, Figure 57).

 

I had long talk with Gerardo (gvallejo@media.mit.edu): he has a PIC background and could help me later on with PIC problems. Cool!

 

 

April 17, 2002

I did the 3D design of new casing with 1mm rod (TinyProjector prototype 4). The motor is now connected with a V-belt, for two reasons: first, a small pager motor is probably not strong enough to drive the mirror directly, Second, the overall size of the projector can be reduced if the motor is parallel to the diode/lens array rather than sticking out on the side of it.

 

Furthermore, the Lumex diodes are not mounted directly onto a holder with holes, but are stuck into a back wall with both feet. Reason is that they can be adjusted easily in all dimensions: left/right by bending, back/forth by inserting them more or less into the back wall (Figure 66).

 

Figure 66: Casing of prototype 4 with smaller mirror axle and V-belt

 

April 18, 2002

New mirrors: it is difficult to find exact dimension stainless steel strips, 10mm wide and 0.25mm (0.01 inch) thick. Eric suggests the sheering machine of the MIT Student workshop in the Cyclotron building. The guy in charge is Fred:

            http://web.mit.edu/edgerton/shop.html

 

Of course a good water jet cutter would also do it, or an Exacto knife.

 

 

April 19, 2002

V-belt: I should use an O-ring! To figure out the size, go to http://www.sealseastern.com/OringRodSeal.asp

 

E.g. "DASH 014" is the O-ring for a 1/2-inch rod, and the belt has a diameter of 0.07 inches.

 

The actual rings I could get from MIT Central Machine, E34 basement.

 

I made beam divergence measurements of Lumex laser diode: at a distance of 88 mm, the footprint is ca. 90 mm tall and 30 mm wide:

 

  • Theta parallel is about 60 degrees (62 degrees for key chain laser diode)
  • Theta perpendicular is about 21 degrees (14 degrees for key chain laser diode)

 

 

More information I found out about the Lumex diodes:

 

  • Middle pin is positive, and only one of the outside pins is negative.
  • Doesn’t run on the two old lithium batteries (2.7V). It needs exactly 2.2V. I also think I killed one by having applied a too high voltage.
  • Do I need a DC-DC converter or something similar?
  • The focal length is 5mm (inner distance between topmost part of diode and lens)


previous section | April 2002 1-21 | next section

section 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12


Send me some comments! Stefan Marti Last updated February 23, 2003.

Copyright © 1997-2004 by Stefan Marti and MIT Media Lab. All rights reserved