Innovation technologique en 1ère STI2D
Rapport de projet de synthèse - année scolaire 2020-2021
Lycée Haroun Tazieff à Saint-Paul-lès-Dax

TRACEUR A COMMANDE NUMERIQUE
Auteurs : Clément C.L., Quentin D.S.V., John M. et Yoann L.

I. Introduction :

L'objectif de ce projet est de dessiner à l'identique un dessin. Néanmoins, l'objectif peut s'étendre à l'écriture de phrases.

Outils nécessaires :

II. Étude du projet :

Projets similaires :

Points de comparaisons :

A | Projet inspiré : https://www.thingiverse.com/thing:4608103

B | Projet inspiré : https://www.thingiverse.com/thing:4607077

Ce second projet est semblable au premier. La conception est légèrement différente mais l'utilisation est la même. Il est seulement un peu plus coûteux en plastique.

Notre modèle volumique :

Les modèles en vert représentent les supports qui accompagneront les crémaillières en rouge dans leur course. La pièce en grise est conçue pour accueillir un moteur qui accueillera également un support de stylo. La roue et son support sont réprésentés en bleu. Pour finir, la pièce jaune désigne la butée de la roue.

Schéma du câblage :

Les signaux délivrés par la carte Arduino sont de trop faible puissance pour alimenter directement les moteurs pas à pas. On utilise comme intermédiaire un composant électronique, le L293D. Ce double pont en H reçoit les signaux de commande et fournit la puissance nécessaire aux moteurs pas à pas. Ces derniers sont alimentés par quatre conducteurs. Le schéma ci-dessous, réalisé avec le logiciel Fritzing, montre le câblage.

Programme du microcontrôleur :

Ce code permet simplement de dessiner une maison avec une porte et deux fenêtres. Cependant, le toit ne sera pas réalisé. L'utilisation simultanée de deux moteurs demande une code bien différent et plus complexe que celui-ci. Le code serait alors à reconcevoir. Ceci fait partie des améliorations possibles.

#include <Stepper.h> 
//définit deux constantes : le nombre de pas par tour et la vitesse des moteurs
const int stepsPerRevolution = 2048;
const int motor_speed = 16;
//définit les broches de chaque moteur
Stepper myStepper1(stepsPerRevolution, 2,3,4,5);  
Stepper myStepper2(stepsPerRevolution, 6,9,7,8);  
Stepper myStepper3(stepsPerRevolution, 10,11,12,13); 

//définit une vitesse aux 3 moteurs 
void setup() { 
myStepper1.setSpeed(motor_speed);
myStepper2.setSpeed(motor_speed);  
myStepper3.setSpeed(motor_speed);  
Serial.begin(9600); 
} 
				
void loop() {
		
//établit une variable
if (Serial.available()) {
int nbcrayon0 = Serial.parseInt();     
int nb1 = Serial.parseInt();     
int nb2 = Serial.parseInt();      
int nbtoit1 = Serial.parseInt();      
int nbtoit2 = Serial.parseInt();    
int nbtoit3 = Serial.parseInt();     
int nbtoit4 = Serial.parseInt();     
int nb3 = Serial.parseInt();      
int nbcrayon1 = Serial.parseInt();      
int nb4 = Serial.parseInt();     
int nbcrayon2 = Serial.parseInt();     
int nb5 = Serial.parseInt();      
int nb6 = Serial.parseInt();      
int nb7 = Serial.parseInt();      
int nbcrayon3 = Serial.parseInt();      
int nb8 = Serial.parseInt();            
int nb9 = Serial.parseInt();
int nb10 = Serial.parseInt();
int nbcrayon4 = Serial.parseInt();
int nb11 = Serial.parseInt();
int nb12 = Serial.parseInt();
int nb13 = Serial.parseInt();
int nb14 = Serial.parseInt();
int nbcrayon5 = Serial.parseInt();
int nb15 = Serial.parseInt();
int nb16 = Serial.parseInt();
// fenêtre 2 : 
int nb17 = Serial.parseInt();
int nb18 = Serial.parseInt();
int nbcrayon6 = Serial.parseInt();
int nb19 = Serial.parseInt();
int nb20 = Serial.parseInt();
int nb21 = Serial.parseInt();
int nb22 = Serial.parseInt();
int nbcrayon7 = Serial.parseInt();
int nb23 = Serial.parseInt();
int nb24 = Serial.parseInt();

//Définit la priorité de lancement des moteurs ainsi que la variable prédéfinie
// Structure 
myStepper3.step(nbcrayon0);
myStepper1.step(nb1);
myStepper2.step(nb2);
myStepper1.step(nbtoit1);
myStepper2.step(nbtoit2);
myStepper2.step(nbtoit3);
myStepper1.step(nbtoit4);
myStepper2.step(nb3);

//Porte
myStepper3.step(nbcrayon1);
myStepper1.step(nb4);
myStepper3.step(nbcrayon2);
myStepper2.step(nb5);
myStepper1.step(nb6);
myStepper2.step(nb7);
myStepper3.step(nbcrayon3);
myStepper1.step(nb8);

// fenêtre droite
myStepper1.step(nb9);
myStepper2.step(nb10);
myStepper3.step(nbcrayon4);
myStepper2.step(nb11);
myStepper1.step(nb12);
myStepper2.step(nb13);
myStepper1.step(nb14);
myStepper3.step(nbcrayon5);
myStepper2.step(nb15);
myStepper1.step(nb16);

// fenêtre gauche
myStepper1.step(nb17);
myStepper2.step(nb18);
myStepper3.step(nbcrayon6);
myStepper2.step(nb19);
myStepper1.step(nb20);
myStepper2.step(nb21);
myStepper1.step(nb22);
myStepper3.step(nbcrayon7);
myStepper2.step(nb23);
myStepper1.step(nb24);
}
}

Voici les "coordonnées" à exécuter dans : "Outils > Moniteur Série" du logiciel arduino après avoir lié la carte électronique à l'ordinateur.
△ Ne pas oublier de chosir le bon type de carte arduino : "Outils > Type de carte" ainsi que le bon port : "Outils > Port" △

-20,-2500,-3000,1250,-1000,1000,1250,3000,      
20,-1025,-20,-850,-400,850,20,1425,     
-542, -1400,-20,-600,-420,600,420,20,1400,572,     
-1792,-1400,-20,-600,-420,600,400,20,1400,1792

III.Réalisation :

A | Photo(s), vidéo(s) :

B | Expérimentations :

Les problèmes ont été nombreux. Les frottements trop importants entre la crémaillère et son support causant des blocages ou des ralentissements. Ceci est du au manque de couple des moteurs. Les phases de décrochements sont monnaie courante lors de "l'impression" et le réglage du stylo devant être minutieux, cela crée une perte de temps. Pour remédier en partie à ce problème. Nous avons alimenter deux moteurs à une "alimentation" externe de 5V 2A. Les crémaillères ont eues besoins d'être poncées pour être utilisés.

IV.Conclusion :

Les améliorations futures sont nombreuses. La simplification du code arduino pourrait permettre une meilleure compréhension de son fonctionnement et faciliterait la création de dessin. Modifier la façon dont le stylo est fixé au support et la façon dont il écrit simplifierait également l'utilisation de cette mini CNC. L'amélioration des modèles 3D n'est pas négligeable. Pour cela, il faudrait agrandir l'écart entre la crémaillière et son support. Néamoins, permuter les supports de crémaillères par des profilés en Aluminium n'est pas impossible.