Skip to content
Snippets Groups Projects
index.html 12.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • unknown's avatar
    unknown committed
    <!DOCTYPE html>
    <html lang="en">
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    <head>
    
    unknown's avatar
    unknown committed
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
    
      <title>Rheoprinter-Cover</title>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    </head>
    
    <body>
    
    
    unknown's avatar
    unknown committed
    	<div class="container">
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    		<h2>Table of Contents</h2>
    			<p><a href="#TC1"><h3>1. Background</h3> </a></p>
    			<p><a href="#TC1.1"><h4>1.1 Motivation & Initial Project Idea: "A Desktop Rheometer?"</h4> </a></p>
    			<p><a href="#TC1.2"><h4>1.2 The Science of Rheology</h4> </a></p>
    			<p><a href="#TC1.3"><h4>1.3 Rheometers - Operating Principles</h4> </a></p>
    			<p><a href="#TC1.4"><h4>1.4 Neil: "Do you actually need classical rheometry to achieve what you want?"</h4> </a></p>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    			<p><a href="#TC2"><h3>2. Proposed System: "The Rheoprinter"</h3></a></p>
    			<p><a href="#TC2.1"><h4>2.1 The Nelder-Mead Algorithm</h4> </a></p>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    	
    
    unknown's avatar
    unknown committed
    			<p><a href="#TC3"><h3>3. Design </h3></a></p>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    	
    
    unknown's avatar
    unknown committed
    			<p><a href="#TC4"><h3>4. Rapid Prototyping</h3></a></p>
    			<p><a href="#TC4.1"><h4>4.1 System Modules</h4> </a></p>
    			<p><a href="#TC4.2"><h4>4.2 Final System</h4> </a></p>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    	
    
    unknown's avatar
    unknown committed
    			<p><a href="#TC5"><h3>5. Test</h3></a></p>
    			<p><a href="#TC5.1"><h4>5.1 Online Rheoprinter Console</h4></a></p>
    			<p><a href="#TC5.1"><h4>5.2 Challenges & Next Steps</h4></a></p>
    		
    			<hr>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    		<h3 id="TC1"> 1. Background</h3>
    		<h4 id="TC1.1"> 1.1 Motivation & Initial Project Idea: "A Desktop Rheometer?"</h4>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    			<p class="lead text-justify"> In this project we aim to build a system that "learns" optimum printability
    				conditions on the fly for materials that are primarily utilized in additive manufacturing (AM). The
    				micro-extrusion system measures printability using computer vision and searches for optimum machine
    				parameters using optimization algorithms. Both tasks are happening real-time allowing the system to be
    				both a measurement and a printing device in parallel. With this strategy, we introduce "printability"
    				as an emergent material property that can be efficiently measured and not derived through time-consuming
    				and trial & error parametric studies following classical rheological measurements. Such systems could
    				potentially accelerate the development of novel materials for a wide range of applications.
    			</p>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    			<ul class="list-group lead text-center">
    				<li class="list-group-item">Material Measurements for the Masses</li>
    				<li class="list-group-item">Understanding the Rheology of Complex Fluids</li>	
    			</ul>
    			<br>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    			<p class="lead text-center"> Transforming a peptide gel (99% water) into a yield-stress material for 3D printing.</p>
    
    unknown's avatar
    unknown committed
    			<img src="images/yield-stress.jpg" class="img-thumbnail" width=50%> 
    			<br>
    			<br>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    			<ul class="list-group lead text-justify">
    
    unknown's avatar
    unknown committed
    				<li class="list-group-item"><b>"YIELD STRESS":</b> An ever increasing viscosity as the shear rate
    					approaches zero, i.e. does not flow/ solid-like when stationary</li>
    				<li class="list-group-item"><b>"ZERO-SHEAR VISCOSITY":</b> The viscosity plateau's as the shear rate
    					approaches zero, i.e. flows/ liquid-like when stationary</li>
    
    unknown's avatar
    unknown committed
    			</ul>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    			<hr>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    		<h4 id="TC1.2"> 1.2 The Science of Rheology</h4>
    			
    			<br>
    			<br>
    			<br>
    			<hr>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    		<h4 id="TC1.3"> 1.3 Rheometers - Operating Principles</h4>
    			<br>
    			<br>
    			<br>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    			<p class="lead text-center"> Transforming a peptide gel (99% water) into a yield-stress material for 3D printing.</p>
    
    unknown's avatar
    unknown committed
    			<img src="images/TA.jpg" class="img-thumbnail" width=50%> 
    			<br>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    			<p class="lead text-center"> The Instron Capillary Rheometer.</p>
    			<img src = 'images/capillary-rheometer.jpg' class="img-thumbnail" width=30%>
    			<img src="images/INSTRONnew.jpg" class="img-thumbnail" width=30% height="30%"> 
    			<br>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    			<p class="lead text-center">The measured qunatities (angular deformation and torque) are transferred into a
    				material quantity (stress, strain, viscosity, etc.)</p>
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    			<p class="lead text-center"> Instrument specific measured quantities are used to calculate material-specific
    				parameters.</p>
    
    unknown's avatar
    unknown committed
    			<img src="images/measured-calculated.jpg" class="img-thumbnail" width=50% height="50%">
    
    Filippos Tourlomousis's avatar
    Filippos Tourlomousis committed
    
    
    unknown's avatar
    unknown committed
    			<p class="lead text-center"><b>Fluid Dynamics of Rotational Rheometry</b></p>
    			<p class="lead text-center"> Working Equations for rotational rheometers with <b><i>parallel plate geometry</i>.</p>
    			<img src="images/parallel-plate-geometry.jpg" class="img-thumbnail" width=50% height="50%">
    			<br>
    
    unknown's avatar
    unknown committed
    			<p class="lead text-center">Thus, by varying the shear rate and measuring the change in torque, the viscosity
    				may be determined explicitly.</p>
    
    unknown's avatar
    unknown committed
    			<p class="lead text-center"><b> Notes on Experimental Procedures:</b></p>
    	
    
    unknown's avatar
    unknown committed
    			<p class="lead text-justify">The most important thing is the fundamental resolution of the instrument itself
    				since this will dictate our primary measurements. Stress and strain are not measured directly. Important
    				assumptions are required ot convert primary measurements to material functions. You can only measure certain
    				dynamic ranges of torque, displacement and frequencies. You have resolution limits in either of these quantities
    				you can propagate through to the resolution o fthe viscosity that you can measure.</p>
    
    unknown's avatar
    unknown committed
    			<ul class="list-group lead text-justify">
    				<li class="list-group-item">Resolution/range of measured load and displacement</li>
    				<li class="list-group-item">Instrument inertia (if load and displacement are measured on same boundary)</li>	
    				<li class="list-group-item">Fluid inertia and secondary flows</li>
    			</ul>
    
    unknown's avatar
    unknown committed
    		<h4 id="#TC1.4"> 1.4 Neil: "Do you actually need classical rheometry to achieve what you want?"</h3> 
    			<br>
    			<br>
    			<br>
    
    unknown's avatar
    unknown committed
    			<hr>
    
    unknown's avatar
    unknown committed
    		<h3 id="TC2"> 2. Proposed System: "The Rheoprinter"</h3>
    		<h4 id="TC2.1"> 2.1 Nelder-Mead Algorithm</h3>
    			<br>
    			<br>
    			<br>
    
    unknown's avatar
    unknown committed
    			<hr>
    		
    		<h3 id="TC3"> 3. Design</h3>
    			<br>
    			<br>
    			<br>
    
    			<hr>
    
    		<h3 id="TC4"> 4. Rapid Prototyping</h3>
    
    unknown's avatar
    unknown committed
    		<h4 id="TC4.1"> 4.1 System Modules</h4>
    			<br>
    			<p class="lead text-center"> <b>Module I: Material Head</b></p>
    			<p class="lead text-justify">For controlling the extrusion rate, I decided to move on with pneumatic extrusion.
    				The reason about that is that I want to know the exact value of the entrance pressure applied during each
    				printing condition. By taking the difference of the capillary pressure that I will potentially measure at
    				the lower part of the syringe barrel using a pressure sensor and the  entrance pressure , I am going to be
    				able to track the pressure difference at the material head during printing . With a little a bit of mathematics,
    				I will be able to back out the rheological properties of the candidate material inside the extrusion head during
    				printing. The same task could be realized with mechanical extrusion using a lead-screw-driven syringe pump.
    				However, getting the entrance pressure would require a load cell, which right now I don't have the time to
    				learn how to design one.
    			</p>
    
    			<p class="lead text-justify"> Moving on, I configured and bought an <a href="http://www.smcpneumatics.com//ITV1050-31N2CS4.html">
    				electro-pneumatic pressure regulator</a>, which controls air pressure steplessly in proportion to an
    				electric signal. Specifically, when the input signal rises. the air supply solenoid valve (1) turns ON.
    				Due to this, part of the supply pressure passes through the air supply solenoid valve (1) and changes to
    				output pressure. This output pressure feeds back to the control circuit (4) via the pressure sensor (3).
    				Here, pressure corrections continue until output pressure becomes proportional to the input signal,
    				enabling output pressure that is proportional to the input signal.
    			</p>
    
    			<p class="lead text-center">Working Principle Diagram</p>
    			<img src="images/pneumatic-work-principle-diagram.PNG" class="rounded mx-auto d-block" width="" height="">
    
    			<p class="lead text-center">Block Diagram</p>
    			<img src="images/pneumatic-block-diagram.PNG" class="rounded mx-auto d-block" width="" height="">
    			<br>
    
    unknown's avatar
    unknown committed
    			<br>
    
    unknown's avatar
    unknown committed
    
    			<p class="lead text-justify">In addition to the regulator, I sourced a couple of NPT connectors, tubing and and
    				a simple valve regulator to control the reference pressure coming from CBA's compressed air supply line.
    				You can find specs and product numbers for SMC pneumatics from the picture below or the readme file in the
    				main Gitlab project directory.
    			</p>
    
    			<p class="lead text-center">Pneumatic Assembly for Extrusion Rate Control</p>
    			<img src="images/pneumatic-connection.PNG" class="rounded mx-auto d-block" width="" height="">
    
    unknown's avatar
    unknown committed
    			<br>
    
    unknown's avatar
    unknown committed
    
    			<p class="lead text-justify"> After assembling all the components and making sure that everything fits, I moved on
    				to wire the regulator. Note that the wiring is model and configuration part number-specific. This  has to be done
    				after reading the manual, which can be found <a href="http://www.smcpneumatics.com/pdfs/ITVop.PDF">HERE</a>.
    				My regulator belongs to the ITV series models and has the following part number: <b>ITV1050-31N2CS4</b>.
    				This corresponds to the following <a href="https://goo.gl/hxpiRW">specs</a>:
    			</p>
    
    			<img src="images/pneumatic-reg-specs.PNG" class = "rounded mx-auto d-block" width="80%">
    
    			<p class="lead text-justify"> and the wiring directions extracted from teh operation manual are attached below:</p>
    
    			<img src="images/pneumatic-wiring-A.PNG" class="rounded mx-auto d-block" width="70%">
    			<img src="images/pneumatic-wiring-B.PNG" class="rounded mx-auto d-block" width="70%">
    
    			<p class="lead text-center">XY - Cartesian Stage Assembly</p>
    
    
    unknown's avatar
    unknown committed
    			<br>
    
    unknown's avatar
    unknown committed
    			<p class="lead text-center">XY- Cartesian Stage Control</p>
    
    			<p class="lead text-justify" >- created a jig/fixture to mount the motors and test the asynchronous operation for easiness.
    
    unknown's avatar
    unknown committed
    			- started with BigEasy Driver where I soldered male header pins with spacing ...
    
    unknown's avatar
    unknown committed
    			- soldered jumper wires (male to female) on the NEMA 17 motor cables
    			here are some interesting links for building cables with Dupont Headers(we have all the accessories in the inventory):
    
    unknown's avatar
    unknown committed
    			https://www.youtube.com/watch?v=c-pTsccCizA
    			https://www.youtube.com/watch?v=qz9Ryos1_GY
    			https://www.youtube.com/watch?v=N3zK9fzIPBo
    
    unknown's avatar
    unknown committed
    			and a good inscrutable here:
    
    unknown's avatar
    unknown committed
    			https://www.instructables.com/id/Fitting-Dupont-Connectors/
    
    
    			- for cable management i will order sleeves and heat shrink tubes
    			- downloaded Arduino and configured based on that:
    			https://startingelectronics.org/software/arduino/installing-arduino-software-windows-10/
                - then started running examples and creating simple sketches from here:
                http://www.schmalzhaus.com/EasyDriver/Examples/EasyDriverExamples.html
                - Example 1:
                - Example 2:
                - Example 3:
    
    unknown's avatar
    unknown committed
                Install Accellstep library from this page:
    
    unknown's avatar
    unknown committed
                http://www.airspayce.com/mikem/arduino/AccelStepper/
                and based on this guide using the manual way of installation in libraries folder under the Documents/Arduino/
                http://www.airspayce.com/mikem/arduino/AccelStepper/
    
    unknown's avatar
    unknown committed
                Don't forget ot mention why you should the third party libraries there, because during Arduino Installation they might be deleted.
    
    unknown's avatar
    unknown committed
                - Example 4
                - Example 5
                http://bildr.org/2012/11/big-easy-driver-arduino/
                 Interrupts
                Now I would like ot describe something which sounds that it would real simple but it turns out
    
    unknown's avatar
    unknown committed
                to be incredibly hard on something like the Arduino. Lets say we wanted to blind LED independently, concurrently
    
    unknown's avatar
    unknown committed
                at different rates.
                A good example is when we are working with multiple sensors like a GPS, which over time spits out serial data
                and if you are over here working on something else and that GPS piles up a bunch of data you are gonna
                overflow your buffer and you are going to be reading old stale corrupt incomplete data from teh serial
                port. So you need to have something like an interrupt so that every little bit you can ran out and get the data off of the serial
                port.
                Advanced Software Interrupts for Reading Serial Data
    
    unknown's avatar
    unknown committed
    			</p>
    
    unknown's avatar
    unknown committed
    
    			<hr>
    
    		<h3 id="TC5"> 5. Test</h3>
    		<h4 id="TC5.1"> 5.1 Online Rheoprinter Console</h4>
    			<br>
    			<br>
    			<br>
    
    		<h4 id="TC5.2"> 5.2 Challenges & Nest Steps</h4>
    
    			<p>
    				<center>
    					<video  width = "700" height = "600" controls loop autoplay>
      						<source src= "videos/async-motors.mp4" type="video/mp4">
    					</video>
    				</center>
    			</p>
    		
    		<hr>
    
    unknown's avatar
    unknown committed
    	</div>