This is a prototype for a sensor that is intended to measure the width of plastic filament in real time as it goes into a 3d printing extruder. It is a proof of concept. The idea is that with a real-time width measurement the 3D printer could compensate the extruded flow for changes in filament width.
Prototype #2 is in progress, see http://www.thingiverse.com/thing:89044
Principle of operation: An LED with a narrow field of view is used to illuminate the filament. A shadow of the filament is projected onto a linear sensor array (400 pixels/inch). An 8 bit processor is used to detect the edges of the shadow image and calculate the width. The image sample and width measurement occurs every .1 sec. The filament in the sensor is around 2.85mm. The picture of the screen shows a debug view of the processor measuring it as widthmm=28575 (2.8575). The sensor has some variability depending on how close the filament is to the linear sensor array, but it is surprisingly small (1-2 pixels, or .06-.12 mm). The case is designed with two notches to hold the filament in place.
Some improvements needed:
- a better approach is needed to handle keeping the moving filament in a stationary view.
- filtering of the width measurement
- a light-proof case
- Suitable interface to 3D printer controller (a Printrboard in my case)
The line sensor board is a modified version of one I found here. https://github.com/kbellve/TSL1401CL-Adapter I modified it to be completely single sided surface mount so that I could mill it more easily to make a quick prototype.