Pour le système de pousse seringue nous avons choisi de nous inspirer du système disponible sur ce site. Voici des schémas 2D et 3D de notre système (vue de côté) :
*Liste du matériel utilisé :
* Une tige filetée M5
* Un moteur pas à pas Nema17 400 pas
* Un motor shield arduino
* Un roulement (diamètre intérieur 5 mm)
* Deux axes 8 mm
* Deux bagues lisses 8 mm.
* Un écrou M5
* Visserie M4
* Un capteur de fin de course mécanique Fabriquation :
La fabriquation de notre pousse seringue nécessite 4 pièces imprimées en 3D :
* Un chariot : c'est lui qui sera entraîné par une vis sans fin (tige filetée M5) pour pousser le piston de la seringue. Pour le montage, il faut insérer et coller les 2 bagues lisses dans les trous latéraux puis insérer l'écrou M5 dans l'emplacement prévu en bas du chariot puis le fixer en place à l'aide de la plaque, de deux écrous M4 et de 2 vis M4 (voir photo). Voilà une photo de la pièce ainsi que le code open scad :
<code>
$fn=100;
difference()
{
union()
{
cube ([56,20,16]);
translate([13,0,14]) cube([30,5,25]);
rotate([-90,0,0]) translate([0,-8,0]) cylinder(r=8,h=20);
rotate([-90,0,0]) translate([56,-8,0]) cylinder(r=8,h=20);
rotate([-90,0,0]) translate([28,-16,5]) cylinder(r2=0,r1=15,h=15);
translate([13,0,-13]) cube([30,10,13]);
}
union() axes
{
rotate([-90,0,0]) translate([0,-8,-1]) cylinder(r=5.5,h=22);
rotate([-90,0,0]) translate([56,-8,-1]) cylinder(r=5.5,h=22);
}
union() vis
{
rotate([-90,0,0]) translate([28,6,6]) cylinder(r=4.5,h=4,$fn=6);
rotate([-90,0,0]) translate([28,6,0]) cylinder(r=3,h=6);
}
union() serrage ecrou vis
{
rotate([-90,0,0]) translate([19,6,0]) cylinder(r=2,h=10);
rotate([-90,0,0]) translate([19,6,0]) cylinder(r=4,h=4,$fn=6);
rotate([-90,0,0]) translate([37,6,0]) cylinder(r=2,h=10);
rotate([-90,0,0]) translate([37,6,0]) cylinder(r=4,h=4,$fn=6);
}
union() taillage des bouts du chariot
{
translate([-8,-1,0]) cube([1,22,16]);
translate([63,-1,0]) cube([1,22,16]);
}
}
translate([28,0,-30]) difference()
{
translate([-15,0,0]) cube([30,5,13]);
rotate([-90,0,0]) translate([9,-6,-1]) cylinder(r=2,h=7);
rotate([-90,0,0]) translate([-9,-6,-1]) cylinder(r=2,h=7);
rotate([-90,0,0]) translate([0,-6,-1]) cylinder(r=3,h=7);
}
</code>
* Un Embout moteur : Situé au bout de pousse seringue, il supporte les 2 axes ainsi que le moteur et le capteur de fin de course.
<code>
$fn = 100;
difference()
{
union()
{
cube([42,10,42]);
translate([42,0,0]) cube([14,20,42]);
translate([-14,0,0]) cube([14,20,42]);
translate([-14,-13,31]) cube([13,13,6]);
translate([43,-13,31]) cube([13,13,6]);
translate([-10,20,0]) cube([10,16,28]);
}
union() Trous axes
{
translate([-7,0,35]) rotate([-90,0,0]) cylinder(r=4,h=21);
translate([49,0,35]) rotate([-90,0,0]) cylinder(r=4,h=21);
translate([-8,-1,38]) cube([2,22,10]);
translate([48,-1,38]) cube([2,22,10]);
}
translate([21,-1,21]) rotate([-90,0,0]) cylinder(r=12,h=12); Trou axe moteur
union() vis moteur
{
translate([6,-1,6]) rotate([-90,0,0]) cylinder(r=2,h=12);
translate([36,-1,6]) rotate([-90,0,0]) cylinder(r=2,h=12);
translate([6,-1,36]) rotate([-90,0,0]) cylinder(r=2,h=12);
translate([36,-1,36]) rotate([-90,0,0]) cylinder(r=2,h=12);
}
union() trous capteur
{
translate([1,23,25]) rotate([0,-90,0]) cylinder(r=1.5,h=16);
translate([1,33,3]) rotate([0,-90,0]) cylinder(r=1.5,h=16);
}
}
</code>
* Un embout seringue : L'autre bout du pousse seringue situé du coté de la seringue. Il supporte les 2 axes, ainsi que la vis sans fin à l'aide du roulement. Il supporte aussi le support de la seringue.
<code>
$fn=100;
difference()
{
union()
{
cube ([70,20,17]);
translate([0,0,17]) cube([14,20,11]);
translate([56,0,17]) cube([14,20,11]);
}
union()trous vis et roulement
{
translate([35,-1,7]) rotate([-90,0,0]) cylinder(r=5,h=22);
translate([35,15,7]) rotate([-90,0,0]) cylinder(r=8,h=6);
}
union()Trous axes
{
translate([7,-1,21]) rotate([-90,0,0]) cylinder(r=4,h=22);
translate([63,-1,21]) rotate([-90,0,0]) cylinder(r=4,h=22);
translate([6,-1,24]) cube([2,22,10]);
translate([62,-1,24]) cube([2,22,10]);
}
union()Trous fixation support seringue
{
translate([20,5,-1]) cylinder(r=2,h=19);
translate([50,5,-1]) cylinder(r=2,h=19);
}
}
</code>
* Un support seringue : La seringue est posée dessus pendant le titrage, il est fixé à l'embout seringue.
<code>
$fn=100;
difference()
{
union()
{
cube([90,40,6]);
translate([0,0,6]) cube([3,40,14.5]);
translate([5,0,6]) cube([5,40,14.5]);
translate([85,0,6]) cube([5,40,14.5]);
}
translate([-1,20,19.6]) rotate([0,90,0]) cylinder(r=11.5,h=92);
union()vis de fixation
{
translate([15,5,-1]) cylinder(r=2,h=8);
translate([15,35,-1]) cylinder(r=2,h=8);
}
}
</code>
Motorisation du pousse seringue :
Pour la motorisation du pousse seringue nous utilisons un moteur pas à pas Nema17 400 pas pour sa grande précision. Pour le piloter nous utilisons un shield moteur arduino qui rend le pilotage du moteur simple grâce au code trouvé sur Instructbles. Enfin pour l'alimentation nous utilisons une alimentation secteur 5V 1A.
Le moteur est monté sur l'embout moteur et l'axe moteur est relié à la tige filetée avec du scotch électrique pour permettre une certaine souplesse. Capteur de fin de course :
Nous avons besoin de connaître précisément la position du chariot à tout moment du titrage. Pour cela, avant le titrage le chariot va jusqu'au bout de sa course où il est détecté par le capteur de fin de course. Nous utilisons un capteur mécanique comme celui ci-dessous, monté sur le support moteur. La pin commune est branchée sur une entrée analogique, la pin normalement ouverte est reliée au 5V de l'arduino, et la pin normalement fermée est reliée au GND de l'arduino. Ainsi la lecture faite sur l'entrée analogique est 0 , sauf lorsque le chariot appuie sur le capteur où on lit 1023. Prototype du pousse seringue :
Un prototype fonctionnel du pousse seringue a finalement pu être monté.
Assemblage final :**
Voici la version finale du pousse seringue assemblé :