Showing posts with label Makerbot. Show all posts
Showing posts with label Makerbot. Show all posts

Sunday, August 28, 2011

Open Telecine: Lighting and Test Optics





The following photos show progress on the Open Telecine hardware: to include: lighting mount, enlarged aperture, enlarged retaining spring, and partial body (just enough to hold light to aperture).

The light mount is specifically designed to hold a Luxeon Rebel LED (http://www.sparkfun.com/products/10179) 56 mm away from the film. The hollowed cone and wire guide was designed to reduce light pollution. A 2 mm hole was place along the axial shaft of the LED, to eliminate the reflections off the solder joints and produce a point source of light.

As shown in the photo, a temporary test optics was place between the aperture and camera CCD. This allows the team to determine what lighting, aperture and optical adjustments should be made. Some possible problems include: light blooming through the film sprocket holes, lighting cone too small to cover entire 8mm film, poor ability to focus, and diverging light (instead of converging light). It is known that a point source of light placed at the focal point will be converted into a collimated beam by the lens. Additionally, a positive or converging lens in air will focus a collimated beam travelling along the lens axis to a spot (known as the focal point) at a specific distance from the lens. This is what we need to convert the 8mm rectangle of diverging light into am adjustable rectangle (1-3mm) of converging light.

Any idea on how to improved the quality of the captured photo?

This post was created by using only open source hardware and software: CyanogenMod 7 (similar to stock Android or Windows Phone), Ubuntu (similar to Microsoft Windows and MacOS), gimp (similar to Adobe Photoshop), ReplicatorG, LibreCAD and OpenSCAD (simular to AutoCAD), and MakerBot.

Sunday, August 21, 2011

Open Telecine: Aperture



The remain physical components to be build for the Open Telecine are: aperture, lighting, optics (adjust wheel and cone), body, and film guide wheels. The part that was manufactured in this blog was the aperture. The images show the final aperture in pieces and assembled.

According to Wikipedia, "In optics, an aperture is a hole or an opening through which light travels. More specifically, the aperture of an optical system is the opening that determines the cone angle of a bundle of rays that come to a focus in the image plane. The aperture determines how collimated the admitted rays are, which is of great importance for the appearance at the image plane. If an aperture is narrow, then highly collimated rays are admitted, resulting in a sharp focus at the image plane. If an aperture is wide, then uncollimated rays are admitted, resulting in a sharp focus only for rays with a certain focal length. This means that a wide aperture results in an image that is sharp around what the lens is focusing on and blurred otherwise. The aperture also determines how many of the incoming rays are actually admitted and thus how much light reaches the image plane (the narrower the aperture, the darker the image for a given exposure time)."

The 8mm aperture was build in a small body that will compress the film between two planes: a fixed plane and a leaf spring. This allows the film to slide through with kinks and bumps (e.g. between the feeder film and film). The plastic grain is extruded to align parallel with the film, thus making a smoother contact surface. The current aperture is 8mm x 8mm, making it project the entire surface of the film. This include the sprocket holes and edges. The hopes are that the sprocket holes will help in detecting the film speed and frame position when using image processing (e.g. Canny edge detection).

Wednesday, August 17, 2011

Open Telecine and Mounts



The following parts have been created using OpenSCAD: motor mount, freewheel, freewheel mount, 100mm shaft, extended motor connector /w clip, and extended motor connector w/ thread.

The photo of the desktop shows the motor mount being build by using a 2D outline in LibreCAD, then extruding into 3D with OpenSCAD, and finishing additional customization using constructive solid geometry (http://en.wikipedia.org/wiki/Constructive_solid_geometry).

A flanged bushing was used for the freewheel and mount. The hopes are that this bushings will provide a small amount of friction, and keep the film tight. Second, it might serve as a way to eliminate the motor on the reel with film (i.e. not the uptake reel). The rewind function can still be achieved by swapping the two reels. The trade-off become lower cost and more work versus higher cost and less work.



This part was created by using only open source hardware and software: Ubuntu (similar to Microsoft Windows and MacOS), gimp (similar to Adobe Photoshop), ReplicatorG, LibreCAD and OpenSCAD (simular to AutoCAD), and MakerBot.

Saturday, August 13, 2011

Open Telecine and 8mm Film Spool


I assume, that in most cases, film will already be stored on a spool. However, not everyone using Open Telecine will have an uptake reel or extra reel. For those users who are short on a reel, an open source reel was developed.

As seen in the first photo, the reel is split into two halves, each with 6 segments. The segments are connected together using a dovetail joint, with 1.5mm protruding and recessed divots to lock them together.



Each half of the film is locked together (again with divots) using concentric cylinders, with the outer most cylinder holding the initial wrap of film. There is also a small gap in outer most reel to allow for an initial film lock.

The last photo, from OpenSCAD, shows an updated version that has holes to indicate the amount of film a reel contains, starting at 25m and ending in 150m. Thus, this 8mm film reel can hold approximation 150 meters of film. By experimentation, it appears that film lenght (L in m) is functionally determined by radius of film (R in m) and radius of spool wheel (S in m), L = (6500*PI*R*R)-(6500*PI*S*S). Thus, for our S=0.03 reel, R = SQRT(L+6500*PI*0.03*0.03)/(10*SQRT(65*pi)). No additional experimentation was performed on the final reel to determine accuracy. This will be conducted for when the electronics is connected, to allow the motor to do its job in reeling up the film.

Since the Open Telecine film reel differs in thickness from a commercial reel, the motor reel connectors will also need to be updated.



This part was created by using only open source hardware and software: Ubuntu (similar to Microsoft Windows and MacOS), gimp (similar to Adobe Photoshop), blender (similar to Autodesk Maya), ReplicatorG, LibreCAD and OpenSCAD (simular to AutoCAD), and MakerBot.

Wednesday, August 10, 2011

Open Telecine and 8mm Film spool Connectors

One of the ways to step through a sequence of frames in a film, is to connect the 8mm film spool to a stepper motor. The problem solved in this blog is the structural support material needed to convert a 5mm motor shaft to the slotted 8mm film spool.



The first approach used was to design 3D drawing of the spool connector in blender (blender.org), then use a MakerBot (makerbot.com) to fabricate the part. In the first photo (left to right), blender was used until an attempt was made to add threads to the top of the connector shaft. This was necessary in order to secure the film spool to the connector shaft with a nut. However, even though this problem can be solved in blender, I come to the realization that a computer-aided design (CAD) program would be more appropriate.

Starting on the 6th spool connector (first photo left-to-right), LibreCAD (librecad.org) and OpenSCAD (openscad.org) was used. To re-accomplish the same work from blender, it took 5 minutes to complete a 2D draft in LibreCAD, and 20 minutes in OpenSCAD. Each additional draft in OpenSCAD was exported to an .stl file (STL files describe only the surface geometry of a three dimensional object). ReplicatorG 0025 (replicat.org) was then used to convert each draft to g-code. G-code is the common name for the most widely used computer numerical control (CNC) programming language, and in my case, the MakerBot.

The second and third photographs show the completed product. Two spool connectors were generated: one with a threaded shaft and nut (secure but take longer), and the other with a notched shaft and clip (faster but less secure).





This part was created by using only open source hardware and software: Ubuntu (similar to Microsoft Windows and MacOS), gimp (similar to Adobe Photoshop), blender (similar to Autodesk Maya), ReplicatorG, LibreCAD and OpenSCAD (simular to AutoCAD), and MakerBot.


Tuesday, June 21, 2011

OpenTelecine, OpenCV, image processing


The two biggest challenges to overcome in the OpenTelecine project are optics and image processing. In previous blogs, we discussed some accomplishments in image processing for the rectangular geometries found in 8mm film frames and film spool holes. In this blog, we shall discuss the failures and upcoming challenges in configuring the camera and OpenTelecine optics to illuminate and capture 8mm frames.

The first image is a prototype of a projector using a SparkFun cardboard box, Petzl LED headlight, and an existing projector optical focus. An unusual attribute of this prototype is the lack of a well defined aperture. In optics, an aperture is a hole or an opening through which light travels. More specifically, the aperture of an optical system is the opening that determines the cone angle of a bundle of rays that come to a focus in the image plane. In our case, the aperture was cut out to be a large rectangular hole that spans multiple 8mm frames. Another unusual characteristic is that the film rests on a adjustable back-plane. This allows for the projector to have two optical parameters to adjust: the optical focus and the distance to the back-plane.



The prototype projector was set up in a dark room to project the 8mm film on a whiteboard. A Nikon D90 camera was set off to the side and capture a 10 second exposure of this image. Notice the imperfection in this photo, where the center spool hole is in perfect focus, whereas the left and right spool holes are not. Another unexpected discovery is that the images smear and streak off between frames, which is caused by the mechanical shutter and film transition. This is solved in practice by reducing the aperture size. 8mm film cameras generally have larger apertures then the projector, which causes a projector to display only a subset of each original frame. Striving to capture the maximum available frame in the OpenTelecine will be difficult because the frames will not have perfectly shaped rectangular frames and spool holes. The top of each frame will be smeared and streaked, whereas the spool holes are rounded rectangles.




Instead of capturing the film off the whiteboard, the camera and projector were placed inline to face each other directly. Notice that the images captured by using this approach are completely and totally unacceptable. Is this project doomed to fail?

Reflection, refraction, and chromatic dispersion are well understood, and there are precise mathematical solutions to this problem. My next attempt will come by a recommendation, which is to place the camera and project perpendicular to each, with a mirror between them at a 45 degree angle.

The project currently uses Ubuntu 11.04 (simular to Microsoft Windows), OpenCV, gimp (similar to Adobe), GNU gcc (similar to Microsoft .NET), and Eclipse. Photos are generally taken with a Nikon D90 or Sprint HTC Evo running CyanogenMod (simular to Windows mobile cell phone and iPhone).

Saturday, June 18, 2011

Open Telecine, OpenCV, image processing



"This is the second post about an attempt to make an open source telecine. Telecine is the process of transferring motion picture film into video form. The preliminary goal of this project is currently limited to converting 8mm film to DVD using a digital camera, while levering other open source projects. Telecine has had much success in using flatbed scanners and ones that record from modified film projectors. The frame-by-frame projector use by this project will be built from scratch, by using: two stepper motors, an arduino board, an EasyDriver (from SparkFun), a MakerBot for printing 3D components, a LEDs, and optics. The software to convert the images into a movie is yet to be determined, but here is an attempt."

The first image processing restrictions that was added (to identify rectangles with the desired proprieties) is the angle off the X/Y axis. 8mm film possesses two desired rectangular geometries, a picture frames and the spool holes. Since the project will capture all images (in strictly a vertical or horizontal orientation), additional code was added (to the OpenCV example) to only identify horizontal and vertical rectangles. In the first set of images, notice the tolerance of rectangles up to a 2.5 degree from the horizontal axis, where the 15 degree rectangle was ignored.


A second image processing restrictions that was added (to identify rectangles with the desired proprieties) is the X to Y proportion. Some of today's media comes in a 16:9 or 4:3 rectangular format, whereas 8mm has it's own ratios. The next set of images show the acceptance of rectangles with the ratios possessed by a 8mm picture frame and the spool hole.

The project currently uses Ubuntu 11.04 (simular to Microsoft Windows), OpenCV, GNU gcc, and Eclipse. The photo of the pottery vase was taken with an Sprint HTC Evo (simular to iPhone).

Thursday, June 16, 2011

Open Telecine, OpenCV, image processing



This is the first post about an attempt to make an open source telecine. Telecine is the process of transferring motion picture film into video form. The preliminary goal of this project is currently limited to converting 8mm film to DVD using a digital camera, while levering other open source projects. Telecine has had much success in using flatbed scanners and ones that record from modifyed film projectors. The frame-by-frame projector use by this project will be built from scratch, by using: two stepper motors, an arduino board, an EasyDriver (from SparkFun), a MakerBot for printing 3D components, a LEDs, and optics. The software to convert the images into a movie is yet to be determined, but here is the first attempt.

The first set of images are a mockup of frames being capture and processed to determined the film spool holes. The 8mm spool holes need to be determined in order to perform cropping correctly, and to uniquely identify each frame. The green squares were automatically identified by image processing. An example (e.g. squares.cpp) contained within OpenCV was modified to enhance the discovery of rectangles with greater accuracy. The image processing is as follows: pyramid scaling (for smoothing imaging and filtering out some noise), Canny algorithm (for edge detection), initial contours detection, Douglas-Peucker algorithm (for reducing the number of points in a curve), and finally rectangle detection (for eliminating other types of polygons). The next task is to add code that will only detect rectangles with the correct proportions for a 8mm spool hole.




The second set of images are from Flatbed Scanner Digital Telecine (FSDT) to give a more realistic test. Notice that the image processing failed to detect one of the spool hole. Near perfection is paramount, because of the number of frames contained on large spools of film.

The project currently uses Ubuntu 11.04 (simular to Microsoft Windows), OpenCV, GNU gcc, and Eclipse. The photo of the pottery vase was taken with an Sprint HTC Evo (simular to iPhone).